Форум » 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: SergKis пишет: пример Tree по каталогам hmg Супер Большое спасибо за пример

SergKis: gfilatov2002 Добавьте, пожалуйста, в CLASS TKeyData[pre2] ... ACCESS IsEvent INLINE ::lKey ASSIGN KeyUpper( lUpper ) INLINE hb_HCaseMatch( ::aKey, ! Empty( lUpper ) ) METHOD ISBLOCK( Key ) INLINE HB_ISBLOCK( ::Get( Key ) ) ... [/pre2]

gfilatov2002: SergKis пишет: Добавьте, пожалуйста, в CLASS TKeyData OK


SergKis: gfilatov2002 Небольшая оболочка для hmg https://TransFiles.ru/dujpq Хотел сделать без сообщений, но DublClick на Tree в Item оставляет фокус на Item, а не на TsBrowse. Сделал работу по сообщениям. На вопросы отвечу

gfilatov2002: SergKis пишет: Небольшая оболочка для hmg Большое спасибо! Очень хорошо SergKis пишет: Хотел сделать без сообщений Было бы тоже интересно... SergKis пишет: На вопросы отвечу Наверное, небольшое описание как использовать не помешает

SergKis: gfilatov2002 пишет Наверное, небольшое описание как использовать не помешает 1. Располагаю на уровне каталогов Advanced Application Basic TEST в нем подкаталог HmgPrj -> разорачиваем архив. Запускаемся. 2. Пример взаимодействия tree + tsbrowse 3. Изучаем содержимое текстов hmg (source, примеры, утилиты, doc) - в tree выбираем item с файлом - для txt, ch запустится редактор сразу - для prg, c в tsb создается список Entity, по ключевым словам, номер строки в тексте и содержимое строки. Работают сортировки в колонках Line, Entity type, Entity name (двойной клик). Выбрав строку нужную Enter, DblClick попадем на указанную строку в редакторе 4. Пример использования App.Cargo, App.Object, ThisWindow.Object Можно, конечно, добавить сборку minigui lib-ов, но не ставил такую цель

SergKis: PS Ключевые слова для C, PRG + FColor задаются в массивах (можно сделать из вне) см. AppInitEnv() Запуск редактора в App.Object строка (см. STAT FUNC PrjStart( cPath, cDir )) :O:Ed := cDir + 'ED' + cSep + 'Notepad3.exe' из :O:ChLog := cPath + 'DOC' + cSep + 'ChangeLog.txt' берется root текст для Tree

SergKis: PPS Запуск редактора (два варианта) в строках :Event( 2, {|ow,ky,par| _Execute ( , , ow:AO:Ed, par, , 5 ) } ) // без номера строки :Event( 3, {|ow,ky,par| _Execute ( , , ow:AO:Ed, '/g '+par[1]+' '+par[2], , 5 ) } ) // с установкой на номер строки Notepad3.exe использован по причине наличия подсветки Harbour синтаксиса. Можно исп. другой. Notepad2.exe как пример другого лежит рядом в ED каталоге

SergKis: gfilatov2002 пишет Было бы тоже интересно... Тут без евентов (строки помечены // !!!) https://TransFiles.ru/3i5po Разницы по тексту почти нет, но DblClick по дереву не переключает фокус на TsBrowse. Команда в STAT FUNC Read_Entity( cFile, cItem ) стоит oBrw:Cargo := cFile oBrw:aSuperHead[1, 3] := upper(cFile) oBrw:Reset() oBrw:SetFocus() DO EVENTS

SergKis: PS добавление новых ключевых слов [pre2] AppInitEnv() ... aEntityPrg := { "FUNC " , ; ... "PROCEDURE " , ; "CREATE CLASS " , ; "CLASS " , ; "END CLASS " , ; ... aEntityFClr := { { "STAT " , CLR_BLUE }, ; { "STATIC " , CLR_BLUE }, ; { "CREATE" , CLR_RED }, ; { "CLASS " , CLR_RED }, ; { "ENDCLASS ", CLR_RED }, ; { "END " , CLR_RED }, ; { "DEFINE " , CLR_RED }, ; ... [/pre2]

SergKis: PPS Отсечь каталоги из просмотра можно так [pre2] *-----------------------------------------------------------------------------* STAT FUNC PrjSampl( nNr ) *-----------------------------------------------------------------------------* LOCAL aMask := {"*.prg", "*.cpp", "*.c", "*.ch"} LOCAL aNoDir := {"OBJ,ED,TMP,TEMP"} // было {"OBJ"} DEFAULT nNr := TREE_NODE_SAMLPES WITH OBJECT App.Object :O:aSampl := DirListHmg(:O:Sampl, aMask, .T., .F., aNoDir) END WITH RETURN Nil [/pre2]

gfilatov2002: SergKis пишет: DblClick по дереву не переключает фокус на TsBrowse Решил эту проблему с помощью простого таймера: oBrw:Reset() DEFINE TIMER t_1 OF &cWnd INTERVAL 50 ACTION ( oBrw:SetFocus(), DOMETHOD( cWnd, "t_1", "RELEASE" ) ) ONCE DO EVENTS предварительно добавив 3-й параметр в функцию STAT FUNC Read_Entity( cFile, cItem, cWnd ) Теперь фокус переключается нормально

gfilatov2002: SergKis пишет: Тут без евентов Большое спасибо

SergKis: gfilatov2002 пишет Решил эту проблему с помощью простого таймера предварительно добавив 3-й параметр в функцию Теперь фокус переключается нормально Это все хорошо Что бы этого не делать + убираются и др. бяки, предпочитаю работать с Event-ами. Тексты при этом не сильно отличаются (на примере видно). gfilatov2002 Можно добавить в h_objmisc.prg[pre2] *-----------------------------------------------------------------------------* FUNCTION _wPost( nEvent, nIndex, xParam ) *-----------------------------------------------------------------------------* LOCAL oWnd If HB_ISOBJECT(nIndex) If nIndex:ClassName == 'TSBROWSE' oWnd := _WindowObj( nIndex:cParentWnd ) Else oWnd := nIndex EndIf nIndex := Nil Else oWnd := _WindowObj( _HMG_THISFORMNAME ) EndIf oWnd:PostMsg( nEvent, nIndex, xParam ) RETURN Nil *-----------------------------------------------------------------------------* FUNCTION _wSend( nEvent, nIndex, xParam ) *-----------------------------------------------------------------------------* LOCAL oWnd If HB_ISOBJECT(nIndex) If nIndex:ClassName == 'TSBROWSE' oWnd := _WindowObj( nIndex:cParentWnd ) Else oWnd := nIndex EndIf nIndex := Nil Else oWnd := _WindowObj( _HMG_THISFORMNAME ) EndIf oWnd:SendMsg( nEvent, nIndex, xParam ) RETURN Nil проще писать в текстах, например: ON DBLCLICK (ThisWindow.Object):Post(1, This.Index) ; --> _wPost(1, This.Index) :UserKeys(VK_ESCAPE, {|ob| _WindowObj(ob:cParentWnd):Send(4) } ) --> :UserKeys(VK_ESCAPE, {|ob| _wSend(4, ob) }) :UserKeys(VK_RETURN, {|ob,ow,cl| ow := _WindowObj(ob:cParentWnd), ; cl := hb_ntos((ob:cAlias)->R_2), ; ow:Send(3, , { cl, ob:Cargo }) } ) --> :UserKeys(VK_RETURN, {|ob| _wSend(3,ob, { hb_ntos((ob:cAlias)->R_2), ob:Cargo }) } ) [/pre2]

gfilatov2002: SergKis пишет: добавить в h_objmisc.prg OK, добавил P.S. Новая сборка выйдет завтра...

gfilatov2002: Выпущена новая сборка 19.02 для BCC 5.5.1 и компиляторов Harbour и xHarbour. Инсталлятор базового дистрибутива находится по адресу http://hmgextended.com/files/CONTRIB/hmg-19.02-setup.exe Также имеются дополнительные сборки для следующих Си-компиляторов: - MinGW 8.1.0 32-bit для Harbour 3.2.0dev; (есть в наличии) - MinGW 8.2.0 64-bit для Harbour 3.4.0dev; (есть в наличии) - MS VisualC 2017 32-bit для Harbour 3.2.0dev; (путь и имя архива не изменял) - MS VisualC 2017 64-bit для Harbour 3.2.0dev; (путь и имя архива не изменял) - Pelles C 8.0 32-bit для xHarbour b10244; (под заказ) - Pelles C 9.0 64-bit для xHarbour b10244; (под заказ) - Borland/Embarcadero C++ 7.3 (32-bit) для Harbour 3.2.0dev; (под заказ) - Open Watcom C/C++ 2.0 (32-bit) для Harbour 3.2.0dev. (под заказ) Благодарю за Ваше внимание

SergKis: Возможно, будет полезно (на базе пред. примера). Утилита hmg_project для просмотра исходников MiniGui https://TransFiles.ru/o9ytl Добавлен пункт All entity для списка всех entity объектов файлов C и PRG каталога SOURCE. На индексных колонках есть подвод по вводимому тексту (для колонки line это по name файла) Архив разворачивать в UTILS\hmg_project. Сборка только под посл. версией hmg. На вопросы отвечу.

gfilatov2002: SergKis пишет: Утилита hmg_project для просмотра исходников Большое спасибо SergKis пишет: будет полезно Да, очень наглядный пример системной утилиты

Andrey: SergKis пишет: Утилита hmg_project для просмотра исходников MiniGui Можно ли добавить в эту утилиту глобальный поиск по исходникам, но только не отдельных слов (это просто, можно Far использовать), а поиск по строкам 2х или 3х слов одновременно (Far такого не может) ?

TimTim: А что мелочиться, сразу уж поиск по регулярному выражению.



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