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

|
|
Ответов - 215
, стр:
1
2
3
4
5
6
7
8
9
10
11
All
[только новые]
|
|
|
|
| постоянный участник
|
Пост N: 4901
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.07.26 16:13. Заголовок: gfilatov2002 Предло..
gfilatov2002 Предложение убрать в HMG_Alert(...) все команды для Cargo окна, т.е. #ifdef _OBJECT_ This.Cargo:... #endif т.к. это не имеет большого смысла, по мне
|
 |

|
|
|
| постоянный участник
|
Пост N: 8200
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.07.26 20:07. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: | цитата: | | Выложил обновление 1 для сборки 26.07 |
| А функция HB_FUNC( GETWINDOWRECT ) заменена на новую, которую мне присылали ? 
|
 |

|
|
|
| |
Пост N: 2064
Зарегистрирован: 20.02.11
|
|
Отправлено: 25.07.26 15:20. Заголовок: Andrey пишет: А фун..
Andrey пишет: | цитата: | | А функция HB_FUNC( GETWINDOWRECT ) заменена на новую, |
| Стесняюсь спросить , а что в трех строчках исходника может быть нового? Много где используется эта функция в проектах и чего теперь ожидать ? Сюрпризов не предвидится?
|
 |

|
|
|
| постоянный участник
|
Пост N: 8201
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.07.26 00:46. Заголовок: Haz пишет: Стесняю..
Haz пишет: | цитата: | Стесняюсь спросить , а что в трех строчках исходника может быть нового? |
| В версии 26.03 Про которую я использовал без новой функции, у меня прога стабильно падала 4-5 раз за день на этой функции. После замены на новую, которую дал мне Григорий, прога перестала падать. Вот и спрашивал Григория про новую версию - изменена ли там эта функция. 
|
 |

|
|
|
| |
Пост N: 2065
Зарегистрирован: 20.02.11
|
|
Отправлено: 26.07.26 09:58. Заголовок: Andrey пишет: прога..
Andrey пишет: | цитата: | | прога стабильно падала 4-5 раз за день на этой функции. |
| Помнится падала на параметре hWnd равном 0 Вот и хотелось бы понять в чем лекарство. Думаю это либо несоответствие типа указателя на структуру hWnd (long вместо long long для w64) или простая проверка на 0. Больше там падать не на чем. Если первое это исправление бага, то второе точно не фича😂, т.к. маскирует ошибку с непредсказуемым результатом. Пысы. Глянул трассировку по той ошибке в соседней ветке, так и есть в getwindowrect передано 2 параметра, первый 0, второй 3. Вот на первом и вылет. Исправлять надо до вызова getwindowrect, разбираться почему 0 прилетает. Что сделано сейчас в getwindowrect не знаю, но предполагаю что возможно это проверка if valtype(hWnd) <> "p" ... if hWnd >0 getwindowrect простая API функция , в классике возвращает { left, top, width, height} в minigui добавили второй параметр , по сути это индекс массива , кому-то удобнее, по мне одинаково что getwindowrect(hWnd, 3), что getwindowrect (hWnd) [3] , разве что проверку на диапазон 1-4 можно сделать.. Совместимость обеспечивается и хорошо. Красивее и читаемее объектная нотация , например oWnd:Getwindowrect():top, что в принципе реализуемо легко в mg При этом нужно помнить про "интерфейсные рамки" окон начиная с vista в несколько пикселей под тени , и getwindowrect возвращает координаты по внешнему контуру этих рамок. Movewindow тоже в них работает.
|
 |

|
|
|
| постоянный участник
|
Пост N: 8202
Зарегистрирован: 12.09.06
|
|
Отправлено: 27.07.26 07:08. Заголовок: Haz пишет: Исправля..
Haz пишет: | цитата: | | Исправлять надо до вызова getwindowrect, разбираться почему 0 прилетает. |
| По коду у меня так: oBrw:Reset() <<<-------------------- MAINCARDTABLE(4173) или oBrw:DrawFooters() <<<<----------- MYINITFORMTABLE(1058) in module: Source\Tbrw_table.prg Т.е. нахожусть в ТСБ, открываю карточку по одной записи, потом закрываю карточку и делаю по ТСБ oBrw:Reset(), далее вылет. Какую трассировку поставить перед этими командами ? Может нужно как то переключиться заново на ТСБ ? 
|
 |

|
|
|
| |
Пост N: 2066
Зарегистрирован: 20.02.11
|
|
Отправлено: 27.07.26 09:31. Заголовок: И... После каждой ка..
И... После каждой карточки выдаёт? Вопросы Зачем reset() ? Меняется количество строк в obrw после карточки ? Вместо карточки нейтральное окно. Например alert , не п приводит к вылету? Переменные изолированы в карточке? Объекты и массивы передаются по ссылке и из легко попортить в функции
|
 |

|
|
|
| постоянный участник
|
Пост N: 8203
Зарегистрирован: 12.09.06
|
|
Отправлено: 27.07.26 18:11. Заголовок: Haz пишет: После ка..
Haz пишет: | цитата: | | После каждой карточки выдаёт? |
| Нет, может 4-5 раз пройти нормально, а потом юзер что-то нажимает и вылет. У меня ни разу не вылетала 10-15 раз делал. Зачем reset() ? Меняется количество строк в obrw после карточки ? - ДА На остальные вопросы тоже ДА
|
 |

|
|
|
| |
Пост N: 2067
Зарегистрирован: 20.02.11
|
|
Отправлено: 27.07.26 19:05. Заголовок: Andrey пишет: потом..
Andrey пишет: | цитата: | потом юзер что-то нажимает и вылет. У меня ни разу не вылетала 10-15 раз делал. |
| Ищи где hWnd обнуляется , для начала переименуй во что то уникальное. Например hWnd_Brw1 По ошибке поймёшь где пересечение переменных. Скорее всего проблема именно в пересечении public private Возможно в карточке как то затрагиваешь oBrw:hWnd, т.к валится на :reset() , очень похоже на что именно этот хендл уничтожен.
|
 |

|
|
|
| постоянный участник
|
Пост N: 8204
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.07.26 21:19. Заголовок: Haz пишет: Возможно..
Haz пишет: | цитата: | Возможно в карточке как то затрагиваешь oBrw:hWnd, т.к валится на :reset() , очень похоже на что именно этот хендл уничтожен. |
| Ничего подобного - код работал очень давно БЕЗ ТАКИХ ОШИБОК !!! Это после перехода на новые версии, после 25-26 года появились эти ошибки. До этого сидел на версии 23.09.2 или 23.12.9
|
 |

|
|
|
| |
Пост N: 2068
Зарегистрирован: 20.02.11
|
|
Отправлено: 29.07.26 00:02. Заголовок: Andrey пишет: код р..
 Andrey пишет: Первое , не факт что правильно работал, может новая версия строже к косякам. Второе , что то я не припомню чтобы у кого то была такая устойчивая проблема , что про вылеты написана целая ветка., значит это субъективная проблема. Значит искать ошибку надо в коде. Третье, лог ошибки говорит что в функцию сунули нулевой хендл. Можешь не верить и логу. Скинь "исправленную Getwindowrect , Там будет явно видна попытка купировать причину. Это кстати меня с самого начала интересует, когда спрашивал про сюрпризы. В формате "Ничего подобного" тоже могу заявить - не вылетает и не вылетало на любой версии в этой функции вот уже более 20 лет. Просто поспорить ниочем , это без меня тем более эта функция меня полностью устраивает своей простотой и стабильностью😉.
|
 |

|
|
|
|
|
| moderator
|
Пост N: 2552
Зарегистрирован: 11.02.10
|
|
Отправлено: 29.07.26 09:44. Заголовок: Просто к сведению
Выложил обновление 2 для сборки 26.07 Что нового: Скрытый текст
* ButtonEx Control * Fixed a very old typo affecting restoration of the original text color during ButtonEx processing. * Image Control * Added runtime support for retrieving the STRETCH property. You can now query the property using either syntax: * Function style: GetProperty( Form, Image, "Stretch" ) * Pseudo-OOP style: Form.Image.Stretch * TAB Control * Added additional validation to improve robustness of the owner-draw color TAB implementation. * Updated TAB sample application accordingly. * TSBrowse Integration * Updated the adapted FiveWin TSBrowse 9.0 implementation. * Corrected the _TBrowse_bAdjColumns block handling inside the _TBrowse() function. * New Documentation (PRO Version) * Added the Modern Harbour MiniGUI Development Guide, a comprehensive practical handbook covering modern MiniGUI development. The guide includes 11 complete chapters: * Introduction * Installing the Development Environment * Recommended Project Structure * MiniGUI Fundamentals * Modern Best Practices * 20 Complete Working MiniGUI Examples * Refactoring Legacy MiniGUI Code * Coding Standards * 25 Common Mistakes and How to Avoid Them * MiniGUI Development Checklist * Appendix with frequently used commands, controls, events, and Harbour functions * Low Level DBU Utility (PRO Version) * Improved documentation throughout the project. * Added extensive comments explaining the DBF parsing internals. * Refactored HL_DBInfoLL() for greater readability while preserving existing functionality.
| Желаю всем хорошего дня! 
|
 |

|
|
|
| moderator
|
Пост N: 2553
Зарегистрирован: 11.02.10
|
|
Отправлено: 05.08.26 08:57. Заголовок: Выложил обновление 3..
Выложил обновление 3 для сборки 26.07 Что нового: Скрытый текст
* BROWSE Control The BROWSE control has received a comprehensive update to its mouse wheel processing. * Fixed handling of WM_MOUSEWHEEL entirely within the subclass procedure to prevent unwanted native ListView scrolling. * Improved simulated keyboard navigation by generating complete key press and key release events. * Prevented unwanted horizontal scrolling while preserving smooth mouse wheel navigation. Thanks to Eladio Bravo for identifying and contributing to these improvements. * Mouse Wheel Support Mouse wheel processing has been enhanced throughout MiniGUI. * Honors the user's Windows mouse wheel scrolling settings. * Provides smoother scrolling in forms using virtual dimensions. * Win32 API Improvements The SystemParametersInfo() C function has been enhanced. * SPI_GET* actions now correctly return values through a by-reference third parameter, making the function more consistent with the native Win32 API. * TSBrowse Integration The adapted FiveWin TSBrowse 9.0 implementation has been updated. * Replaced its local mouse wheel scroll line implementation with the improved SystemParametersInfo() support provided by MiniGUI. * New Sample: Automatic Last GRID Column Resizing A new sample demonstrates how to automatically resize the last GRID column to occupy the remaining available client area while maintaining minimum width constraints. * New Sample: Tree Control Basics A new educational sample introduces the HMG TREE control and demonstrates: * Hierarchical node creation * Item selection * Runtime node management * Runtime expand and collapse operations * Updated GraphPrint Sample The Desktop Windows Version Market Share Worldwide example has been modernized. * Refactored to comply with the HMGEE Sample Library coding and documentation standards. * Updated market share data for June 2026. * Improved random color selection.
| Желаю всем хорошего дня! 
|
 |

|
|
|
| постоянный участник
|
Пост N: 4903
Зарегистрирован: 17.02.12
|
|
Отправлено: 08.08.26 07:52. Заголовок: gfilatov2002 Предло..
gfilatov2002 Предложение по :FilterFTS(...), добавить символы для поиска более сложных фраз METHOD FilterFTS( cFind, lUpper, lBottom, lFocus, lAll, cTokens ) METHOD FilterFTS_Line( cFind, lUpper, lAll, cTokens ) METHOD FilterFTS( cFind, lUpper, lBottom, lFocus, lAll, cTokens ) CLASS TSBrowse ... DEFAULT lUpper := .T., lAll := .F., cTokens := "~` " ... IF Left( cFind, 1 ) $ cTokens .AND. Len( cFind ) > 1 aFind := hb_ATokens( SubStr( cFind, 2 ), Left( cFind, 1 ) ) ELSE ... IF ::lIsDbf IF ! Empty( cFind ) ( cAlias )->( dbSetFilter( {|| ob:FilterFTS_Line( cFind, lUpper, lAll, cTokens, ob ) }, ; "ob:FilterFTS_Line( cFind, lUpper, lAll, cTokens, ob )" ) ) ELSE ... METHOD FilterFTS_Line( cFind, lUpper, lAll, cTokens ) CLASS TSBrowse LOCAL nCol, oCol, xVal, lRet := .F., aFind DEFAULT lUpper := .T., lAll := .F., cTokens := "~` " IF Left( cFind, 1 ) $ cTokens .and. Len( cFind ) > 1 aFind := hb_ATokens( substr( cFind, 2 ), Left( cFind, 1 ) ) ELSE ...
|
 |

|
|
|
| moderator
|
Пост N: 2554
Зарегистрирован: 11.02.10
|
|
Отправлено: 08.08.26 17:59. Заголовок: SergKis пишет: доба..
SergKis пишет: | цитата: | | добавить символы для поиска |
| OK Спасибо!
|
 |

|
|
Ответов - 215
, стр:
1
2
3
4
5
6
7
8
9
10
11
All
[только новые]
|
|