Форум » 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: gfilatov2002 пишет: Инсталляторы для других Си-компиляторов обновлю позже Выложил исталляторы сборки 16.10 для остальных Си-компиляторов (прямые ссылки есть на сайте библиотеки).

Andrey: Привет всем. На новой версии перестала работать команда: DEFINE BKGBRUSH newBrush PATTERN IN Form_9 BITMAP MyPASS48 Выдаёт ошибку: Tbrws_Test.prg(219) Error E0030 Syntax error "syntax error at 'PICTURE'" При сборке примера SAMPLES\Advanced\TsBrowse и SAMPLES\Applications\SysInfo тоже выдаёт ошибку: TestXls.prg(36) Error E0030 Syntax error "syntax error at 'BITMAP'" и SysInfo.prg(229) Error E0030 Syntax error "syntax error at 'BITMAP'" Это видел: * Changed: DEFINE BKGBRUSH command supports a reduced format now, i.e. - <DEFINE | CREATE> BKBRUSH <brush> [ STYLE ] PATTERN ; IN [ FORM | WINDOW ] <parent> PICTURE <image> - ADD BKBRUSH <brush> [ STYLE ] PATTERN ; TO [ FORM | WINDOW ] <parent> PICTURE <image> Замена на PICTURE: DEFINE BKGBRUSH Brush_1 PATTERN IN Form_1 PICTURE Skin\background.bmp ошибку не убирает...

gfilatov2002: Andrey пишет: На новой версии перестала работать команда Эта команда уже работает в исправленной сборке 16.10 Надо просто еще раз скачать и установить эту сборку заново...

Andrey: Да, в исправленной версии ошибка ушла ! Спасибо ! Но теперь потерялась функция: //DEFINE BKGBRUSH newBrush PATTERN IN &cFormName PICTURE cResFon // заливка фоном newBrush := SetWndBrush( cFormName, .F., 3, NIL, NIL, cResFon ) при сборке выдаёт: Error: Unresolved external '_HB_FUN_SETWNDBRUSH' referenced from W:\HB_PROJECT\....

gfilatov2002: Andrey пишет: Но теперь потерялась функция Она была переименована Петром в _SetWindowBKBrush() и является внутренней функцией. Т.е. прямое ее использование не рекомендуется, для этого есть соответствующая команда

Петр: Andrey пишет: Замена на PICTURE: DEFINE BKGBRUSH Brush_1 PATTERN IN Form_1 PICTURE Skin\background.bmp ошибку не убирает.. Ошибка в changelog Смотрите обновленный синтаксис в i_brush.ch [pre2]#xtranslate <dummy: CREATE,DEFINE> <dummy1: BKBRUSH,BKGBRUSH> <brush> ; [ STYLE ] <style: SOLID,HATCHED,PATTERN> ; [ [ HATCHSTYLE ] <hatch> ] ; [ <dummy3: BITMAP,IMAGE,PICTURE> <bitmap> ] ; [ COLOR <aColor> ] ; [ <nodelete: NODELETE> ] ; [ IN [ <dummy2: FORM,WINDOW> ] <window> ] ; =>[/pre2] и базовый пример SAMPLES\BASIC\WindowBackground\demo.prg SAMPLES\BASIC\WindowBackground_2\demo.prg тоже м.б. интересным

Andrey: gfilatov2002 пишет: Т.е. прямое ее использование не рекомендуется, для этого есть соответствующая команда Понял. Давно сделал, так и использовал в некоторых исходниках. Петр пишет: и базовый пример SAMPLES\BASIC\WindowBackground\demo.prg Поиск по DEFINE BKGBRUSH дал только 2 примера. А пример смотрел, там по другому уже. По синтаксису - понравилось лучше. Только в пример BASIC\WindowBackground_2\demo.prg нужно бы поставить кнопку смены заливки на лету !

Петр: Andrey пишет: Только в пример BASIC\WindowBackground_2\demo.prg нужно бы поставить кнопку смены заливки на лету ! Суть примера в применении классов CURSOR, BKBRUSH при создании окна (DEFINE WINDOW). Все остальное "рюшечки" - и кнопка, и таймер, и генератор псевдо-случайных чисел - все это, как правило, лишь отвлекает от сути. И да, писать качественные, содержательные примеры - это нужно уметь, у меня не всегда получается.

Andrey: Петр пишет: Все остальное "рюшечки" - и кнопка, и таймер, и генератор псевдо-случайных чисел - все это, как правило, лишь отвлекает от сути. Не всегда. Юзерам нравятся не унылые серые формы, а симпатичные. А кнопка смены заливки формы позволяет понять разработчику - как можно делать смену обоев на "лету" в окне. Я в своё время очень помучился с этим. Не помню уже чем и закончилось. И смена заливки тоже можно использовать для задачи - четко показывать юзеру смену задачи или меню. Петр пишет: И да, писать качественные, содержательные примеры - это нужно уметь, у меня не всегда получается. Классно получается ! Что интересно, всегда спросим !

Andrey: Теперь в новой версии при выходе из моей программы получаю ошибку: Error BASE/0 MiniGUI Err.: _ONDESTROYMENU Called from _ONDESTROYMENU(0) Called from RELEASEALLWINDOWS(2127) Called from _RELEASEWINDOW(2196) Called from DOMETHOD(4739) Called from MYEXIT(462) Called from (b)METRO_BUTTON(369) Строка 462: Form_Main.Release или выход из программы нужно делать всегда через - RELEASE WINDOW ALL ? Хотя поставил RELEASE WINDOW ALL - тоже выдаёт такую же ошибку. Откатился на 16.09 - ошибки нет.

Петр: Andrey пишет: Form_Main.Release Form_Main содержит меню или нет ? Andrey пишет: Called from RELEASEALLWINDOWS(2127) h_windows.prg замените сл. фрагмент [pre2] IF IsExtendedMenuStyleActive() _OnDestroyMenu ( GetMenu ( _HMG_MainHandle ) ) // Release OwnerDraw Main Menu ENDIF [/pre2] на [pre2] ... LOCAL hMenu ... hMenu := GetMenu ( _HMG_MainHandle ) IF IsExtendedMenuStyleActive() .AND. IsMenu( hMenu ) _OnDestroyMenu ( hMenu ) // Release OwnerDraw Main Menu ENDIF [/pre2] и, конечно, перекомпилируйте библиотеку

Петр: Andrey пишет: Откатился на 16.09 - ошибки нет. Видишь суслика? — Нет. — И я не вижу. А он есть!

gfilatov2002: Петр пишет: h_windows.prg замените сл. фрагмент Благодарю за помощь Добавил эту поправку в следующую сборку

Andrey: Петр пишет: Видишь суслика? — Нет. — И я не вижу. А он есть!

SergKis: gfilatov2002 Можно маленькую правку в TsBrowse[pre2] METHOD LoadFields( lEditable ) CLASS TSBrowse ... line: 7171 ElseIf cType == "D" cData := cValToChar( If( ! Empty( cData ), cData, Date() ) ) nSize := Int( GetTextWidth( 0, cData + " " , hFont ) ) + If( lEditable, 22, 0 ) ElseIf cType == "M" ... приходится постоянно править таким a := {}; AEval(oBrw:aColumns, {|oCol,nCol,val| val := Eval(oCol:bData), ; iif(Valtype(val)=="D", AAdd(a, nCol), ) }) i := Int( GetTextWidth( 0, " ", oBrw:hFont ) ) AEval(a, {|nCol| oBrw:aColumns[ nCol ]:nWidth += i } ) что бы дата и линии Tcb не наезжали друг на друга в колонке [/pre2]

Andrey: SergKis пишет: Можно маленькую правку в TsBrowse Поддерживаю. Меня тоже это раздражает.

Dima: Совсем не обязательно править сырец Делаю примерно так obrw:GetColumn("naim"):bPrevEdit := { |a, b, lLock| SetGetAdjustBrw(b,{2,0,-2,-3})...............

Andrey: Dima пишет: Совсем не обязательно править сырец Таблица по умолчанию должна быть правильной и красивой, без срезки колонок (как сейчас дата срезана) и т.д. Каждый раз не на исправляешься. Допилить всё можно, только времени своего жалко.

SergKis: Dima пишет Делаю примерно так obrw:GetColumn("naim"):bPrevEdit := { |a, b, lLock| SetGetAdjustBrw(b,{2,0,-2,-3})............... дело не в корректировке, на этапе отображения даты в колонки, правая цифра частично под линией

Dima: SergKis пишет: дело не в корректировке Точно. Сразу не сообразил



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