Форум » 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: SergKis пишет: чуть поправить ? h_objmisc.prg OK

SergKis: gfilatov2002 Может есть смысл добавить, что то такое ? [pre2] *-----------------------------------------------------------------------------* FUNCTION _SetWindowThis ( i ) *-----------------------------------------------------------------------------* IF Empty( i ) _PushEventInfo() ELSE IF HB_ISCHAR( i ) i := GetFormIndex( i ) ELSEIF HB_ISOBJECT( i ) i := iif( i:ClassName == 'TSBROWSE', GetFormIndex( i:cParentWnd ), i:Index ) ENDIF _PushEventInfo() _HMG_ThisFormIndex := i _HMG_ThisEventType := '' _HMG_ThisType := 'W' _HMG_ThisIndex := i _HMG_ThisFormName := _HMG_aFormNames [ _HMG_ThisFormIndex ] _HMG_ThisControlName := "" ENDIF RETURN NIL Использовать например так ... IF !IsWindowActive( Form_Client ) DEFINE WINDOW Form_Client ; ... ELSE // !!! так сейчас пишем Form_Client.WIDTH := nWinWidth Form_Client.HEIGHT := nWinHeight Form_Client.Label_0.Value := cVal CENTER WINDOW Form_Client // !!! можем так делать ( это маленький кусочек ) _SetWindowThis( "Form_Client" ) This.WIDTH := nWinWidth This.HEIGHT := nWinHeight This.Label_0.Value := cVal This.CENTER _SetWindowThis() ENDIF [/pre2] Можно DEFINE сделать на ф-ю или команды аналогично IsWindowActive( Form_Client )

gfilatov2002: SergKis пишет: Может есть смысл добавить Благодарю за предложение Это уже идея для новой сборки... А подготовка апрельской сборки уже завершена, и она будет опубликована завтра


SergKis: PS Ошибся. Надо[pre2] IF Empty( i ) _PopEventInfo() ELSE [/pre2]

SergKis: gfilatov2002 пишет Это уже идея для новой сборки... Есть ф-я _SetThisFormInfo (у меня давно исправлена) можно ее использовать [pre2] FUNCTION _SetThisFormInfo ( i ) // стек значений переменных _HMG_This... LOCAL l := .T. // BK 18.05.2015 IF empty( i ) _PopEventInfo() ELSE IF HB_ISCHAR( i ) i := GetFormIndex( i ) l := .F. ELSEIF HB_ISOBJECT( i ) i := iif( i:ClassName == 'TSBROWSE', GetFormIndex( i:cParentWnd ), i:Index ) l := .F. ENDIF _PushEventInfo() _HMG_ThisEventType := iif( l, 'DEFINE_WINDOW', '' ) _HMG_ThisFormIndex := i _HMG_ThisType := _HMG_aFormType [ i ] _HMG_ThisIndex := i _HMG_ThisFormName := _HMG_aFormNames [ i ] _HMG_ThisControlName := "" ENDIF RETURN NIL [/pre2]

gfilatov2002: SergKis пишет: Есть ф-я _SetThisFormInfo (у меня давно исправлена) можно ее использовать Да, использовать/доработать уже существующую функцию, конечно, предпочтительнее. Выполнил предложенные изменения в текущей сборке, контрольный пример отработал правильно. [pre2]_SetThisFormInfo(Form_1.Index) This.Browse_1.ColumnsAutoFitH() This.CENTER This.ACTIVATE _SetThisFormInfo() [/pre2] Благодарю за помощь

gfilatov2002: Опубликована новая сборка 20.04 для BCC 5.8.2 и компиляторов Harbour и xHarbour. Базовый дистрибутив находится по адресу http://hmgextended.com/files/CONTRIB/hmg-20.04-setup.exe Добавил также архив для бесплатного Embarcadero C++ 10.2 'Tokyo' compiler http://hmgextended.com/files/CONTRIB/hmg2004_bcc102.exe Для частного использования подготовлены еще два дистрибутива: Harbour MiniGUI Extended Edition 20.04 (Release) Harbour 3.2.0dev (r2004201301) Harbour Make (hbmk2) 3.2.0dev (r2020-04-20 13:01) gcc (MinGW-W64 i686-posix-sjlj, built by Brecht Sanders) 9.3.0 и Harbour MiniGUI Extended Edition 20.04 (Release) (64-bit) Harbour 3.4.0dev (64-bit) (2017-12-20 13:40) Harbour Make (hbmk2) 3.4.0dev (64-bit) (2017-12-20 13:40) gcc (GCC) 9.2.0 (64-bit) доступ к которым открыт для всех, кто поддержал выпуск этой сборки материально.

Dima: gfilatov2002 пишет: доступ к которым открыт для всех, кто поддержал выпуск этой сборки материально. Там Forbidden.......подождем пока отвалится ЗЫ Социнжиниринг помог добраться куда надо :)

Andrey: Отличная новость ! А Микрософтный компилятор где ? Я уже с ним вожусь потихоньку. Мигрировать на него собираюсь.

SergKis: gfilatov2002 пишет Выполнил предложенные изменения в текущей сборке, Вариант _SetThisFormInfo() остался старый в последней сборке

gfilatov2002: SergKis пишет: остался старый в последней сборке Да, решил, что это подождет до следующего релиза Добавил также новую команду: #xtranslate SET WINDOW THIS TO [<w>] => _SetThisFormInfo( [<w>] ) Еще раз благодарю за Ваши идеи

SergKis: gfilatov2002 пишет Да, решил, что это подождет до следующего релиза Добавил также новую команду: Сделал эти изменения в MiniGuiBcc58, MiniGuiBcc102. Проверил сборку lib. Все либы собрались. Примеры Tsb_array_2 все отработали в обоих bcc. Пример с командой то же [pre2] ... LOCAL oThis, cForm := "Form_Client" ... IF !_IsWindowActive( cForm ) DEFINE WINDOW &cForm ; ... ELSE SET WINDOW THIS TO cForm oThis := This.Object This.WIDTH := nWinWidth This.HEIGHT := nWinHeight This.Label_0.Value := cVal This.CENTER SET WINDOW THIS TO ENDIF ... [/pre2] Спасибо все работает

gfilatov2002: SergKis пишет: все работает Благодарю за подтверждение

gfilatov2002: Andrey пишет: Микрософтный компилятор где ? Свежий архив для этого компилятора положил в папку PRIVATE на сайте библиотеки (имя архива не изменял). Harbour Build Info --------------------------- Version: Harbour 3.2.0dev (r2002101434) Compiler: Microsoft Visual C++ 19.24.28319 (32-bit) Platform: Windows 10 10.0 PCode version: 0.3 ChangeLog last entry: 2020-02-10 15:34 UTC+0100 Aleksander Czajczynski (hb fki.pl) ChangeLog ID: 123475ab11ba031e8b9c88138f2f0b24e4327e54 Built on: Mar 12 2020 10:55:14 Extra Harbour compiler options: -gc0 Extra C compiler options: -DHB_GC_AUTO -DHB_GUI -DHB_NO_TRACE Build options: (C++ mode) (Clipper 5.3b) (Clipper 5.x undoc)

Andrey: gfilatov2002 пишет: Свежий архив для этого компилятора положил в папку PRIVATE на сайте библиотеки (имя архива не изменял). Спасибо БОЛЬШОЕ, но не могу найти где брать. Предыдущие ссылки не работают. Если не трудно, прошу отправить ссылки мне на почту.

gfilatov2002: Andrey пишет: прошу отправить ссылки мне на почту Отправил ссылку по почте

Andrey: gfilatov2002 пишет: Отправил ссылку по почте Спасибо БОЛЬШОЕ !

SergKis: gfilatov2002 Правка (в первой колонке oCol:nWidth всегда NIL получается) [pre2] METHOD LoadFields( lEditable, aColSel, cAlsSel, aNameSel, aHeadSel ) CLASS TSBrowse ... cBlock := 'FieldWBlock("' + aStru[ nE, 1 ] + '",Select("' + cAlias + '"))' ::AddColumn( TSColumn():New( cHeading, FieldWBlock( aStru[ nE, 1 ], Select( cAlias ) ),cPicture, ; { ::nClrText, ::nClrPane }, { nAlign, DT_CENTER }, nSize,, lEditable,,, cOrder,,,, ; 5,,,, Self, cBlock ) ) IF ATail( ::aColSizes ) == NIL ::aColSizes[ Len( ::aColSizes ) ] := nSize ENDIF cName := ( cAlias )->( FieldName( nE ) ) ... [/pre2]

SergKis: PS Изменение лучше сделать тут [pre2] METHOD AddColumn( oColumn ) CLASS TSBrowse ... If Len( ::aColSizes ) < Len( ::aColumns ) AAdd( ::aColSizes, oColumn:nWidth ) EndIf If ATail( ::aColSizes ) == NIL ::aColSizes[ Len( ::aColSizes ) ] := oColumn:nWidth ENDIF If ::aPostList != Nil // from ComboWBlock function ... [/pre2]

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



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