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

SergKis: gfilatov2002 пишет Речь о том Спасибо за пояснение.

Avf: После перехода с версии Minigui 19.02 на 19.03 ( и более поздние ) при выполнении * Form_1.Browse_1.Value := RecNo() DoMethod('Form_1','Browse_1','Value',RecNo()) (например,в Sample/Basic/Browse_1) если Arg3 = "Value" ( и наверное не только ) выполнение идет на OTHERWISE MsgMiniGuiError( "Control: unrecognized method '" + Arg3 + "'." ) в h_controlmisc.prg. Зачем это было сделано и что надо исправить в исходниках ? Спасибо за внимание.

Andrey: Avf пишет: DoMethod('Form_1','Browse_1','Value',RecNo()) Может я и не прав, но DoMethod() нельзя так использовать. Здесь нужно использовать SetProperty()


Avf: Почему нельзя ? До марта 2019 было можно и все работало. Кроме того, в другой нотации ( Form_1.Browse_1.Value := RecNo() ) не всегда удобно использовать вместо имен окна/бровса переменные.

gfilatov2002: Avf пишет: Зачем это было сделано Для быстрого обнаружения ошибок или опечаток при неправильном применении свойств и методов. Andrey пишет: DoMethod() нельзя так использовать Да, верно. Потому что VALUE - это свойство, а не метод у элемента управления

Avf: Спасибо за разъяснение.

SergKis: Avf пишет Кроме того, в другой нотации ( Form_1.Browse_1.Value := RecNo() ) не всегда удобно использовать вместо имен окна/бровса переменные. Для бровсе и др. контролов будет работать через переменные cNam := 'Browse_1' This.&(cNam).Value := ... // др. свойства\методы тоже будут работать Form_1.&(cNam).Value := ... Если использовать SET OOP ON и события, то в них будет среда This всегда и доступны команды This.&(cNam).Value := ... и т.д.

Avf: Именно использование макроподстановки и является неудобством. Если использовать SET OOP ON и события, то в них будет среда This всегда Спасибо.

SergKis: Avf пишет Именно использование макроподстановки и является неудобством Смотря когда. Пример [pre2] as := dbStruct() y := x := 10 for each af in as @ y, x label &( af[1]+'_lbl' ) .... value af[1] ... x += This.&( af[1]+'_lbl' ).Width + 10 @ y, x getbox &( af[1] ) .... value &(af[1]) ... y += This.&( af[1]+'_lbl' ).Height + 10 next ... Писать с именами всегда можно nOld := This.Browse_1.Value This.Browse_1.Value := ... [/pre2]

Avf: Error: Unresolved external '_HB_FUN_WIN_OSVERSIONINFO' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Error: Unresolved external '_HB_FUN_WIN_OSISNT' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Error: Unresolved external '_HB_FUN_WIN_OSISNT351' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Error: Unresolved external '_HB_FUN_WIN_OSISNT4' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Error: Unresolved external '_HB_FUN_WIN_OSIS2000ORUPPER' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Error: Unresolved external '_HB_FUN_WIN_OSIS2000' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Error: Unresolved external '_HB_FUN_WIN_OSISXP' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Error: Unresolved external '_HB_FUN_WIN_OSISWINXPORUPPER' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Error: Unresolved external '_HB_FUN_WIN_OSIS2003' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Error: Unresolved external '_HB_FUN_WIN_OSISVISTA' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Error: Unresolved external '_HB_FUN_WIN_OSISVISTAORUPPER' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Error: Unresolved external '_HB_FUN_WIN_OSIS7' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Error: Unresolved external '_HB_FUN_WIN_OSIS8' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Error: Unresolved external '_HB_FUN_WIN_OSIS9X' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Error: Unresolved external '_HB_FUN_WIN_OSIS95' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Error: Unresolved external '_HB_FUN_WIN_OSIS98' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Error: Unresolved external '_HB_FUN_WIN_OSISME' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Error: Unresolved external '_HB_FUN_WIN_OSISTSCLIENT' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Error: Unresolved external '_HB_FUN_WIN_OSNETREGOK' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Error: Unresolved external '_HB_FUN_WIN_OSNETVREDIROK' referenced from C:\MINIGUI\HARBOUR\LIB\XHB.LIB|xwin_ver Эти функции появились в Харборе 10 лет назад (в ноябре 2009 года). По-видимому, используется более старая версия Харбора В последней версии сборки(19.08) эти функции перебрались из xhb.lib в hbwin.lib.

Avf: Смотря когда Я согласен. Но это уже особенности языка.

avf2007: Случайно обратил внимание : в h_browse.prg : *-----------------------------------------------------------------------------* FUNCTION _GetBrowseFnValue ( cTemp ) *-----------------------------------------------------------------------------* LOCAL cRet := 'Nil' SWITCH ValType ( cTemp ) CASE 'N' cRet := hb_ntos ( &cTemp ) ... наверное, должно быть : SWITCH ValType ( &cTemp )

Andrey: На нормальных компах под Win7 заметно очень скачки окна HMG_Alert(). Сначала окно появляется чуток пониже верха экрана и в левом углу, потом скачет в центр экрана. Под Win8.1 вроде не замечал, но у меня комп побыстрее обычного, офисного компа. Почему так ? Можно ли убрать эти скачки ?

SergKis: Поправь h_alert.prg [pre2] DEFINE WINDOW &cForm WIDTH 0 HEIGHT 0 TITLE cTitle MODAL NOSIZE BACKCOLOR aBackColor ; ON INTERACTIVECLOSE ( lPressButton .OR. lClosable ) ; ON INIT Nil ; ON RELEASE iif( !lPressButton .AND. lClosable, _HMG_ModalDialogReturn := 0, NIL ) FillDlg( cMsg, aOptions, nLineas, cIcoFile, nIcoSize, aBtnColors, bInit, lClosable, cFontName ) END WINDOW ACTIVATE WINDOW &cForm ON INIT This.Center() [/pre2] В ON INIT окно уже на экране в нач. координатах, this.center() там -> передергивает в центр.

SergKis: PS или как обычно CENTER WINDOW &cForm ACTIVATE WINDOW &cForm

SergKis: PPS УПС. Вспомнил. В предыдущей версии hmg было [pre2] ON INTERACTIVECLOSE ( lPressButton .OR. lClosable ) ; ON RELEASE iif( ! lPressButton .AND. lClosable, _HMG_ModalDialogReturn := 0, NIL ) FillDlg( cMsg, aOptions, nLineas, cIcoFile, nIcoSize, aBtnColors, bInit, lClosable, cFont ) END WINDOW ACTIVATE WINDOW &cForm ... *-----------------------------------------------------------------------------* STATIC FUNCTION FillDlg( cMsg, aOptions, nLineas, cIcoFile, nIcoSize, aBtnColors, bBlock, lClosable, cFont ) *-----------------------------------------------------------------------------* ... This.&( aBut[ Max( 1, Min( nLenaOp, _HMG_ModalDialogReturn ) ) ] ).SetFocus() This.Center() IF lClosable ON KEY ESCAPE OF &cForm ACTION ( _HMG_ModalDialogReturn := 0, lPressButton := .T., ThisWindow.Release() ) ENDIF IF HB_ISBLOCK( bBlock ) Do_WindowEventProcedure( bBlock, This.Index, 'WINDOW_ACTIVATE' ) ENDIF IF _IsControlDefined( "oTimer", cForm ) This.oTimer.Enabled := .T. ENDIF RETURN NIL [/pre2] Это более правильно, по мне, т.к. в bInit можно изменить размеры окна и повторить This.Center для них или не делать центровку, а задать row, col позицию

SergKis: PS к этому (из пред. версии) можно в DEFINE WINDOW ... добавить NOSHOW, а в ON INIT This.Show()

SergKis: SergKis пишет к этому (из пред. версии) можно в DEFINE WINDOW ... добавить NOSHOW, а в ON INIT This.Show() Проверил на примере Advanced\App_OopReport\demo2.prg Все нормально, перемещал main окно в разные углы, вызывал карточку, менял вызывая справочник, жал Cancel ... все HMG_Alert() отработали как надо.

Andrey: SergKis пишет: Все нормально, перемещал main окно в разные углы, вызывал карточку, менял вызывая справочник, жал Cancel ... все HMG_Alert() отработали как надо. Теперь бы в самой библиотеке МиниГуи поменять, чтобы в следующей версии это не вылезло опять !

gfilatov2002: SergKis пишет: В предыдущей версии hmg было Сделал, как в предыдущей версии... Кстати, это SergKis попросил изменить, когда работал с карточкой в примере Advanced\App_OopReport\demo2.prg Andrey пишет: Теперь бы в самой библиотеке МиниГуи поменять OK



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