On-line: alex_II, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
gfilatov
модератор




Пост N: 699
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 29.01.08 13:59. Заголовок: Новая версия Расширенного релиза библиотеки MiniGUI (часть V) (продолжение)


Начало темы находится здесь, а теперь

АНОНС * АНОНС * АНОНС * АНОНС * АНОНС

Готовится к опубликованию новая сборка №48, которая выйдет в конце недели.
Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне

Кратко, что нового:

- исправление обнаруженных ошибок и неточностей кода;
- новый класс HEADERIMAGE для Grid и Browse;
- свойство Address в Hyperlink может теперь открывать папку или файл на диске;
- добавлен NOTABSTOP класс для Browse;
- поддержка пользовательских компонентов (заимствована из оффициального релиза);
- расширения и исправления в библиотеках TsBrowse и PropGrid;
- обновлены сборки Харбор и HMGS-IDE;
- новые и обновленные старые примеры (как обычно ).




Спасибо: 5 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


Dima
администратор




Пост N: 5932
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.07.16 12:17. Заголовок: Haz пишет: В этом З..


Haz пишет:

 цитата:
В этом ЗЫ у минигуи наблюдаются проблемы с передачей фокуса


А дедько Линарес в FW как то решил эту проблему однако
Но я не хочу FW , мне нравится Минигуи !

Спасибо: 0 
Профиль
Петр
постоянный участник


Пост N: 1214
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 30.07.16 12:28. Заголовок: Dima пишет: К приме..


Dima пишет:

 цитата:
К примеру вот на этом примере глючит C:\MiniGUI\SAMPLES\Advanced\Tsb_LoadFields\

ЗЫ
Вынь 7



А у меня не заглючило, Win7 тоже

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5933
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.07.16 12:35. Заголовок: Петр Пару раз клацн..


Петр
Пару раз клацнул наверное.
У меня получилось на 4-ом разе.
Глючат исключительно приложения на минигуи со всем остальным все идеально.

Еще одно ЗЫ :)
Mingw у меня в приложениях (так же глючит)
А примерчик собран в BCC55

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5934
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.07.16 12:50. Заголовок: Петр А вот кино ht..


Петр
А вот кино
Скрытый текст


В примере происходит тоже , кино снимать не стал.

Спасибо: 0 
Профиль
Петр
постоянный участник


Пост N: 1215
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 30.07.16 12:59. Заголовок: Dima пишет: Пару ра..


Dima пишет:

 цитата:
Пару раз клацнул наверное.
У меня получилось на 4-ом разе.



Да нет, вроде. Клацал пока не надоело.
MiniGUI свежий, компилятор BCC55, Win7 со всеми доступными обновлениями, AVG.


Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5935
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.07.16 13:26. Заголовок: Петр пишет: MiniGUI..


Петр пишет:

 цитата:
MiniGUI свежий


+1
Петр пишет:

 цитата:
компилятор BCC55


+1
Петр пишет:

 цитата:
Win7 со всеми доступными обновлениями


на момент установки 15.05.2015 все стояло самое свежее + KB
Петр пишет:

 цитата:
AVG


Drweb

ХЗ что делать , не за себя душа болит а за юзеров а у них только XP и 7 , начнут вот так вот
клацать и начнутся вопросы а ответить то и не чего


Спасибо: 0 
Профиль
Петр
постоянный участник


Пост N: 1216
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 30.07.16 13:42. Заголовок: Понятно, что собака ..


Понятно, что собака зарыта здесь: FUNCTION Events ( hWnd, nMsg, wParam, lParam )

Понятно, что код там (и не только там) нужно оптимизировать в любом случае, даже если бы не было артефактов.
Посмотрю, что можно сделать и отпишусь. Но нужно время, и отдельная тема, например "Обработка событий в MiniGUI", что бы ветку не зас..ть окончательно, причем из лучших побуждений.



Спасибо: 1 
Профиль
Dima
администратор




Пост N: 5936
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.07.16 15:16. Заголовок: Петр пишет: Посмотр..


Петр пишет:

 цитата:
Посмотрю, что можно сделать и отпишусь. Но нужно время, и отдельная тема, например "Обработка событий в MiniGUI"


Петр я готов тестить в любое время суток если что.

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 1114
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 01.08.16 22:26. Заголовок: Поковырял команды ОО..


Поковырял команды ООП This... :
i_this.ch Скрытый текст


Для команд выделенных цветом использовал доп. функции ( назвал так, что бы не пересечься с похожими )
 
FUNCTION GetCliWidth ( nHandle )
LOCAL aRect := {0,0,0,0}
GetClientRect( nHandle, aRect )
RETURN ( aRect[3] - aRect[1] )

FUNCTION GetCliHeight( nHandle )
LOCAL aRect := {0,0,0,0}
GetClientRect( nHandle, aRect )
RETURN ( aRect[4] - aRect[2] )

Если ф-ии лишнии, то надо убрать выделенные цветом команды. Использовать как обычно
This.Width , This.Height , This.Handle , This.Index
This.Btn.Width, This.Btn.Height, This.Btn.Handle , This.Btn.Index
This.ClientWidth, This.ClientHeight
This.Btn.ClientWidth, This.Btn.ClientHeight

Все варианты написания не проверял (может совместными усилиями ?)



Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 969
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 02.08.16 11:31. Заголовок: SergKis пишет: Для ..


SergKis пишет:

 цитата:
Для команд выделенных цветом использовал доп. функции


Благодарю за дополнение команды This

P.S. Заменил доп. функции на одну уже существующую в коде библиотеки функцию _GetClientRect()

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 1123
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.08.16 12:53. Заголовок: gfilatov2002 Еще к ..


gfilatov2002
Еще к командам ООП Скрытый текст


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 5032
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.08.16 13:48. Заголовок: SergKis пишет: Испо..


SergKis пишет:

 цитата:
Использовать как обычно
This.Width , This.Height , This.Handle , This.Index



Т.е. вместо
nFWidth := GetClientWidth( GetFormHandle( _HMG_ThisFormName ) )
nFHeight := GetClientHeight( GetFormHandle( _HMG_ThisFormName ) )
можно будет писать так:
nFWidth := This.Width
nFHeight := This.Height



Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5938
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 02.08.16 13:58. Заголовок: Andrey пишет: This...


Andrey пишет:

 цитата:
This.Width


This.ClientWidth

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 970
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 02.08.16 14:41. Заголовок: SergKis пишет: Еще ..


SergKis пишет:

 цитата:
Еще к командам ООП


Благодарю
Добавил эти модификации также...

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 1124
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.08.16 23:07. Заголовок: Andrey пишет можно б..


Andrey пишет
 цитата:
можно будет писать так:
nFWidth := This.Width
nFHeight := This.Height


пример использования
 
DEFINE WINDOW wndCalc AT 0,0 ;
...
nWidth := This.ClientWidth - x * 2
...
@ y, x LABEL Itog VALUE "" ;
...
y += This.Itog.Height + n
...
For i := 1 To len(a)
If ! empty(a[ i ])
j := "Btn"+a[ i ][1]
DEFINE BUTTONEX &j
...
ACTION PostMsg()
END BUTTONEX
This.&(j).Cargo := a[ i ][2]
EndIf
...
nW := This.ClientWidth - int(n * 0.6)
nH := y

DRAW RECTANGLE IN WINDOW &( This.Name ) AT nY, nX TO nH, nW ;
PENCOLOR BLUE

END WINDOW
...

STATIC FUNCTION PostMsg( nKey, lFocus )
LOCAL c, j := This.Name

Default lFocus := .T.

If j != ThisWindow.Name // это контрол не окно
c := This.&(j).Cargo
If c == "." ; nKey := 190
Elseif c == "C" ; nKey := 32
ElseIf c $ "0123456789"; nKey := 48 + val(c)
EndIf
EndIf
If ! empty(nKey)
PostMessage( ThisWindow.Handle, WM_KEYDOWN, nKey, 0)
EndIf
If lFocus
This.Itog.SetFocus
EndIf

RETURN Nil


Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 1125
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.08.16 09:20. Заголовок: gfilatov2002 Еще не..


gfilatov2002
Еще немного ООП строк Скрытый текст


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 971
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 03.08.16 11:43. Заголовок: SergKis пишет: #xtr..


SergKis пишет:

 цитата:
#xtranslate This . <p:Type>


Благодарю за дополнение - добавил

SergKis пишет:

 цитата:
#translate Desktop.Col => GetDesktopRealLeft() #translate Desktop.Row => GetDesktopRealTop() #translate Desktop.Width => GetDesktopRealWidth() #translate Desktop.Height => GetDesktopRealHeight()


Не стал добавлять, поскольку эти функции не входят в библиотеку (они взяты из примеров).

Кстати, завершена подготовка очередной сборки 16.08, которая выйдет на следующей неделе.
Список изменений см. ниже
Скрытый текст

И напоследок - небольшой запрос
Требуется помощь в портировании winapi-функции TaskDialogIndirect в среду Харбор/Минигуи.
Петр, возьметесь


Спасибо: 0 
Профиль
Петр
постоянный участник


Пост N: 1226
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 03.08.16 11:54. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Требуется помощь в портировании winapi-функции TaskDialogIndirect в среду Харбор/Минигуи.
Петр, возьметесь


Вечером посмотрю, чем могу помочь

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 972
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 03.08.16 12:53. Заголовок: Петр пишет: посмотр..


Петр пишет:

 цитата:
посмотрю, чем могу помочь


Заранее благодарен

В принципе, вызов этой функции на Си выглядит несложно:

HRESULT hr; 
TASKDIALOGCONFIG tdc = { sizeof(TASKDIALOGCONFIG) };
int nClickedBtn;
BOOL bCheckboxChecked;
TASKDIALOG_BUTTON aCustomButtons[] = {
{ 1000, MAKEINTRESOURCE(IDS_DOWNLOAD_BTN_TEXT) },
{ 1001, MAKEINTRESOURCE(IDS_DONT_DOWNLOAD_BTN_TEXT) }
};

tdc.hwndParent = m_hWnd;
tdc.hInstance = _AtlBaseModule.GetResourceInstance();
tdc.dwFlags = TDF_USE_COMMAND_LINKS|TDF_ENABLE_HYPERLINKS;
tdc.pButtons = aCustomButtons;
tdc.cButtons = _countof(aCustomButtons);
tdc.pszWindowTitle = MAKEINTRESOURCE(IDS_TASKDLG_TITLE);
tdc.pszMainIcon = MAKEINTRESOURCE(IDI_MY_TD_ICON);
tdc.pszMainInstruction = MAKEINTRESOURCE(IDS_TASKDLG_HEADER);
tdc.nDefaultButton = 1001;
tdc.pszExpandedInformation = MAKEINTRESOURCE(IDS_TASKDLG_EXTRA_INFO);
tdc.pszVerificationText = MAKEINTRESOURCE(IDS_TASKDLG_CHKBOX_TEXT);
tdc.pszFooter = MAKEINTRESOURCE(IDS_TASKDLG_FOOTER);
tdc.pszFooterIcon = TD_INFORMATION_ICON;
tdc.pfCallback = TDCallback;
tdc.lpCallbackData = (LONG_PTR) this; // not used, but I'm setting this for demonstration purposes

hr = TaskDialogIndirect ( &tdc, &nClickedBtn, NULL, &bCheckboxChecked );


Вопрос в том, как это оформить для удобного использования в Харборе (с учетом вызова Callback-функции и использования ресурсных строк)

Спасибо: 0 
Профиль
Петр
постоянный участник


Пост N: 1227
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 03.08.16 22:38. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Вопрос в том, как это оформить для удобного использования в Харборе (с учетом вызова Callback-функции и использования ресурсных строк)



Вот так пойдет?

TaskDialogIndirect( aConfig, @nButton, @nRadioButton, @lVerificationFlagChecked )



Шаблон демо
Скрытый текст


Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 28
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет