Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение)
gfilatov: Начало темы находится здесь, а теперь АНОНС * АНОНС * АНОНС * АНОНС * АНОНС Готовится к опубликованию новая сборка №48, которая выйдет в конце недели. Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне Кратко, что нового: - исправление обнаруженных ошибок и неточностей кода; - новый класс HEADERIMAGE для Grid и Browse; - свойство Address в Hyperlink может теперь открывать папку или файл на диске; - добавлен NOTABSTOP класс для Browse; - поддержка пользовательских компонентов (заимствована из оффициального релиза); - расширения и исправления в библиотеках TsBrowse и PropGrid; - обновлены сборки Харбор и HMGS-IDE; - новые и обновленные старые примеры (как обычно ).
Andrey: SergKis пишет: Можно получать сейчас так aSup := oBrw:DrawSuper( .F. ) FOR EACH oCel IN aSup nFrom := oBrw:aSuperHead[ hb_enumindex( oCel ) ][1] // строка 250 nTo := oBrw:aSuperHead[ hb_enumindex( oCel ) ][2] Выдаёт ошибку: Error BASE/1132 Bound error: array access Args: [1] = A { ... } length: 7 [2] = N 8 --------------------------------- Stack Trace --------------------------------- Called from MYGETTSBSUPH(250) in module: MenuExcel7.prg Called from MYGETTSBCONTENT(166) in module: MenuExcel7.prg
gfilatov2002: SergKis пишет: Предложение добавить OK, добавлю во 2-е обновление сборки 20.05 Благодарю за помощь
gfilatov2002: Выложил обновление для сборки 20.05 (Update 2) с учетом последних наработок Базовый дистрибутив для BCC 5.8.2 находится по адресу http://hmgextended.com/files/CONTRIB/hmg-20.05-setup.exe Благодарю за ваше внимание
SergKis: gfilatov2002 Тут неточность[pre2] METHOD AddSuperHead( nFromCol, nToCol, uHead, nHeight, aColors, l3dLook, uFont, uBitMap, lAdjust, lTransp, ; ... uFont := iif( uFont != Nil, iif( ValType( uFont ) == "O", uFont:hFont, uFont /* ? */ ), hFont ) ... было hFont := If( uFont != Nil, uFont, hFont ) и переменная DATA hFontSupHd // super header font больше подходит, чем DATA hFontSupHd AS NUMERIC // super header font [/pre2]
SergKis: PS Или такой вариант, что бы 0 не проскочил [pre2] uFont := iif( ! Empty(uFont), iif( ValType( uFont ) == "O", uFont:hFont, uFont ), hFont ) [/pre2]
gfilatov2002: SergKis пишет: логичнее сразу сделать ... Правка закраски фантомной колонки Все правки приняты. Благодарю за помощь
SergKis: gfilatov2002 В HMG_DrawIcon() сделана веточка [pre2] ... ELSEIF ISSTRING( icon ) DrawIconEx( FormHandle, Col, Row, LoadIconByName( icon, w, h ), w, h, rgb, .T. ) AAdd( _HMG_aFormGraphTasks [ i ] , {|| DrawIconEx( FormHandle, Col, Row, LoadIconByName( icon, w, h ), w, h, rgb, .T. ) } ) ENDIF [/pre2] Это же утечка памяти на LoadIconByName(). У себя сделал [pre2] h_window.prg FUNCTION _DefineWindow ( FormName, Caption, x, y, w, h, nominimize, nomaximize, ; ... _HMG_aFormMiscData1 [ k ] := {hnotifyicon, cursor, {}} ... AAdd ( _HMG_aFormMiscData1, {hnotifyicon, cursor, {}} ) ... FUNCTION _DefineModalWindow ( FormName, Caption, x, y, w, h, Parent, nosize, nosysmenu, nocaption, aMin, aMax, ; ... _HMG_aFormMiscData1 [ k ] := {NIL, cursor, {}} ... AAdd ( _HMG_aFormMiscData1, {NIL, cursor, {}} ) ... FUNCTION _DefineSplitChildWindow ( FormName, w, h, break, grippertext, nocaption, title, fontname, fontsize, gotfocus, lostfocus, ; ... _HMG_aFormMiscData1 [ k ] := {NIL, cursor, {}} ... AAdd ( _HMG_aFormMiscData1, {NIL, cursor, {}} ) ... h_windowMDI.prg FUNCTION _DefineChildMDIWindow ( FormName, x, y, w, h, nominimize, nomaximize, ; ... _HMG_aFormMiscData1 [k] := {NIL, cursor, {}} ... AAdd ( _HMG_aFormMiscData1 , {NIL, cursor, {}} ) ... h_events.prg ... CASE WM_DESTROY ... NEXT // Delete handle hmg_drawicon(...) IF ISARRAY( _HMG_aFormMiscData1[ i ] ) .and. Len( _HMG_aFormMiscData1[ i ] ) > 2 IF ISARRAY( _HMG_aFormMiscData1[ i, 3 ] ) .and. Len( _HMG_aFormMiscData1[ i, 3 ] ) > 0 FOR EACH x IN _HMG_aFormMiscData1[ i, 3 ] DeleteObject( x ) NEXT ENDIF ENDIF // Delete Brush DeleteObject ( _HMG_aFormBrushHandle [ i ] ) ... h_draw.prg ... FUNCTION HMG_DrawIcon( window, icon, row, col, w, h, rgb, transparent ) LOCAL FormHandle LOCAL backcolor LOCAL i, name ... hb_default( @rgb, GetSysColor( COLOR_BTNFACE ) ) IF ISSTRING( icon ) name := icon icon := LoadIconByName( icon, w, h ) ENDIF IF ISNUMERIC( icon ) DrawIconEx( FormHandle, Col, Row, icon, w, h, rgb, .F. ) AAdd( _HMG_aFormGraphTasks [ i ] , {|| DrawIconEx( FormHandle, Col, Row, icon, w, h, rgb, .F. ) } ) IF ! Empty(name) AAdd( _HMG_aFormMiscData1[ i, 3 ], icon ) ENDIF /* ELSEIF ISSTRING( icon ) DrawIconEx( FormHandle, Col, Row, LoadIconByName( icon, w, h ), w, h, rgb, .T. ) AAdd( _HMG_aFormGraphTasks [ i ] , {|| DrawIconEx( FormHandle, Col, Row, LoadIconByName( icon, w, h ), w, h, rgb, .T. ) } ) */ ENDIF ... [/pre2]
Andrey: Привет всем. Григорий ! Удаление записи в методе :SetDeleteMode( .T., .T. ) - запрос идет через MsgYesNo() Поменять на AlertYesNo() - можно ? Или переключатель сделать какой то ? А то при удалении/вставки разные окна. Как то не то.
SergKis: Andrey Почему не смотришь исходники, примеры, когда что то применяешь и есть не ясность или вопросы. Сканируй примеры Advanced Far -> Alt_F7 -> *.prg "SetDeleteMode" и просмотри найденное. Открой h_tbrowse.prg, найди метод SetDeleteMode() и смотри параметры Если в твоем редакторе сложно, открывай hbedit от А.Кресина Alt+L и весь список ф-й, методов с поиском перед глазами
Andrey: Посмотрел. Нет такого - поменять MsgYesNo() на AlertYesNo() ! Это нужно сделать в [pre2]METHOD DeleteRow( lAll ) CLASS TSBrowse ..... If ::lConfirm .and. !lAll .and.; ! MsgYesNo( iif( ::lIsDbf, ::aMsg[ 37 ], ::aMsg[ 38 ] ), ::aMsg[ 39 ] ) [/pre2]
Dima: Andrey пишет: Посмотрел Не там смотрел а по вопросу можно хоть чёрта лысого туда сунуть
SergKis: Andrey пишет Посмотрел. Нет такого - поменять MsgYesNo() на AlertYesNo() ! "В огороде бузина, а в Киеве — дядька" Говорили о :SetDeleteMode(), а унесло куда то ... в сторону. Смотри :SetDeleteMode(...)