Форум » GUI » Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение) » Ответить

Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение)

gfilatov: Начало темы находится здесь, а теперь АНОНС * АНОНС * АНОНС * АНОНС * АНОНС Готовится к опубликованию новая сборка №48, которая выйдет в конце недели. Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне Кратко, что нового: - исправление обнаруженных ошибок и неточностей кода; - новый класс HEADERIMAGE для Grid и Browse; - свойство Address в Hyperlink может теперь открывать папку или файл на диске; - добавлен NOTABSTOP класс для Browse; - поддержка пользовательских компонентов (заимствована из оффициального релиза); - расширения и исправления в библиотеках TsBrowse и PropGrid; - обновлены сборки Харбор и HMGS-IDE; - новые и обновленные старые примеры (как обычно ).

Ответов - 300, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

gfilatov2002: Как и обещал, выложил 3-е обновление сборки 21.03 с учетом всех последних исправлений Рассматриваю эту сборку как финальную по причинам, которые неоднократно озвучивались ранее (слабый интерес и отсутствие поддержки).

krutoff: Проверил псевдофункцию _SetStatusItemWidth из файла i_status.ch - она не работает. Отработала процедура PROCEDURE _SetStatusWidth ( ParentForm , Item , Size ) файла h_controlmisc.prg

rvu: В уникодной версии пытаюсь вывести значение из базы, где оно записано в кодировке 1251 HB_STRTOUTF8(ALLTRIM(BASECONFIG->NAME2)) Показывает ерунду. А так - HB_STRTOUTF8('проба') нормально показывает. Пытался второй параметр HB_STRTOUTF8() прописывать, что ни пробовал, ничего не вышло. Можно, конечно, саму базу под UTF8 переделать, но интересно, почему здесь не работает.


SergKis: rvu HB_STRTOUTF8(ALLTRIM(BASECONFIG->NAME2), "RU1251")

rvu: SergKis При компиляции выдает ощибку. Причем, со словом "проба" тоже. Неверный аргумент. Подумал, что HB_STRTOUTF8('проба') это неверно, у меня же текст программы уникодный. Что и куда она перекодирует? Написал HB_STRTOUTF8(HB_UTF8TOSTR('проба')) и даже HB_UTF8TOSTR('проба'). Текст, написанный в программе она никак никуда не меняет.

SergKis: Ранее уже выкладывал пример unicode, повторю тут https://TransFiles.ru/2f2l2

rvu: SergKis Отлично! Спасибо! К сожалению эти примеры долго не живут, упустил я его в прошлый раз.

SergKis: PS чуток поправить надо (колонку вставил, а в отчетах не поправил) [pre2] *-----------------------------------------------------------------------------* STATIC FUNC Report( oWnd, nEvent ) *-----------------------------------------------------------------------------* ... LOCAL cNam := oBrw:aColumns[ nEvent+oBrw:nColumn("MARRIED") ]:cHeading ... [/pre2]

rvu: Вызывал раньше из своей основной программы другую, которую закрывал такой функцией: #define WM_CLOSE 0x0010 FUNCTION CloseIt() PARAMETERS closeDoc LOCAL hWnd := FindWindowEx( ,,, Substr(closeDoc,2,LEN(closeDoc)-2) ) IF IsWindowHandle( hWnd ) PostMessage( hWnd, WM_CLOSE, 0, 0 ) Return .T. ENDIF Return .F. После перехода на уникод перестало работать, IsWindowHandle( hWnd ) возвращает .F. хотя тайтл окна правильный. Попробовал hb_utf8Substr, не помогло, да и вряд ли могло бы, у меня в тайтле только английские буквы и числа и пробел между ними.

SergKis: попробуйте EnumWindows() в примерах есть использование, поищите

Dima: rvu пишет: После перехода на уникод перестало работать, IsWindowHandle( hWnd ) возвращает .F. А что именно возвращается в hWnd в уникодной версии ?

SergKis: Dima пишет А что именно возвращается в hWnd в уникодной версии ? Наверно 0 (не найдено), т.к. ф-я [pre2] HB_FUNC( FINDWINDOWEX ) { #ifndef UNICODE LPCSTR lpszClass = ( char * ) hb_parc( 3 ); LPCSTR lpszWindow = ( char * ) hb_parc( 4 ); #else LPWSTR lpszClass = AnsiToWide( ( char * ) hb_parc( 3 ) ); LPWSTR lpszWindow = AnsiToWide( ( char * ) hb_parc( 4 ) ); #endif HB_RETNL( ( LONG_PTR ) FindWindowEx( ( HWND ) HB_PARNL( 1 ), ( HWND ) HB_PARNL( 2 ), lpszClass, lpszWindow ) ); #ifdef UNICODE hb_xfree( lpszClass ); hb_xfree( lpszWindow ); #endif } [/pre2] Через EnumWindows() можно получить весь список hWnd, title и ClassName

rvu: Dima пишет: А что именно возвращается в hWnd в уникодной версии ? SergKis пишет: Наверно 0 Да, 0.

Dima: SergKis пишет: попробуйте EnumWindows() Это конечно вариант , но с другой стороны если "сломали" работающую функцию FindWindowEx в уникодной версии , то надо бы починить.

SergKis: Dima пишет то надо бы починить. С этим никто не спорит. Понятно , что для unicode перелопачено много текста и отладка требуется. Попробовал ф-ю EnumWindows() вариант (unicode версия hmg) [pre2] *-----------------------------------------------------------------------------* STATIC FUNCTION HandlesHbWin( cText, cClass, lLogOut ) *-----------------------------------------------------------------------------* LOCAL i, h, t LOCAL aWnd := EnumWindows() LOCAL aTmp := {} LOCAL aRet := {} IF Empty(cClass) aTmp := aWnd ELSE FOR EACH h IN aWnd IF IsWindowHandle( h ) .and. GetClassName( h ) == cClass AAdd( aTmp, h ) ENDIF NEXT ENDIF IF ! empty(cText) .and. HB_ISCHAR(cText) .and. Len(aTmp) > 0 FOR EACH h IN aTmp IF IsWindowHandle( h ) t := GetWindowText( h ) IF cText $ t ; AAdd( aRet, h ) ENDIF ENDIF NEXT ELSE aRet := aTmp ENDIF IF ! Empty(lLogOut) FOR i := 1 TO Len(aTmp) IF IsWindowHandle( aTmp[ i ] ) t := GetWindowText(aTmp[ i ]) _LogFile( .T., str(i, 5), aTmp[ i ], GetClassName(aTmp[ i ]), t ) ENDIF NEXT ENDIF RETURN aRet [/pre2] Не работает GetWindowText(), через имя класса hWnd получен, через GetWindowText() нет. Вариант unicode ф-ии GetWindowText() нашей версии и версии hmg [pre2] Наш (работает) HB_FUNC( GETWINDOWTEXT ) { HWND hWnd = ( HWND ) hb_parnl( 1 ); int iLen = GetWindowTextLength( hWnd ); TCHAR *cText = ( TCHAR * ) hb_xgrab( (iLen + 1)*2 ); int iRet = GetWindowText( hWnd, ( LPTSTR ) cText, (iLen + 1)*2 ); hb_retclen_t( cText, iRet ); hb_xfree( cText ); } uncode HMG HB_FUNC( GETWINDOWTEXT ) { #ifdef UNICODE LPSTR pStr; #endif HWND hWnd = ( HWND ) HB_PARNL( 1 ); int iLen = GetWindowTextLength( hWnd ); LPTSTR szText = ( TCHAR * ) hb_xgrab( ( iLen + 1 ) * sizeof( TCHAR ) ); iLen = GetWindowText( hWnd, szText, iLen + 1 ); #ifndef UNICODE iLen = GetWindowText( hWnd, szText, iLen + 1 ); hb_retclen( szText, iLen ); #else GetWindowText( hWnd, szText, iLen + 1 ); pStr = WideToAnsi( szText ); hb_retc( pStr ); hb_xfree( pStr ); #endif hb_xfree( szText ); } [/pre2]

SergKis: PS Результат вызовов ф-ии HandlesHbWin(...) в log [pre2] Find Text = HandlesHbWin('VLC iptv viewer.', , .T.) // не найдено - все в журнал 1 131180 tooltips_class32 '' 2 131202 SynTPEnhTFPWndClass Forcepad driver tray window 3 131138 SynTrackCursorWindowClass '' 4 131140 SynTPHelperWndClass '' 5 65922 ForegroundStaging '' 6 65872 ForegroundStaging '' 7 65754 tooltips_class32 '' 8 65782 tooltips_class32 '' 9 65776 tooltips_class32 '' 10 65772 tooltips_class32 '' 11 65746 tooltips_class32 '' 12 131338 TaskListThumbnailWnd '' 13 131336 tooltips_class32 '' 14 65796 tooltips_class32 '' 15 65792 tooltips_class32 '' 16 65714 Shell_TrayWnd '' 17 65794 tooltips_class32 '' 18 65756 NotifyIconOverflowWindow '' 19 66056 SystemTray_Main Battery Meter 20 66088 ATL:00007FF855FA21F0 '' 21 66114 ATL:00007FF84C89C230 Network Flyout 22 66112 PNIHiddenWnd '' 23 65950 CiceroUIWndFrame CiceroUIWndFrame 24 66480 Internet Explorer_Hidden '' 25 66478 Internet Explorer_Hidden '' 26 66476 Internet Explorer_Hidden '' 27 66468 Internet Explorer_Hidden '' 28 65942 ClassicShell.COwnerWindow '' 29 65888 CiceroUIWndFrame CiceroUIWndFrame 30 65886 CiceroUIWndFrame TF_FloatingLangBar_WndTitle 31 65836 tooltips_class32 '' 32 4457622 GDI+ Hook Window Class GeпЊ°дІ¤; 33 590832 ConsoleWindowClass {C:\MiniGuiUnicode\SAMPLES\_Test\APP_OOPREPORT} - Far 3.0.5511 x64 Администратор 34 4261026 VLC video main 0000029B6AE00660 VLC (Direct3D11 output) 35 7341156 Qt5QWindowIcon аœаАб‚б аЂа’ - Медиапроигрыватель VLC 36 22217626 QTrayIconMessageWindowClass QTrayIconMessageWindow 37 11535482 Static VLC ghk 3.0.12 38 12780242 GDI+ Hook Window Class G 39 3802124 Chrome_WidgetWin_1 '' 40 6292588 Chrome_WidgetWin_1 Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение) - Google Chrome 41 12190726 Chrome_WidgetWin_0 '' 42 79496232 Chrome_WidgetWin_0 '' 43 15598672 Chrome_WidgetWin_0 '' 44 13763674 Chrome_StatusTrayWindow '' 45 9438310 Chrome_SystemMessageWindow '' 46 76153996 Chrome_WidgetWin_0 '' 47 722154 Base_PowerMessageWindow '' 48 13173218 crashpad_SessionEndWatcher '' 49 65862 ApplicationManager_DesktopShellWindow '' 50 3276890 CTouchPadSynchronizer TouchPad object helper window 51 3211396 CTouchPadSynchronizer TouchPad object helper window 52 328538 FarHiddenWindowClass '' 53 525076 WindowsForms10.Window.8.app.0.d3a00f_r6_ad1 IntelВ® Management and Security Status 54 262970 WindowsForms10.Window.0.app.0.d3a00f_r6_ad1 '' 55 394082 WindowsForms10.tooltips_class32.app.0.d3a00f_r6_ad1 '' 56 328026 ComboLBox '' 57 394230 ComboLBox '' 58 131802 .NET-BroadcastEventWindow.4.0.0.0.d3a00f.0 .NET-BroadcastEventWindow.4.0.0.0.d3a00f.0 59 328080 GDI+ Hook Window Class G 60 131608 WindowsForms10.Window.0.app.0.141b42a_r34_ad1 '' 61 131352 GDI+ Hook Window Class G 62 197630 .NET-BroadcastEventWindow.4.0.0.0.141b42a.0 .NET-BroadcastEventWindow.4.0.0.0.141b42a.0 63 459726 ATL:00A9A850 Lightshot_Tray_Wnd 64 66490 GDI+ Hook Window Class G 65 66502 VSyncHelper-000001EE4DD3B2A0-235bd58 '' 66 66506 VSyncHelper-000001EE4DD3B240-235c065 '' 67 66508 VSyncHelper-000001EE4DD3B1E0-235c1ac '' 68 66504 VSyncHelper-000001EE4DD3B180-235c013 '' 69 66360 GadgetHostListener '' 70 66354 8GadgetPackHelper '' 71 66350 BasicWindow SidebarBroadcastWatcher 72 66346 GDI+ Hook Window Class G 73 197044 EVERYTHING_TASKBAR_NOTIFICATION '' 74 131546 WindowsForms10.Window.0.app.0.14a43c5_r6_ad1 '' 75 131544 .NET-BroadcastEventWindow.4.0.0.0.14a43c5.0 .NET-BroadcastEventWindow.4.0.0.0.14a43c5.0 76 66208 HwndWrapper[SmartAudio3.exe;;666cf6d2-fb24-4259-95a1-8873a2d0dd06] '' 77 66200 HwndWrapper[SmartAudio3.exe;;498f853c-6c9e-4451-92fc-be6461d8dd95] SystemResourceNotifyWindow 78 131732 HwndWrapper[SmartAudio3.exe;;ea92a926-afef-45ac-b7bf-165f90465a8d] MediaContextNotificationWindow 79 197240 ATL:00007FF848D17D50 HDAudioAPI-D9A3021B-9BCE-458C-B667-9029C4EF4050 80 131206 SynTPEnhTrayWndClass Touchpad driver tray icon window 81 66106 CTouchPadSynchronizer TouchPad object helper window 82 66104 SynTPEnhWndClass Touchpad driver helper window 83 66100 ScrollerooWindowClass Touchpad driver backward compatibility window 84 66096 WorkerW '' 85 66048 WorkerW '' 86 66050 OleDdeWndClass DDE Server Window 87 65930 TabletModeCoverWindow '' 88 66066 WorkerW '' 89 66068 WorkerW '' 90 65912 DummyDWMListenerWindow '' 91 65906 EdgeUiInputTopWndClass '' 92 65870 OleDdeWndClass DDE Server Window 93 65858 WorkerW '' 94 65854 ClassicStartMenu.CStartHookWindow StartHookWindow 95 65844 WorkerW '' 96 65842 WorkerW '' 97 65822 WorkerW '' 98 65820 WorkerW '' 99 131716 AfxFrameOrView140su MicTray 100 197210 WorkerW '' 101 131710 BluetoothNotificationAreaIconWindowClass BluetoothNotificationAreaIconWindowClass 102 262754 QLBCONTROLLER QLBController 103 131190 MS_WebcheckMonitor MS_WebcheckMonitor 104 65712 #32770 The Event Manager Dashboard 105 65686 DDEMLEvent '' 106 65682 DDEMLMom '' 107 131104 PushNotificationsPowerManagement Windows Push Notifications Platform 108 131106 COMTASKSWINDOWCLASS Task Host Window 109 65620 Dwm DWM Notification Window 110 131110 CicLoaderWndClass '' 111 263244 tooltips_class32 '' 112 131652 ESET Client Frame ESET Smart Security 113 66438 SideBar_HTMLHostWindow '' 114 66426 BasicWindow Clock 115 66466 SideBar_HTMLHostWindow '' 116 66462 BasicWindow iBattery 117 66442 SideBar_HTMLHostWindow '' 118 66430 BasicWindow Calendar 119 66440 SideBar_HTMLHostWindow '' 120 66428 BasicWindow WeatherCenter 121 14615606 tooltips_class32 '' 122 1443008 HMG_FORM_wM3U VLC iptv viewer. 123 9962252 WorkerW '' 124 65828 Progman Program Manager 125 66134 MSCTFIME UI MSCTFIME UI 126 66102 IME Default IME 127 131142 IME Default IME 128 1507496 MSCTFIME UI MSCTFIME UI 129 65924 IME Default IME 130 1311580 MSCTFIME UI MSCTFIME UI 131 65860 IME Default IME 132 65814 MSCTFIME UI MSCTFIME UI 133 65716 IME Default IME 134 66090 IME Default IME 135 8979572 IME Default IME 136 328526 MSCTFIME UI MSCTFIME UI 137 459756 IME Default IME 138 19334172 IME Default IME 139 41550874 MSCTFIME UI MSCTFIME UI 140 656526 IME Default IME 141 1049794 IME Default IME 142 8324128 IME Default IME 143 26149966 MSCTFIME UI MSCTFIME UI 144 656604 IME Default IME 145 7471792 IME Default IME 146 9962518 IME Default IME 147 5964892 IME Default IME 148 394056 IME Default IME 149 525300 MSCTFIME UI MSCTFIME UI 150 459580 IME Default IME 151 262562 IME Default IME 152 131354 IME Default IME 153 197248 IME Default IME 154 132062 IME Default IME 155 66492 IME Default IME 156 66356 IME Default IME 157 66352 IME Default IME 158 66348 IME Default IME 159 196986 IME Default IME 160 131734 IME Default IME 161 131706 IME Default IME 162 66098 IME Default IME 163 65856 IME Default IME 164 65830 MSCTFIME UI MSCTFIME UI 165 65824 IME Default IME 166 66182 IME Default IME 167 66178 IME Default IME 168 66152 IME Default IME 169 65718 IME Default IME 170 131102 IME Default IME 171 197230 MSCTFIME UI MSCTFIME UI 172 131578 IME Default IME 173 66452 MSCTFIME UI MSCTFIME UI 174 66434 IME Default IME 175 66474 MSCTFIME UI MSCTFIME UI 176 66464 IME Default IME 177 66456 MSCTFIME UI MSCTFIME UI 178 66436 IME Default IME 179 66454 MSCTFIME UI MSCTFIME UI 180 66432 IME Default IME 181 65850 MSCTFIME UI MSCTFIME UI 182 65684 IME Default IME 183 5440658 MSCTFIME UI MSCTFIME UI 184 10159236 IME Default IME Find Class = HandlesHbWin(, 'HMG_FORM_wM3U', .T.) // найдено 1 1443008 HMG_FORM_wM3U VLC iptv viewer. [/pre2]

SergKis: SergKis пишет Не работает GetWindowText() Виноват, работает GetWindowText() и HandlesHbWin() работает. Похоже заработался вчера.

gfilatov2002: Выложил майскую ANSI сборку 21.05 с учетом всех последних изменений по адресу http://hmgextended.com/files/CONTRIB/hmg-21.05-setup.exe Рассматриваю эту сборку как финальную P.S. Архив уникодной сборки также обновил с учетом обсуждения работы функции GetWindowText()

SergKis: gfilatov2002 пишет Архив уникодной сборки также обновил Можно получить этот вариант на посмотрреть ?

rvu: gfilatov2002 А хорошо бы в уникодной версии тоже завести программы-примеры. SergKis выкладывал на днях один.



полная версия страницы