Форум » 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

Haz: SergKis пишет: Enter просто перемещает на след. строку в той же колонке. В целом удобно, без мыши проделать операции. Никогда не пользовался в данном виде. Стрелками проще UP/DOWN. Раз будет переменная, будет и выбор на любой вкус.

SergKis: Haz пишет Никогда не пользовался в данном виде. Стрелками проще UP/DOWN. Такой режим существовал и не стоит его трогать. Для переменной, возможен вариант[pre2] METHOD Edit( uVar, nCell, nKey, nKeyFlags, cPicture, bValid, nClrFore, ; ... If nKey != VK_RETURN .or. ( ! oCol:lCheckBoxNoReturn .or. !Empty(::lCheckBoxAllReturn) ) ... CLASS TSBrowse DATA lCheckBoxAllReturn INIT .F. [/pre2] .T. - включит для всех, остальные значения - работа от значения :lCheckBoxNoReturn в колонке

Haz: SergKis пишет: Такой режим существовал и не стоит его трогать. Да пусть живет Главное всегда должен быть выбор. И про него сейчас разговор. Мне больше две переменные нравятся в твоем последнем предложении.


Andrey: Перешёл на новую версию МиниГуи. Опять вылетает с ошибкой: Error MGERROR/0 Control: unrecognized property 'BACKGROUNDCOLOR'. Program terminated Called from MSGMINIGUIERROR(99) in module: h_error.prg Called from SETPROPERTY(4126) in module: h_controlmisc.prg Called from MYINITMENUBUTTON6RESAY(1037) in module: form_calc.prg Строка 1037: SetProperty( cForm, cObj, "BackgroundColor", aBackgroundColor ) Сделал как советовал Сергей: #translate BACKGROUNDCOLOR => BACKCOLOR Теперь перестало собираться вообще, ошибка при сборке: form_calc.prg(170) Error E0030 Syntax error "syntax error at '@'" form_calc.prg(183) Error E0030 Syntax error "syntax error at '@'" form_calc.prg(553) Error E0030 Syntax error "syntax error at '@'" form_calc.prg(687) Error E0030 Syntax error "syntax error at '@'" form_calc.prg(732) Error E0030 Syntax error "syntax error at '@'" form_calc.prg(882) Error E0030 Syntax error "syntax error at '@'" form_calc.prg(1116) Error E0030 Syntax error "syntax error at '@'" 7 errors Т.е. выдаёт ошибку на работающем коде[pre2] @ 230, 50 IMAGE Image_Warning PARENT Form_Calc ; PICTURE 'Warning128' WIDTH 128 HEIGHT 128 ; STRETCH TRANSPARENT BACKGROUNDCOLOR aBackColor INVISIBLE[/pre2] Григорий, верни назад как ранее была обработка, как советовал Сергей ! [pre2]h_controlmisc.prg line 4025 CASE Arg3 == "BACKCOLOR" .OR. Arg3 == "GRADIENTOVER" .OR. Arg3 == "BACKGROUNDCOLOR" добавь и пересобери libу [/pre2] Вот это помогло !

Andrey: В новой версии опять часто вылетает на такой ошибке: Error BASE/1132 Переполнение массива: Неверное количество аргументов Called from FILLDLG(341) in module: h_alert.prg Called from (b)HMG_ALERT(161) in module: h_alert.prg Called from DO_WINDOWEVENTPROCEDURE(82) in module: h_objmisc.prg Called from _ACTIVATEWINDOW(1314) in module: h_windows.prg Called from HMG_ALERT(161) in module: h_alert.prg Если задана случайно или осталось после предыдущего использования: _HMG_ModalDialogReturn := 2 и вызвать HMG_ALERT() только с одной кнопкой, то прога вылетает. Можно туда (до строки 341) вставить проверку, чтобы не вылетало ?

gfilatov2002: Andrey пишет: Можно туда (до строки 341) вставить проверку Поправил, конечно Благодарю за сообщение

gfilatov2002: Обновил сборку 19.04 (Update 1) с учетом последних исправлений (в TsBrowse и др,) Что нового: * Updated: Added the sounds to the new Alert* family functions to be similar to the system dialogs in Windows 7. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Basic\MAINDEMO_(SYNTAX_I)) * Updated: Adaptation FiveWin Class TSBrowse 9.0 in HMG: - added processing of the new variable :lPostEditGo and correction for the codeblock :bEditLog in the method PostEdit(); - improved handling of <Enter> key in a celled Checkbox item. (see demo in folder \samples\Advanced\Tsb_BitMaps) Suggested and contributed by Sergej Kiselev. * Updated: RDDLeto client library by Rolf 'elch' Beckmann. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Advanced\LetoDBf) * Updated: HbSQLite3 library: - update for using SQLITE3 version 3.29.0dev (from 3.28.0). Contributed by Grigory Filatov <gfilatov@inbox.ru> * New: 'Read color by coordinates' sample. Contributed by Verchenko Andrey <verchenkoag@gmail.com> (see in folder \samples\Basic\GetColorRowCol) * Updated: 'HMG Grid Demo' sample. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo.prg in folder \samples\Basic\Grid_Test) * Updated: 'MiniGUI DataBase Utility' sample: - added the closing of opened table; - correction for modification of a structure of a table. Contributed by Pierpaolo Martinello <pier.martinello[at]alice.it> (see in folder \Utils\mgDBU)

Andrey: gfilatov2002 пишет: Обновил сборку 19.04 (Update 1) с учетом последних исправлений (в TsBrowse и др,) Григорий, про это не забудь пожалуйста:[pre2] h_controlmisc.prg line 4025 CASE Arg3 == "BACKCOLOR" .OR. Arg3 == "GRADIENTOVER" .OR. Arg3 == "BACKGROUNDCOLOR" [/pre2]

gfilatov2002: Andrey пишет: Arg3 == "BACKGROUNDCOLOR" Сделал Благодарю за напоминание

SergKis: gfilatov2002 Надо убрать в h_checklabel.prg, похоже пересеклись по адресам [pre2] /* IF _HMG_lOOPEnabled Eval ( _HMG_bOnControlInit, k, mVar ) #ifdef _OBJECT_ ow := _WindowObj ( ParentFormHandle ) oc := _ControlObj( ControlHandle ) #endif ENDIF */ Do_ControlEventProcedure ( bInit, k, ow, oc ) RETURN Nil [/pre2]

SergKis: PS это видно на примере CheckLabel_2 SET OOP ON пропадают картинки

gfilatov2002: SergKis пишет: Надо убрать в h_checklabel.prg Сделал ремарку, конечно Благодарю за помощь

SergKis: gfilatov2002 Давайте сделаем [pre2] METHOD Destroy() CLASS TSBrowse ... вместо If ::aSortBmp != Nil DeleteObject ( ::aSortBmp[ 1 ] ) DeleteObject ( ::aSortBmp[ 2 ] ) EndIf If ::aCheck != Nil DeleteObject ( ::aCheck[ 1 ] ) DeleteObject ( ::aCheck[ 2 ] ) EndIf так If Valtype( ::aSortBmp ) == "A" .and. ! Empty( ::aSortBmp ) AEval( ::aSortBmp, {|hBmp| If( Empty( hBmp ), , DeleteObject( hBmp ) ) } ) EndIf If Valtype( ::aCheck ) == "A" .and. ! Empty( ::aCheck ) AEval( ::aCheck, {|hBmp| If( Empty( hBmp ), , DeleteObject( hBmp ) ) } ) EndIf Картинок можно больше складывать и на ходу менять по ситуевинам разным [/pre2]

gfilatov2002: SergKis пишет: Давайте сделаем Сделал, конечно Благодарю за помощь

SergKis: gfilatov2002 Сейчас в тсб :Destroy() отрабатывают не на все переменные DeleteObject(), загруженных по LoadImage() и их надо отрабатывать собственными обработчиками или складывать картинки в public переменные Предлагаю добавить в тсб переменную и такой вид :Destroy()[pre2] DATA lDestroyAll AS LOGICAL INIT .F. // flag to destroy all bitmap created LoadImage(...) ... METHOD Destroy() CLASS TSBrowse Local oCol Default ::lDestroy := .F. If ::uBmpSel != Nil .and. ::lDestroy DeleteObject ( ::uBmpSel ) EndIf If ::hBrush != Nil // Alen Uzelac 13.09.2012 DeleteObject ( ::hBrush ) EndIf If ::oCursor != Nil // GF 29.02.2016 ::oCursor:End() EndIf If ::hBmpCursor != Nil DeleteObject ( ::hBmpCursor ) EndIf If Valtype( ::aSortBmp ) == "A" .and. ! Empty( ::aSortBmp ) AEval( ::aSortBmp, {|hBmp| If( Empty( hBmp ), , DeleteObject( hBmp ) ) } ) EndIf If Valtype( ::aCheck ) == "A" .and. ! Empty( ::aCheck ) AEval( ::aCheck, {|hBmp| If( Empty( hBmp ), , DeleteObject( hBmp ) ) } ) EndIf If Len( ::aColumns ) > 0 FOR EACH oCol IN ::aColumns If Valtype( oCol:aCheck ) == "A" AEval( oCol:aCheck, {|hBmp| If( Empty( hBmp ), , DeleteObject( hBmp ) ) } ) EndIf If Valtype( oCol:aBitMaps ) == "A" AEval( oCol:aBitMaps, {|hBmp| If( Empty( hBmp ), , DeleteObject( hBmp ) ) } ) EndIf If ! ::lDestroyAll LOOP EndIf If ! Empty( oCol:uBmpCell ) .and. ! HB_ISBLOCK( oCol:uBmpCell ) DeleteObject( oCol:uBmpCell ) EndIf If ! Empty( oCol:uBmpHead ) .and. ! HB_ISBLOCK( oCol:uBmpHead ) DeleteObject( oCol:uBmpHead ) EndIf If ! Empty( oCol:uBmpSpcHd ) .and. ! HB_ISBLOCK( oCol:uBmpSpcHd ) DeleteObject( oCol:uBmpSpcHd ) EndIf If ! Empty( oCol:uBmpFoot ) .and. ! HB_ISBLOCK( oCol:uBmpFoot ) DeleteObject( oCol:uBmpFoot ) EndIf Next EndIf If ::lDestroyAll If Valtype( ::aSuperHead ) == "A" .and. ! Empty( ::aSuperHead ) AEval( ::aSuperHead, {|a| If( Empty(a[8]) .or. HB_ISBLOCK(a[8]), , DeleteObject( a[8] ) ) } ) EndIf EndIf If Valtype( ::aBitMaps ) == "A" .and. ! Empty( ::aBitMaps ) AEval( ::aBitMaps, {|hBmp| If( Empty( hBmp ), , DeleteObject( hBmp ) ) } ) EndIf #ifndef _TSBFILTER7_ If ::lFilterMode ::lFilterMode := .F. If Select( ::cAlias ) != 0 ::SetFilter() EndIf EndIf #endif ::hWnd := 0 Return 0 [/pre2]

gfilatov2002: SergKis пишет: Предлагаю добавить в тсб переменную и такой вид :Destroy() Добавил предложенные изменения (очистка использованных ресурсов - это всегда важно) Благодарю за помощь

gfilatov2002: Обновил сборку 19.04 (Update 2) с учетом последних исправлений и пожеланий (в TsBrowse и др,) * Fixed: The missed 'Make New Folder' button in the function GetFolder() at a specified initial path (introduced in the build 2.5.1). Problem was reported by Jayadev <jayadev65/at/yahoo.com>. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Basic\GetFolder) * Enhanced: The Image control supports now a changing of the BACKGROUNDCOLOR property at runtime. You can set this property with: - function syntax: SetProperty ( Form, Image, 'BackGroundColor', aColor ) - pseudo-OOP syntax: FormName.ImageName.BackGroundColor := aRGBColor | nRGBColor FormName.TabName(nPage).ImageName.BackGroundColor := aColor Requested by Verchenko Andrey <verchenkoag@gmail.com>. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Basic\GetColorRowCol) * Updated: Adaptation FiveWin Class TSBrowse 9.0 in HMG: - minor modification in the method Destroy(). Contributed by Sergej Kiselev. * New: 'Order Service System' sample: using MySQL through the TMySql class. Test passed with MySQL version 5.1.44 at Windows 7. Don't miss this very interesting example! Contributed by Marcelo Neves <marcelo.souza.das.neves@gmail.com> (see in folder \samples\Applications\OrderService) * New: 'Little wizard for create the controls' utility. Based upon a contribution of HMG user Dragan Cizmarevic. Adapted for Minigui Extended by Grigory Filatov <gfilatov@inbox.ru> (see in folder \Utils\hmg_wizard) * Updated: 'Data-Bound Controls' sample: - redesigned the input window for a new look. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo2.prg in folder \samples\Basic\DATA_BOUND) * Updated: 'Using <Tab> key for navigation into a celled Grid' sample. Based upon a contribution of HMG user KDJ. Revised by Grigory Filatov <gfilatov@inbox.ru> (see demo2.prg in folder \samples\Basic\Grid_Test)

Andrey: Всем привет. Появилась ошибка в давно работающем модуле печати. Т.е. в новой версии МиниГуи появилась ошибка. Из таблицы вызываю форму печати через &cRun(cMenu, cForma, cAls2,..), там доп.окно MODAL Form_Dolg на которой в цикле вывод 10 значений: [pre2] cObj := "GetBox_Dolg" + HB_NtoS(nI) @ nRowGet, nColGet GETBOX &cObj VALUE aSumma[nI] ; PICTURE "@Z 99999.99" ; ..... ON CHANGE { || DolgGetBoxChange(aSumma) } SetProperty( ThisWindow.Name, cObj, "Cargo", nI )[/pre2] Оставляю курсор на форме допустим на 3-ем GetBox_Dolg3 (в дальнейшем будет ошибка по нему) и делаю печать. Все отлично, форма закрывается, ошибок нет. При возврате в главную таблицу - появляется ОШИБКА: Error MGERROR/0 Control: GetBox_Dolg3 Of Form_Dolg Not defined. Program terminated. --------------------------------- Stack Trace --------------------------------- Called from MSGMINIGUIERROR(99) in module: h_error.prg Called from GETPROPERTY(4585) in module: h_controlmisc.prg Called from (b)BUTTON_UPMENUTABLE(2271) in module: Tbrw_table.prg Called from (b)METRO3BUTTON(51) in module: Metro3button.prg Called from _DOCONTROLEVENTPROCEDURE(1865) in module: h_windows.prg Called from EVENTS(1825) in module: h_events.prg Called from DOMESSAGELOOP(0) Called from _ACTIVATEWINDOW(1499) in module: h_windows.prg Called from DOMETHOD(5155) in module: h_controlmisc.prg Called from FORM_MYTABLE(246) in module: Tbrw_table.prg Called from TBRWDOGOVOR(15) in module: Tbrw_1Run.prg Called from (b)MAIN(643) in module: 10main.prg Called from _DOCONTROLEVENTPROCEDURE(1865) in module: h_windows.prg Called from EVENTS(1825) in module: h_events.prg Called from DOMESSAGELOOP(0) Called from _ACTIVATEWINDOW(1499) in module: h_windows.prg Called from MAIN(688) in module: 10main.prg Почему ? Форма давно убита, ошибок по ней не было... Если КУРСОР будет стоять в GetBox_Dolg8, то ошибка будет: Error MGERROR/0 Control: GetBox_Dolg8 Of Form_Dolg Not defined. Program terminated. Т.е. сохраняется АКТИВНОЕ местоположение КУРСОРА в GetBox. Ошибка оказывается появилась давно. В версии 18.11 ошибка тоже появляется. Ниже протестировать пока не удалось. Очень срочно нужна помощь.... Что делать мне ?

SergKis: Andrey Стоит более жесткая проверка в Set\GetProperty[pre2] IF .NOT. _IsControlDefined ( Arg2 , Arg1 ) MsgMiniGuiError ( "Control: " + Arg2 + " Of " + Arg1 + " Not defined." ) ENDIF [/pre2] Понял из твоего сообщения, что Form_Dolg закрылась при возвращении на гл. таблицу, т.е. окна нет уже. Возможно, в button_upmenutable есть обращение к контролу, которое раньше игнорировалось.

Andrey: SergKis пишет: Понял из твоего сообщения, что Form_Dolg закрылась при возвращении на гл. таблицу, т.е. окна нет уже. Возможно, в button_upmenutable есть обращение к контролу, которое раньше игнорировалось. Да ! Больше я НИГДЕ не обращаюсь к GetBox_Dolg3/4/5/6... Это единственная форма с такими переменными. Если КУРСОР будет стоять в GetBox_Dolg8, то ошибка будет: Error MGERROR/0 Control: GetBox_Dolg8 Of Form_Dolg Not defined. Program terminated. Как убрать ошибку ?



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