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

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

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

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

Петр: Я рад за всех. Но Григорию хотелось бы посоветовать, поскольку в сборку MiniGUI не включается ChangeLog Harbour, хотя бы в анонсе указывать, к примеру, такие моменты * modified DB_DBFLOCK_HB64 locking scheme - extended RLOCK/FLOCK area from 2^31-2 to 2^32-2 it effectively changes maximum number of records in this locking scheme to 4'294'967'294 - use COMIX like hyper locking mode it should increase performance Warning: INCOMPATIBLE! all applications using DB_DBFLOCK_HB64 locking mode should be updated - it is not safe to concurrently access the same files using programs compiled with older Harbour versions and current one. И еще можно locks.txt в доки добавить

gfilatov2002: Петр пишет: Григорию хотелось бы посоветовать, поскольку в сборку MiniGUI не включается ChangeLog Harbour Петр, Вы абсолютно правы, но это выходит за рамки поддержки графической библиотеки. К тому же, эти изменения в Харборе относятся к нетипичному способу блокировки при использовании драйвера DBFNSX. Это демонстрирует следующий пример: [pre2]#include "dbinfo.ch" PROCEDURE Main() rddSetDefault( "DBFNSX" ) hb_rddInfo( RDDI_LOCKSCHEME, DB_DBFLOCK_HB64, "DBFNSX" ) dbCreate( "test.dbf", { { "T1", "C", 10, 0 } } ) USE test EXCLUSIVE INDEX ON FIELD->T1 TAG test1 TO test USE test SHARED browse() RETURN[/pre2] Я надеюсь, что те, кто использует конструкции вида hb_rddInfo( RDDI_LOCKSCHEME, DB_DBFLOCK_HB64, "DBFNSX" ) внимательно следят за обновлениями Харбора

Петр: gfilatov2002 пишет: это выходит за рамки поддержки графической библиотеки. Ок внимательно следят за обновлениями Харбора Я тоже надеюсь Для "невнимательных" * harbour/src/vm/classes.c * disabled inheriting of class variables values from ancestor classes when new class is dynamically created. Warning: INCOMPATIBLE! This modification is not backward compatible and can interact with some existing code which has to be updated for new behavior. Я знаю Ваше отношение к ООП


gfilatov2002: Обновил полную сборку Minigui IDE на сайте http://minigui.mylivepage.ru по адресу: http://minigui.mylivepage.ru/file/?fileid=8699 а также, как обычно, на сервере http://hmgextended.com в папке HMGS-IDE. P.S. Продолжаем исправлять ошибки, внесенные в эту новую версию

a_sidorov: Делаю задачу на MiniGui С какими проблемами столкнулся: 1. Мышка реагирует не на объект, расположенный сверху другого объекта, а на тот объект, который раньше определен, независимо от его вида на экране. Пришлось переставлять определения объектов. 2. Объекты, расположенные на окне ТАВ, на самом деле прорисовываются и вне окна TAB (они действительно определяются как объекты окна Window, TAB только определяет их видимость и здесь мышь работает корректно, определяя только видимые объекты на закладке). 3. При работе с цветами желательно сразу прописать какой либо цвет при определении объекта, и если вычисляемый цвет не работает, нужно проверить, было ли определение цвета при определении объекта. В основном все проблемы решил, в том числе, сделал динамическое изменение всех размеров объектов в окне задачи при изменения размеров окна, изменение всех цветов по темам, градиентную прорисовку кнопок, выделение рисунков и подписей при подведении мыши. Теперь о проблеме, в которую уперся. Необходимо было нарисовать закладки TAB в другом месте и красиво. Попробовал на Buttоnex с градиентной заливкой (помогли примеры)- получается нормально, потом начал рисовать при помощи Label с дорисовкой графикой DRAW LINE IN WINDOW, DRAW ARC IN WINDOW. Оказалось, что графика в Windows XP (SP3) работает некорректно. Это можно видеть на примерах, приведенных в дистрибутиве (наример, Basic/BaseGraph и других тоже). Если запустить пример, затем запустить любую новую задачу, которая закроет окно примера, затем сбросить окно новой задачи на панель задач, то на примере останется все кроме графики – то есть практически пустое окно. На Windows-7 все работает корректно, окно задачи восстанавливается вместе с графикой. Проблема из той же серии – при сбросе своей задачи на панель задач и ее восстановлении на экране графика не восстанавливается (на XP). В приведенных примерах прорисовка графики прописывается в методе ON INIT (либо возможность закрывается), у меня не получилось. Попробовал ON RESTORE, непонятно вообще когда метод вызывается. Пока рабочий вариант ON MINIMIZE {||fl_minimize:=70}; ON PAINT {||if(fl_minimize>0,(form_graph_tab(),fl_minimize--),)}; При прорисовке большого числа линий (>30) этот метод тоже начинает глючить. Может быть есть решение проблемы рисования графики? Нужно нарисовать красивые кнопки с кривыми краями и тенями. Может быть рисовать (заливать) внутри окна Label? Буду искать пример, если кто-то поможет, буду рад.

Vlad04: сделал динамическое изменение всех размеров объектов в окне задачи при изменения размеров окна, Использовал прием из примеров или что-то свое?

a_sidorov: Пересчет всех размеров окон производится считыванием из свойств окна задачи, умножением размеров других окон на множитель или изменение и запись в свойства окон. Типа (в функции пересчета размеров): //из свойств основного окна aWindowsYX[3]:= Form_1.HEIGHT //либо передвигаем окна form_1.img_oper.row:=aWindowsYX[3]-93 //либо масштабируем aadd(ascale,(aWindowsYX[3])/(aoldWindowsYX[3])) -- string_prg2:= round(oldstring_prg2*aScale,0) -- form_1.Main_LBL_txt.HEIGHT:=string_prg2[3]

Andrey: a_sidorov пишет: Оказалось, что графика в Windows XP (SP3) работает некорректно. Это можно видеть на примерах, приведенных в дистрибутиве (наример, Basic/BaseGraph и других тоже). Если запустить пример, затем запустить любую новую задачу, которая закроет окно примера, затем сбросить окно новой задачи на панель задач, то на примере останется все кроме графики – то есть практически пустое окно. На Windows-7 все работает корректно, окно задачи восстанавливается вместе с графикой. Проблема из той же серии – при сбросе своей задачи на панель задач и ее восстановлении на экране графика не восстанавливается (на XP). В приведенных примерах прорисовка графики прописывается в методе ON INIT (либо возможность закрывается), у меня не получилось. Попробовал ON RESTORE, непонятно вообще когда метод вызывается. Пока рабочий вариант ON MINIMIZE {||fl_minimize:=70}; ON PAINT {||if(fl_minimize>0,(form_graph_tab(),fl_minimize--),)}; При прорисовке большого числа линий (>30) этот метод тоже начинает глючить. Может быть есть решение проблемы рисования графики? Нужно нарисовать красивые кнопки с кривыми краями и тенями. Может быть рисовать (заливать) внутри окна Label? Буду искать пример, если кто-то поможет, буду рад. Я тоже сталкивался с такой проблемой. Думал, что я не понимаю как НУЖНО делать и забросил.... Буду очень рад услышать как решить такие проблемы.

Петр: Andrey пишет: Буду очень рад услышать как решить такие проблемы Перефразируя Е.Гайдара можно сказать - есть два пути для выхода из кризиса. Реалистический, если прилетят инопланетяне, и все за нас сделают. И фантастический, если мы все сделаем сами. Реалистический путь - переход на Win7

Andrey: Петр пишет: Реалистический путь - переход на Win7 Тогда дело труба.... У меня много юзеров на ХР сидят....

Dr. Oldwarez: Andrey пишет: Тогда дело труба.... У меня много юзеров на ХР сидят.... Я тоже сижу на XP и совсем не хочу пересаживаться на семёрку. Мой шеф на ХР работает, а семёрки у него нет. Я тоже семёрки не хочу - большинство моих ноутов с ней просто несовместимы. Например субноутбук Sony Vaio PCG SR1K. А XP там отлично работает! Ещё одна причина моей нелюбви к XP и Висте (которая всегда висла, виснет и будет виснуть) - то, что там постоянно вылазят совершенно идиотские вопросы, вроде: "являетесь ли вы администратором" если надо, к примеру, скопировать файл в другую директорию. Ага, щазз я им всё скажу! Единственный случай, когда применение семёрки оправдано - если оперативная память превышает 3 Гб.

krutoff: Не работает множественный ToolTip. Видно в примере MAINDEMO_(SYNTAX_I), в BTNTEXTBOX Text_3 ToolTip вообще не показывает. Это конечно вроде и мелочь, но при наличии двух кнопок и ввода в GetBox или BTNTEXTBOX бывает надо указать подсказки по всем этим кнопкам...

gfilatov2002: krutoff пишет: при наличии двух кнопок и ввода в GetBox или BTNTEXTBOX бывает надо указать подсказки по всем этим кнопкам... Да, Вы правы В следующей сборке будет доступен переработанный элемент управления BTNTEXTBOX (и GetBOX также) с поддержкой множественного ToolTip. Кстати, код примера MAINDEMO_(SYNTAX_I), включенный в текущую сборку, был обновлен именно для демонстрации этой возможности

a_sidorov: Проблема графики в XP (при наложении окон и восстановления окна задачи) решается, если взять прорисовку графики из примера SAMPLES\Advanced\Curves, и в DrawCurves() вместо рисования кривой поставить вызов своей функции перерисовки графики.

a_sidorov: Добил графику в XP (на 98 тоже работает): 1. Для того, чтобы не стиралась графика при сбросе и перекрытии окон, сделал как в SAMPLES\Advanced\Curves 2. Чтобы иногда не стирались тексты в других окнах (Label), ERASE WINODWS использую только при смене графики if !l_old_page==l_page ERASE WINDOW Form_1 CLEAN MEMORY l_old_page:=l_page endif 3. Поставил обращение к функции перерисовки графики либо к RefreshPaint() после некоторых операций (только если не срабатывала), например после CENTER WINDOW 4. Сделал в функции рисования линии или кривой локальную копию переменной с массивом цветов перед обращением к рисованию кривой либо линии (иногда был эффект исчезновения цвета). При рисовании линий и теней использовал последовательную многократную (5 проходов с градацией цвета) обрисовку LABEL при помощи DRAW ARC IN WINDOW и DRAW LINE IN WINDOW. Общее количество линий больше 70. Работает нормально.

gfilatov2002: АНОНС * АНОНС * АНОНС * АНОНС * АНОНС Завершена подготовка к опубликованию новой версии 2.0.6, которая выйдет на следующей неделе. Кратко, что нового: - добавлены обещанные ранее улучшения: 1) переработан код элемента управления BtnTextBox - добавлена поддержка тем Винды и смена картинки на кнопке(ах); 2) переработан код элемента управления GetBox в части поддержки встроенной в него кнопки; - обновлена сборка Харбора версии 3.1.0dev, HMGS-IDE, библиотеки HbPrint, PropGrid и TsBrowse; - добавлены новые и обновлены старые примеры (как обычно ) Спасибо за внимание!

gfilatov2002: Новый релиз библиотеки для компилятора BCC выложил, как и обещал, по адресу: http://minigui.mylivepage.ru/file/?fileid=8700 а также, как обычно, на сервере http://hmgextended.com по адресу: http://hmgextended.com/files/CONTRIB/hmg-2.0.6-setup.zip Также доступна эта сборка и для компилятора MinGW по адресу: http://hmgextended.com/files/CONTRIB/hmg206-mingw.zip Спасибо за внимание!

sashaBG: Выполните етот код : #include "minigui.ch" Function Main set navigation extended DEFINE WINDOW Form_1 ; AT 0,0 ; WIDTH 500 HEIGHT 300 ; TITLE 'Harbour MiniGUI Demo ' ; MAIN DEFINE LABEL LABEL_5 COL 10 ROW 90 VALUE "Press F1 or Click on buttons ( FOCUSEDCONTROL Not working !!!)" AUTOSIZE .T. FONTNAME "Arial" FONTSIZE 10 VISIBLE .T. END LABEL DEFINE BTNTEXTBOX BTNTEXTBOX_DOST COL 90 ROW 115 WIDTH 140 HEIGHT 20 TOOLTIP "" ACTION do_help() BUTTONWIDTH 20 FONTNAME "tahoma" FONTSIZE 10 FONTCOLOR {0,0,0} MAXLENGTH 14 VISIBLE .T. TABSTOP .T. END BTNTEXTBOX DEFINE BTNTEXTBOX BTNTEXTBOX_SKA41 COL 90 ROW 135 WIDTH 140 HEIGHT 20 TOOLTIP "" ACTION do_help() BUTTONWIDTH 20 FONTNAME "tahoma" FONTSIZE 10 FONTCOLOR {0,0,0} MAXLENGTH 5 VISIBLE .T. TABSTOP .T. END BTNTEXTBOX END WINDOW Form_1.Center ON KEY F1 OF Form_1 ACTION DO_HELP() Form_1.Activate Return Nil *-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._. STATIC FUNCTION DO_HELP( ) LOCAL cControl := FORM_1.FOCUSEDCONTROL msginfo(cControl) return nil Когда нажимаем на кнопку FOCUSEDCONTROL возвращает пустой стринг ! Раньше работало нормально .

alex_II: Переход на релиз 2.0.6 прошел нормально Отличная работа Григорий Большое спасибо

gfilatov2002: sashaBG пишет: Когда нажимаем на кнопку FOCUSEDCONTROL возвращает пустой стринг Благодарю за сообщение об ошибке! Вы можете скачать для проверки исправленную версию библиотеки по адресу архив Примечание. Эта ссылка будет доступна в течение 10 дней



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