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

Andrey: Григорий ! Задание фонтов для ТСБ не работает. [pre2] aFont := { "Cell", "Head", "Foot", "SpecH", "SuperH", "Edit" } DEFINE TBROWSE oBrw AT nY, nX ; .... FONT aTsbFont ;[/pre2] Сергей дал свой h_tbrowse.prg, с ним заработало !

SergKis: Andrey пишет Сергей дал свой h_tbrowse.prg, с ним заработало ! Я добавил только[pre2] Method AddSuperHead( nFromCol, nToCol, uHead, nHeight, aColors, l3dLook, uFont, uBitMap, lAdjust, lTransp, ; ... hFont := iif( ! Empty(uFont), iif( ValType( uFont ) == "O", uFont:hFont, uFont ), hFont ) If ! Empty( ::aColumns ) .and. empty( hFont ) hFont := iif( ValType( ::aColumns[ nFromCol]:hFontHead ) == "O", ::aColumns[ nFromCol]:hFontHead, ; iif( ::aColumns[ nFromCol]:hFontHead != Nil, ::aColumns[ nFromCol]:hFontHead, hFont ) ) EndIf [/pre2]

gfilatov2002: SergKis пишет: If ! Empty( ::aColumns ) .and. empty( hFont ) Ok Благодарю за помощь


Haz: SergKis пишет: Вопрос надо ли ? не надо. 😎 это была так скажем идея интересующимся. Не стоит перегружать объект редко используемым функционалом. Tsb и так скоро будет перегружен тем, что используется редко. Главная беда tsb это не отсутствие функционала, его можно дописать. Главная беда это тормозной вывод на экран, отсутствие буферизации и пр. Если вверх/вниз еще можно скролл окна использовать, вправо/влево все в прорисовке по ячейкам. Раз сто смотрел код , из мыслей как сделать оптимальнее только скролл окна и прорисовка появившейся колонки . но пока или руки не дошли или текучка так давит, что уже не до рук

gfilatov2002: Выложил обновление для сборки 20.06 (Update 3) с учетом последних исправлений Базовый дистрибутив для BCC 5.8.2 находится по адресу http://hmgextended.com/files/CONTRIB/hmg-20.06-setup.exe Благодарю за ваше внимание

gfilatov2002: Выложил обновление для сборки 20.06 (Update 4) с учетом последних исправлений Базовый дистрибутив для BCC 5.8.2 находится по адресу http://hmgextended.com/files/CONTRIB/hmg-20.06-setup.exe Важно: в этом обновлении переработана поддержка графических файлов в форматах BMP, GIF, TIF, JPG и PNG для всех элементов управления (в т.ч. Tab Pages)

Andrey: gfilatov2002 пишет: в этом обновлении переработана поддержка графических файлов А в чём это заключается ?

Dima: Andrey пишет: А в чём это заключается ? ChangeLog.txt

gfilatov2002: Andrey пишет: в чём это заключается ? Для пользователей библиотеки добавлена возможность использовать популярный формат PNG практически для всех элементов управления, при этом Си-код ядра был упрощен и стал универсальным (я только адаптировал наработки Клаудио Сото для HMG, которые он сделал еще в 2014 году).

Andrey: Что то PNG в ТСБ очень фигово выглядит !!! Если ставишь PNG в суперхидер и шапку (подвал наверное тоже), то картинка фиговая становиться... Цвета заливки берутся из цвета и вся красота накрывается. Может я и неправильно что то делаю.

gfilatov2002: Andrey пишет: PNG в ТСБ очень фигово выглядит Функция LOADIMAGE(), которая используется в TBROWSE для загрузки картинок, имеет всего 2 параметра и заточена для загрузки BMP файлов в целях совместимости. Если добавить в нее дополнительные параметры, то можно попробовать подстроить ее для формата PNG. Или можно использовать для загрузки картинок другую (уже готовую) функцию C_SETPICTURE(), которая имеет все эти дополнительные параметры

Andrey: gfilatov2002 пишет: Или можно использовать для загрузки картинок другую (уже готовую) функцию C_SETPICTURE(), которая имеет все эти дополнительные параметры Хотелось бы это иметь в ТСБ. Вот ещё пример:

SergKis: gfilatov2002 Может немного поправить Row в h_alert.prg (как то с одной строкой кривовато отображает)[pre2] STATIC FUNCTION FillDlg( cMsg, aOptions, nLineas, cIcoFile, nIcoSize, aBtnColors, bBlock, lClosable, cFont, nMaxLen ) ... ELSE //@ nChrHeight * 1.5 + GetBorderHeight(), nCol ; @ nChrHeight + GetBorderHeight(), nCol ; LABEL Say_01 VALUE AllTrim( cMsg ) OF ( cForm ) ; FONT cFont WIDTH nWidthCli - nCol - GetBorderWidth() - MARGIN / 4 HEIGHT Max( nChrHeight, nIcoSize ) ; FONTCOLOR aFontColor BACKCOLOR aBackColor VCENTERALIGN ENDIF IF nIcoSize > 0 DRAW ICON IN WINDOW ( cForm ) ; AT nChrHeight + GetBorderHeight(), MARGIN / iif( nIcoSize == 32, 1.4, iif( nIcoSize == 48, 1.7, 2 ) ) ; PICTURE cIcoFile WIDTH nIcoSize HEIGHT nIcoSize TRANSPARENT ENDIF ... [/pre2]

gfilatov2002: SergKis пишет: поправить Row в h_alert.prg Сергей, Текст этой одной строки выводится примерно посередине высоты иконки, как и в оригинальной функции MsgInfo(). Не вижу проблемы SergKis пишет: Max( nChrHeight, nIcoSize ) Ага, уже понял

gfilatov2002: Выложил "тихое" обновление для сборки 20.06 (Update 4) с учетом последних исправлений Что нового: - GRID не будет сваливаться, если 1000000 (один миллион) раз запросить значение ячейки грида. Тестовый пример для этой ошибки см. ниже [pre] #include "minigui.ch" Function Main() Local aRows [1000] [3] DEFINE WINDOW Form_1 ; AT 0,0 ; WIDTH 450 ; HEIGHT 400 ; TITLE 'Grid Demo' ; MAIN FOR i := 0 TO 99 aRows [ i * 10 + 1] := {'Simpson','Homer','555-5555'} aRows [ i * 10 + 2] := {'Mulder','Fox','324-6432'} aRows [ i * 10 + 3] := {'Smart','Max','432-5892'} aRows [ i * 10 + 4] := {'Grillo','Pepe','894-2332'} aRows [ i * 10 + 5] := {'Kirk','James','346-9873'} aRows [ i * 10 + 6] := {'Barriga','Carlos','394-9654'} aRows [ i * 10 + 7] := {'Flanders','Ned','435-3211'} aRows [ i * 10 + 8] := {'Smith','John','123-1234'} aRows [ i * 10 + 9] := {'Pedemonti','Flavio','000-0000'} aRows [ i * 10 + 10] := {'Gomez','Juan','583-4832'} NEXT i @ 10,10 GRID Grid_1 ; WIDTH 200 ; HEIGHT 330 ; HEADERS {'Last Name','First Name','Phone'} ; WIDTHS {140,140,140}; ITEMS aRows ; VALUE 1 ; TOOLTIP 'Editable Grid Control' ; EDIT ; JUSTIFY { BROWSE_JTFY_LEFT,BROWSE_JTFY_RIGHT, BROWSE_JTFY_RIGHT } @ 10, 250 BUTTON Button_1 CAPTION "Start" ACTION ( Test(), MsgInfo( "Ended" ) ) END WINDOW CENTER WINDOW Form_1 ACTIVATE WINDOW Form_1 RETURN NIL FUNCTION Test FOR i := 1 TO 1000 FOR j := 1 TO 1000 t := GetProperty( 'Form_1', 'Grid_1', 'Cell', i, 3 ) NEXT j do events NEXT i RETURN NIL [/pre]

SergKis: gfilatov2002 Маленькая правка, что бы имена колонок не дублировались[pre2] METHOD Paint() CLASS TSBrowse ... If ::lSelector Default ::nSelWidth := Max( nBmpWidth( ::hBmpCursor ), Min( ::nHeightHead, 25 ) ) oCol := ColClone( ::aColumns[ 1 ], Self ) oCol:bData := {||""} oCol:cHeading := "" oCol:nWidth := ::nSelWidth oCol:lNoHilite := .T. oCol:lFixLite := Empty( ::hBmpCursor ) oCol:nClrBack := oCol:nClrHeadBack oCol:cName := "SELECTOR" ::InsColumn( 1, oCol ) ... [/pre2]

gfilatov2002: SergKis пишет: что бы имена колонок не дублировались Благодарю за помощь Если возможно, проверьте работу переработанной функции LoadImage() [pre2] HB_FUNC( LOADIMAGE ) { HWND hWnd = HB_ISNIL( 2 ) ? GetActiveWindow() : ( HWND ) HB_PARNL( 2 ); HBITMAP hBitmap = NULL; if( hb_parclen( 1 ) > 0 ) { hBitmap = HMG_LoadPicture ( hb_parc( 1 ), // Filename, resource or URL hb_parnidef( 3, -1 ), // Width hb_parnidef( 4, -1 ), // Height hWnd, // Handle of parent window hb_parnidef( 5, 1 ), // Scale factor hb_parnidef( 6, 1 ), // Transparent hb_parnldef( 7, -1 ), // BackColor hb_parnidef( 8, 0 ), // Adjust factor hb_parldef( 9, HB_FALSE ), // Bitmap with alpha channel hb_parnidef( 10, 255 ) ); } HB_RETNL( ( LONG_PTR ) hBitmap ); } [/pre2] Пример Tsb_BitMaps у меня отработал нормально

SergKis: gfilatov2002 пишет проверьте работу переработанной функции LoadImage() Старые варианты (картинок немного) с новой LoadImage() отработали нормально Картинок много у Андрея, с доп. параметрами LoadImage() надо у него проверять

Andrey: SergKis пишет: Картинок много у Андрея, с доп. параметрами LoadImage() надо у него проверять Вот сравнение до и после: Картинки могу выслать...

SergKis: Andrey пишет Картинки могу выслать... Ты ф-ю заменил, либу пересобрал и старые примеры с bmp получил ? И картинка по этой ситуации



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