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

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

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

Ответов - 33, стр: 1 2 All

SergKis: gfilatov2002 пишет Это не всегда удобно. Но, возможно, надо добавить команду-переключатель этого режима Речь скорее о надежности, сам попадался вместо interval 100 ставил 10 и получал сваливание и сразу не поймешь почему. Вместо переключателя предложил бы сделать _HMG_aFormMiscData1[ k ] := oHmgData() и все массивы, которые есть перенес в объект. Мест для замены не много, даже учитывая примеры. Если это слишком радикально, то сделать _HMG_aFormMiscData1[ k ] := array(6) везде и 6-м элементом сделать oHmgData() (_HMG_aFormMiscData1[ k ] сейчас имеет значения массива от 0 до 5). Если добавить в THmgData метод :DO(...), то получится внутренний псевдо объект, куда можно регистрировать свойства окон и их обработчики, для исп. в Events(...), по мне, это упростило бы многие ситуации. Например, для таймеров, можно их зарегистрировать (имена), поставив disable .F., а в ON INIT по списку включить disabled .T. . Для PAINT можно сразу прописывать блоки кода и в events(...) просто вызывать и т.д. Конечно и _HMG_aFormMiscData2[ k ] := oHmgData() сделал - это удобно, опять же, по мне Это подстраховка, если библиотека собрана без использования NAMES_LIST (например, для xHarbour). Надо привести THmgData к одинаково работающему элементу (Hash, Class в xHarbour есть, вызовы, вроде, отличаются) и упростить код

Andrey: Григорий, а нельзя сделать в hbmk2.bat ВСЕГДА следующее: [pre2]set _PATH=%PATH% set PATH=%MG_BCC%\bin;%MG_ROOT%\harbour\bin;%PATH% echo %MG_ROOT%\ echo %MG_BCC% rem *************************************************************************** rem set default GT driver [/pre2] Чтобы было ВСЕГДА видно какая версия компилируется ? Я у себя держу на диске C: сразу несколько версий МиниГуи MiniGUI-23.09.2 MiniGUI-23.10 MiniGUI-23.12 MiniGUI-24.01 Это позволяет быстро переключаться между версиями... Это из-за проблем Харбора, приходиться тестировать на разных версиях Харбора.

krutoff: Наверное Флейм: Григорий - Думаю, твое решение правильное, Время покажет. Тебе (извини за ТЫ) Огромное спасибо за Твою Работу! 20 лет пользуюсь miniGUI БЛАГОДАРЯ Тебе! Сергею! Крутой аудитор и со-разработчик проекта! Проект с тобой развился на 200%! Андрей: Гуру-Тестировщик, задавальщик классных вопросов, PR-manager. Спасибо! Твои ссылки, примеры в моем избранном! Много других классных - Павел, Дима... Всегда помогали! Немного эмоционально.


SergKis: krutoff пишет Всегда помогали! Немного эмоционально. Какой то, грустный пост, как прощание

SergKis: gfilatov2002 Григорий, а можно получить unicode версию и ключик от Pro, а то мои версии сильно рассогласовались (unicode 23.07)

gfilatov2002: SergKis пишет: можно получить unicode версию Отправил ссылку в личку Добавил также предложенные Вами изменения для поддержки JSON кода.

SergKis: gfilatov2002 Спасибо С трудностями (блокировано все), но забрал.

Dima: SergKis пишет: С трудностями (блокировано все), но забрал. Не приходила мысль просто дать Григорию координаты своего FTP ?

SergKis: Dima пишет Не приходила мысль просто дать Григорию координаты своего FTP ? Приходила, но он в подвешенном состоянии, может быть отключен, но ты прав на 100% (фирма продана, а сервер у товарища дома теперь) PS В личку положил, Дима, спасибо, пнул в нужном направлении

Andrey: Обратите внимание на новую версию МиниГуи !!! [pre2]1) Пример \SAMPLES\Advanced\ACHOICE_3 позволяет показывать массив в окне с выбором. Синтаксис в программе простой: aRet := MenuAviAchoice( aMenu ) Есть и более продвинутые показы. К своему проекту нужно прилинковать модуль util_AviAchoice.prg 2) Пример \SAMPLES\Advanced\ACHOICE_4 позволяет показывать массив в окне с выбором. Синтаксис в программе простой: aRet := MenuAchoice( aMenu ) Есть и более продвинутые показы. К своему проекту нужно прилинковать модуль util_achoice.prg 3) Пример \SAMPLES\BASIC\WAIT_WINDOW_4 Прелодер показа на длительных операциях для AVI файлов Пробовал в больших проектов, картинка не тормозит и не замирает, работает как часы. К своему проекту нужно прилинковать модуль WaitWinAvi.prg Смотреть короткий тест demo3.prg - показ работы с базой и в цикле. [/pre2]

Andrey: Как увеличить фонт в окне "Program Error" ? На большом экране мелко очень. Да и текст перескакивает на другую строчку.

Haz: Andrey пишет: На большом экране мелко очень. Неужели кто то из пользователей это читает? Правь обработчик ошибок и делай там что хочешь

Andrey: Haz пишет: Неужели кто то из пользователей это читает? Правь обработчик ошибок и делай там что хочешь Обработчик для юзеров давно сделан. У меня на экране такое для тестовых программ. Глаза сломаешь, пока прочитаешь это. Экран большой, окно ошибки слишком маленькое....

SergKis: Andrey пишет Глаза сломаешь, пока прочитаешь это. Смысл это читать в чем ? Окно topmost, т.е. посмотреть ошибку (допустим прочитал) не удобно в редакторе (он под этим окном) Смотри ErrorLog.htm сразу

Andrey: SergKis пишет: Смотри ErrorLog.htm сразу Да так и делаю... Но хотелось бы починить фонт в окне "Program Error" ?

gfilatov2002: Andrey пишет: Как увеличить фонт в окне "Program Error" ? Добавь при инициализации программы команду Set ShowRedAlert On

SergKis: Andrey пишет Но хотелось бы починить фонт в окне "Program Error" ? Чини https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messageboxindirecta она в основе MsgStop(...)

Andrey: gfilatov2002 пишет: Добавь при инициализации программы команду Set ShowRedAlert On Классно ! То что надо ! Только кнопка обрезана. Поправь пожалуйста для следующих версий.

gfilatov2002: Выложил финальную сборку 24.03 с последними исправлениями и дополнениями. Стандартная сборка Благодарю Сергея Киселева за помощь при подготовке этой сборки Желаю всем хорошего дня.

gfilatov2002: gfilatov2002 пишет: Выложил финальную сборку 24.03 Также вы можете скачать платную версию, для которой понадобится пароль, чтобы распаковать 7z архив, по адресу: Профессиональная версия Я подготовил две частные сборки для компилятора MinGW (32- и 64-бит): MinGW GNU C 13.2.0 (packaged on 2024-03-10). Components versions: -------------------- Harbour MiniGUI Extended Edition 24.03 (Release) Harbour 3.2.0dev (r2403071241) Harbour Make (hbmk2) 3.2.0dev (r2024-03-07 12:41) ------------------------------------------------- Эти сборки содержат обновленную версию библиотеки SQLRDD и рабочий пример доступа к базам MySQL. Они доступны для всех, кто поддерживает этот проект материально.

SergKis: gfilatov2002 Небольшая правка (для типа "D" тащится "чужой" cPicture)[pre2] METHOD LoadFields( lEditable, aColSel, cAlsSel, aNameSel, aHeadSel ) CLASS TSBrowse ... cType := aStru[ nE, 2 ] IF ( nType := AScan( aAdsType, {| e | e[ 1 ] == cType } ) ) > 0 cType := aAdsType[ nType, 2 ] ENDIF cPicture := NIL IF cType == "C" cPicture := "@K " + Replicate( 'X', aStru[ nE, 3 ] ) ... [/pre2]

gfilatov2002: SergKis пишет: Небольшая правка ОК Благодарю за помощь

Andrey: Григорий, а в новой версии что-то нет примеров Menu_3 и Menu_4 и Alert_demo ?

Andrey: Функция AlertInfo() Если строка большая, то окно по ширине от 0 до конца экрана ! Некрасиво очень Можно задать ограничения по ширине ? Хотя бы 0.75 ширины экрана. Везде вставлять код через bInit удовольствия мало...

gfilatov2002: Добавил реальное использование многопоточности в утилиту сборки проектов hbmk2. По умолчанию количество потоков присваивается равным количеству процессоров в системе. На первый взгляд, это ускоряет компиляцию проектов за счет многопоточности. Если у вас есть мысли по этому поводу, то я с удовольствием прочту ваши комментарии.

SergKis: gfilatov2002 пишет На первый взгляд, это ускоряет компиляцию проектов за счет многопоточности. По мне, многопоточность сборки не главный критерий hbmk2, она сама как то подрабатывает (сборка не стабильна), что приходится делать в bat[pre2] @echo off SET P=demo2 if exist _MsgLog.txt del _MsgLog.txt > nul if exist ErrorLog.htm del ErrorLog.htm > nul if exist .\obj\%P%.res del .\obj\%P%.res > nul if exist .\obj\%P%.obj del .\obj\%P%.obj > nul call ..\..\..\batch\hbmk2.bat %* %P%.hbp [/pre2] Ускорение сборок происходит, опять же по мне, с использованием lib, т.е. проект делим на части (модули) вынося весь функционал в prg без function Main(), так и отлаживать проще. hbmk2 создает подкаталог OBJ с файлами *.obj. Завершив отладку, удаляем obj, содержащий Function Main() из остальных создаем lib и в дальнейшем исп. ее в других частях проекта. hbmk2 отслеживает измененные prg и создает obj только для них.

Andrey: gfilatov2002 пишет: На первый взгляд, это ускоряет компиляцию проектов за счет многопоточности. А насколько ускоряет ? Как можно у себя проверить ?

PSP: gfilatov2002 пишет: Если у вас есть мысли по этому поводу Потоки должны работать таким образом, чтобы нагрузка была распределена равномерно. Чтобы не было потоков, которые закончили работу, но вынуждены ожидать завершения других потоков. Это может только ухудшить ситуацию. Как заранее предугадать - не знаю))

gfilatov2002: PSP пишет: Потоки должны работать таким образом, чтобы нагрузка была распределена равномерно. Благодарю за ваши отклики. Я только восстановил режим многопоточности в утилите hbmk2, который был в ней отключен по причине несовместимости с различными Си-компиляторами. Поскольку меня интересовала многопоточность только для компилятора BCC, я решил проверить эту возможность только для него. Судя по максимальной загрузке всех ядер процессора, этот режим сейчас рабочий. Если используется один поток, то загрузка ядер составляет около 30% для каждого ядра. Andrey пишет: Как можно у себя проверить ? Модифицированная утилита и ее исходники будут включены в следующую профессиональную сборку.

gfilatov2002: Выложил Borland/Embarcadero C++ 7.7 (32-bit) по адресу: Скачать Ваши комментарии приветствуются...

Dima: gfilatov2002 пишет: Ваши комментарии приветствуются Brc32.exe от древней версии и не 7.7

gfilatov2002: Dima пишет: Brc32.exe от древней версии Да, верно. Этот компилятор ресурсов не изменялся очень давно. Если есть в наличие более свежая версия, то файл - в студию...

gfilatov2002: Опубликована финальная сборка 24.04 с последними исправлениями и дополнениями. Стандартная сборка Благодарю Сергея Киселева за помощь при подготовке этой сборки Желаю всем хорошего дня.



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