Форум » 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: Выложил апрельскую сборку 23.04 с учетом последних исправлений и дополнений click here Что нового (кратко): [pre2]* Fixed: Revised a releasing of the COMBOBOXEX control (a bug has been introduced since the first implementation of this control). * Enhanced: Standard IMAGE BUTTON control supports normal display of the PNG images with alpha channel. * Enhanced: The GetBox control additionally supports Ctrl+Z hotkey to undo the current value when editing. * Enhanced: Added a new optional clause IMAGESIZE <w>, <h> to the COMBOBOXEX control (similar to ButtonEx control). The alternative syntax is IMAGEWIDTH <w> and IMAGEHEIGHT <h>. * Enhanced: MENUITEM command supports optional clause ICON <icon> in the context menu. * Enhanced: Added description of OS error value in the ErrorLog file using the new GetOSErrorDescription( <nError> ) function. * Updated: Adaptation FiveWin Class TSBrowse 9.0 in HMG: - fixed incorrect use of the SetMsg() method in the TSBrowse class when TBROWSE was defined without a MESSAGE clause. * Updated: HbZipArc library source code: - added new function hb_IsZipFile( <cFilename> ) for a quick test to determine if a file is a ZIP file. * Updated: PageScript 32 library: - update for using PageScript DLL 4.0.1.157 (from 4.0.1.144). * Updated: Harbour Compiler 3.2.0dev (SVN 2023-04-21 13:01). * Updated some Basic and Advanced samples. [/pre2] Желаю всем мирного неба над головой Берегите себя!

SergKis: gfilatov2002 пишет Выложил апрельскую сборку 23.04 с учетом последних исправлений и дополнений Unicode сборка будет ?

gfilatov2002: SergKis пишет: Unicode сборка Выложил Unicode сборку по известному адресу. Что нового: - добавил новый пример GOOGLE7 для перевода слов (или предложения) на шесть европейских языков с помощью сервиса Google Translate


SergKis: gfilatov2002 Спасибо, забрал

Andrey: На новой версии МиниГуи мой большой проект собрался и работает ! Классно !!!

gfilatov2002: Подготовил 1-е обновление для сборки 23.04, которое планируется опубликовать на следующей неделе Что нового: [pre2] * Enhanced: New GetCPUInfo() function was used in the Error logging routine. Contributed by Grigory Filatov <gfilatov@gmail.com> (see demo in folder \samples\Basic\ShowDetailError) * Enhanced: Added a new optional clause HOTKEY <KeyName> to the CREATE LINK FILE command. Contributed by Grigory Filatov <gfilatov@gmail.com> (see demo in folder \samples\Basic\CreateLink) * Updated: Unneeded casting of the C-code was removed in some places. Contributed by Grigory Filatov <gfilatov@gmail.com> * Updated: Added use of low-level resource management system to C code of CreateGradientBrush() function. Contributed by Grigory Filatov <gfilatov@gmail.com> (see demo in folder \samples\Advanced\SetThemes) * Updated: HBPrinter library: - further parameter substitution in C-code using macros from the header file mgdefs.h. Contributed by Grigory Filatov <gfilatov@gmail.com> (see source in folder \Source\HBPrinter) * Updated: HbSQLite3 library: - update for using SQLITE3 version 3.42.0 (from 3.41.2). Contributed by Grigory Filatov <gfilatov@gmail.com> * Updated: 'Tree Menu' sample: added useful function TreeItemGetPathValue ( ControlName, ParentForm, nItem ). Adapted for Minigui Extended by Grigory Filatov (see in folder \samples\Basic\TreeMenu_2) * Updated: 'PageScript 32 test' sample: - update external app Viewer.exe to version 1.2 (from 1.0). Contribution of Richard Visscher <richard/at/irvis.com> (see in folder \samples\Advanced\PageScript) [/pre2] До новых встреч

gfilatov2002: Всем кому это интересно Выложил 1-е обновление сборки 23.04 с учетом последних исправлений и дополнений click here Желаю всем мира и добра

gfilatov2002: Выложил 2-е обновление сборки 23.04 с учетом последних исправлений и дополнений Что нового: [pre2] * Enhanced: Added the OOP class TThrData for managing objects in the thread. Suggested and contributed by Sergej Kiselev (see demo3.prg in folder \samples\Advanced\ShellExec) * Updated: Harbour Compiler 3.2.0dev (SVN 2023-05-19 16:29): * Fixed: do not generate warnings for undeclared methods when -w[12] is used. Contributed by Przemyslaw Czerpak <druzus/at/priv.onet.pl> (look at ReadMe.txt in folder \harbour) * New: 'FTP Navigator' sample based upon CURL library. Note: this example requires curl.dll. Based upon a contribution of HMG user Edward. Adapted for Minigui Extended by Jozef Rudnicki (see in folder \samples\Advanced\FtpNavigator) * New: 'Read xlsx files without using OLE, libraries, etc' sample. Don't miss this very interesting example! Based upon a contribution of HMG user Edward (see in folder \samples\Advanced\ReadXLSX) * Updated: 'Horizontal radio group with variable items width' sample: - updated with the latest changes in the Minigui core. Contributed by Grigory Filatov <gfilatov@gmail.com> (see in folder \samples\Basic\RadioGroup_nofixed) * Updated: 'ShellExecuteEx() and WaitForSingleObject() usage' sample. Contributed by Sergej Kiselev and Verchenko Andrey (see in folder \samples\Advanced\ShellExec) * Updated: 'Monthly calendar with date stamp at runtime' sample: - changed color theme. Contributed by Grigory Filatov <gfilatov@gmail.com> (see demo2.prg in folder \samples\Advanced\Tsb_calendar) [/pre2] Скачать До новых встреч

Andrey: Как можно это сообщение сделать чтобы запускался AlertStop() вместо MsgStop() ? [pre2] _HMG_MESSAGE[4] := "Попытка запуска второй копии программы:" + CRLF + ; App.ExeName + CRLF + ; "Отказано в запуске !" + CRLF + _HMG_MESSAGE[4] SET MULTIPLE OFF WARNING[/pre2]

Andrey: Григорий, а можно написать в группу Harbour что глючит последняя версия ? И когда будет новая версия Харбора ?

gfilatov2002: Andrey пишет: Как можно это сообщение сделать чтобы запускался AlertStop() вместо MsgStop() ? Можно сделать таким образом: [pre2]#translate SET ALERT MULTIPLE <x:ON,OFF> [ <warning: WARNING> ] ; => ; _HMG_lMultiple := ( Upper(<(x)>) == "ON" ) ; iif ( _HMG_lMultiple == .F. .AND. _HMG_IsMultiple == .T. , ( iif ( <.warning.> , AlertStop( _HMG_MESSAGE\[4\] ) , ) , ExitProcess() ) , ) [/pre2]

gfilatov2002: Andrey пишет: написать в группу Harbour что глючит последняя версия Это бесполезно, поскольку компилятор BCC не является приоритетным для Харбора. Таким рекомендуемым Си-компилятором является изначально бесплатный MinGW.

Andrey: gfilatov2002 пишет: Можно сделать таким образом: Не получается... Всё равно выходит MsgStop() ! Можно другую команду придумать ? Чтобы не делать всякие #translate Типа такой или другой: SET ALERTMULTIPLE OFF WARNING

SergKis: Andrey пишет Всё равно выходит MsgStop() ! Создавай DlgFont и ВСЕГДА окно MAIN в режиме hide (Title можешь делать рабочий, потом переустанавливать) будет работать AlertStop() и другие Alert... после этого можешь выходить или _SplashWindow() делать со считыванием данных настроек и т.д. это если хочешь общаться. При повторных запусках (хоть закликайся мышкой) делаю выход из проги без разговоров\сообщений PS. Схема такая, например [pre2] LOCAL nStartPost := 0 ... IF OnlyOneInstance( cAppTitle ) // .T. - 2-ой запуск nStartPost := 98 ENDIF ... DEFINE WINDOW ... MAIN ... NOSHOW ... ; ON INIT {|| DoEvents(), _wPost(nStartPost) } ; ... o := This.Object o:Event( 0, {|ow| _SplashWindow(ow, ...) }) ... o:Event(98, {|| AlertStop(...), _wSend(99) }) o:Event(99, {|ow| ow:Release() }) ... [/pre2]

SergKis: gfilatov2002 пишет Можно сделать таким образом: #translate SET ALERT MULTIPLE <x:ON,OFF> [ <warning: WARNING> ] ; => ; _HMG_lMultiple := ( Upper(<(x)>) == "ON" ) ; iif ( _HMG_lMultiple == .F. .AND. _HMG_IsMultiple == .T. , ( iif ( <.warning.> , AlertStop( _HMG_MESSAGE\[4\] ) , ) , ExitProcess() ) , ) Зачем так сложно ? Достаточно, что то такое [pre2] #translate SET EXIT MULTIPLE [ <warning: WARNING> ] ; => ; _HMG_lMultiple := !Empty( _HMG_IsMultiple ) ; iif ( _HMG_lMultiple , ( iif ( <.warning.> , AlertStop( _HMG_MESSAGE\[4\] ) , ) , ExitProcess() ) , ) [/pre2] использовать для выхода второго запуска с сообщением SET EXIT MULTIPLE WARNING или для выхода без сообщения SET EXIT MULTIPLE или такую команду #translate SET MULTIPLE QUIT [ <warning: WARNING> ] ; ...

gfilatov2002: SergKis пишет: #translate SET MULTIPLE QUIT [ <warning: WARNING> ] Благодарю за помощь! Добавил эту команду в следующее обновление, но дата его выхода неизвестна.

Andrey: Возвращаюсь к вопросу управления иконок в кнопке. Можно ли как то иконку сдвигать влево, если текст расположен справа в кнопке ? Большие иконки 96х96 просто двигают текст направо и он обрезается. Можно ли как то повлиять на данную ситуацию.

gfilatov2002: Andrey пишет: Можно ли как то повлиять на данную ситуацию Можно, например, использовать другую кнопку HMGBUTTON (размер картинки 128х128), как показано ниже. Вот полный текст этого примера: [pre2] #include "minigui.ch" Procedure Main DEFINE WINDOW Win1 ; AT 0,0 ; WIDTH 550 ; HEIGHT 450 ; TITLE 'Custom Component Demo' ; MAIN DEFINE MAIN MENU DEFINE POPUP 'Test' MENUITEM 'Custom Method: SetFocus' ACTION Win1.Test.SetFocus MENUITEM 'Custom Method: Disable' ACTION Win1.Test.Disable MENUITEM 'Custom Method: Enable' ACTION Win1.Test.Enable MENUITEM 'Custom Property: Handle (Get)' ACTION MsgInfo ( Win1.Test.Handle ) MENUITEM 'Custom Property: Handle (Set)' ACTION Win1.Test.Handle := 1 MENUITEM 'Custom Property: Caption (Get)' ACTION MsgInfo ( Win1.Test.Caption ) MENUITEM 'Custom Property: Caption (Set)' ACTION Win1.Test.Caption := 'New Caption' MENUITEM 'Custom Property: Picture (Get)' ACTION MsgInfo ( Win1.Test.Picture ) MENUITEM 'Custom Property: Picture (Set)' ACTION Win1.Test.Picture := 'button.png' END POPUP END MENU @ 10 , 10 HMGBUTTON test ; OF Win1 ; CAPTION 'Left Align Button' ; PICTURE "hmg.png" ; WIDTH 280 ; HEIGHT 180 ; ACTION MsgInfo('Click! 1') LEFT @ 200 , 10 HMGBUTTON test2 ; OF Win1 ; CAPTION 'Right Align Button' ; PICTURE "hmg.png" ; WIDTH 280 ; HEIGHT 180 ; ACTION MsgInfo('Click! 2') RIGHT @ 10 , 300 HMGBUTTON test3 ; OF Win1 ; CAPTION 'Top Picture Align Button' ; PICTURE "hmg.png" ; WIDTH 220 ; HEIGHT 180 ; ACTION MsgInfo('Click! 3') TOP @ 200 , 300 HMGBUTTON test4 ; OF Win1 ; CAPTION 'Bottom Picture Align Button' ; PICTURE "hmg.png" ; WIDTH 220 ; HEIGHT 180 ; ACTION MsgInfo('Click! 4') BOTTOM END WINDOW Win1.Test.SetFocus CENTER WINDOW Win1 ACTIVATE WINDOW Win1 Return [/pre2]

Andrey: Спасибо ! Буду пробовать.

SergKis: gfilatov2002 Небольшие добавки [pre2] CLASS TWNDDATA ... ACCESS Enabled INLINE IsWindowEnabled ( ::nHandle ) ASSIGN Enabled( xVal ) INLINE iif( Empty( xVal ), DisableWindow ( ::nHandle ), EnableWindow ( ::nHandle ) ) METHOD Enabler( cName, xVal ) INLINE SetProperty( ::cName, cName, "Enabled", !Empty(xVal) ) ... *-----------------------------------------------------------------------------* FUNCTION Do_Obj( nHandle, bBlock, p1, p2, p3 ) *-----------------------------------------------------------------------------* LOCAL o IF HB_ISCHAR( nHandle ) nHandle := GetFormHandle( nHandle ) ENDIF IF hmg_IsWindowObject( nHandle ) o := hmg_GetWindowObject( nHandle ) IF ISBLOCK( bBlock ) IF o:IsWindow // set the environment This window RETURN Do_WindowEventProcedure ( bBlock, o:Index, o, p1, p2, p3 ) ELSE // set the environment This control RETURN Do_ControlEventProcedure( bBlock, o:Index, o, p1, p2, p3 ) ENDIF ELSEIF bBlock != NIL // do not change the environment This RETURN o:Event( bBlock, o, p1, p2, p3 ) // bBlock - execution key ENDIF ENDIF RETURN o [/pre2]



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