Отправлено: 07.01.15 18:29. Заголовок: Чего мне не хватает в МиниГуи....
Всех с праздниками !!! Предлагаю тем кто использует МиниГуи высказать свои предложения по улучшению данного продукта, да и в какую сторону двигаться дальше....
Вот то что мне не хватает (я имею в виду примеров): 1. Очень мало примеров для работы с DLL (хотя это и не относиться к МиниГуи, но как делать не знаю). 1.1 Как собирать свои ресурсы к программе в отдельную dll-ку. Как подключать её при запуске, показ картинок из dll (я может и догадываюсь, но пока не могу сделать этого) ? 1.2. Как сделать отдельный свой ехе-ник, а Харбор и Минигуи затолкать в отдельную dll-ку, ну и LetoDB в отдельную dll. Как подключать при запуске эти отдельные dll и пользоваться функциями из этих dll ? 1.3. Как использовать чужие dll (допустим на Дельфи) в своих программах на МиниГуи (хотя FastReport'ом пользуюсь, но он специально сделан под Харбор) ? Разные примеры из МиниГуи на эту тему смотрел, кое что понятно, кое что нет.
2. Полноценная работа с иконками 2.1. Сейчас приходиться каждый размер иконки (16х16, 32х32 и т.д.) хранить отдельно в ресурсном файле и выводить на кнопки по отдельности. Нужна функция вывода из ОДНОГО файла иконки (содержащий все размеры от 16х16 до 128х128) выбранного размера. 2.2. Как из shell32.dll (она содержит все размеры иконок) можно выбрать и показать иконку отличную от размера 32х32 ? 2.3. Как вывести на форму (не на кнопку) иконку заданного размера ?
Вот пока часть чего хочется... Может на Рождество желания сбудутся ?
DEFINE MAIN MENU .... SEPARATOR MENUITEM 'Change font: ' + cStaticFont NAME SetFont FONT hStaticFont ACTION ChangeFont() ... END MENU ......... Static FUNCTION ChangeFont() LOCAL aFont, aF, cItem, cForm := "wMain"
aF := GetFontParam( hStaticFont ) // вызвать стандартное меню шрифт для Windows aFont := GetFont( aF[1] , aF[2], aF[3], aF[4] , {0,0,0} , .f. , .f. , 0 ) if ! empty ( aFont[1] )
Отправлено: 27.01.24 17:10. Заголовок: gfilatov2002 пишет П..
gfilatov2002 пишет
цитата:
Переписал эту функцию таким образом
Еще небольшую правку в _o2log(...)
*----------------------------------------------------------------------------* FUNCTION _o2Log( o, nLen, cMsg, lExt, cLog ) *----------------------------------------------------------------------------* LOCAL a, b, c, i, j, k := pCount(), l := .F., xRet := .T. LOCAL lLog := IsErrorLogActive()
Отправлено: 29.01.24 16:13. Заголовок: gfilatov2002 Еще не..
gfilatov2002 Еще небольшая правка _o2log()
... IF HB_ISOBJECT( o ) ... ELSEIF HB_ISARRAY( o ) _LogFile( {.F., cLog}, o )
FOR EACH a IN o i := hb_enumIndex( a ) j := TR0( i, nLen - 1 ) + "." + " " + '"' + Valtype( a ) + '"' _LogFile( {.T., cLog}, j + " -> " ) IF HB_ISOBJECT( a ) _o2Log( a, nLen + 5, , lExt, cLog ) ELSEIF HB_ISARRAY( a ) _LogFile( {.T., cLog}, TR0( i, nLen - 1 ) + "." ) ...
gfilatov2002 Пропустил неточность, надо чуток добавить в код выше обвязку
FOR EACH a IN o i := hb_enumIndex( a ) IF ! HB_ISARRAY( a ) j := TR0( i, nLen - 1 ) + "." + " " + '"' + Valtype( a ) + '"' _LogFile( {.T., cLog}, j + " -> " ) ENDIF IF HB_ISOBJECT( a )
Пример для проверки тут https://TransFiles.ru/jw39y В demo4.ini можно задавать cMainMenuItems = MENU_1 or MENU_2 or MENU_3 и др. переменными, кроме cMainMenuFile (или сделать др. файл ini с секциями для items)
LOCAL cIconDll := System.SystemFolder + "\imageres.dll" // LOCAL cIconSave := System.TempFolder + '\temp.ico' LOCAL cIconSave := GetStartUpFolder() + '\temp.ico'
SET MULTIPLE OFF WARNING
// icon with number SYSICO_WARN to write along the path IF ! SaveIcon( cIconSave, cIconDll, SYSICO_WARN ) MsgInfo( "Icon is NOT saved!", "Error" ) ENDIF
SET DEFAULT ICON TO cIconSave
DEFINE WINDOW Form_1 ; AT 50, 50 ; WIDTH 660 HEIGHT 450 ; TITLE "This is icon SYSICO_WARN from the file - " + cIconDll ; MAIN ; BACKCOLOR ORANGE ; ON RELEASE FErase( cIconSave )
DRAW SYSICON IN WINDOW Form_1 ; AT ( This.ClientHeight - 32 ) / 2, ( This.ClientWidth - 32 ) / 2 ; FROM cIconDll ID SYSICO_WARN COLOR CLR_ORANGE
Отправлено: 02.02.24 10:57. Заголовок: Andrey пишет: а как..
Andrey пишет:
цитата:
а как записать hIcon ?
hIcon в данном случае - это временный указатель на загруженную иконку. Сохранить его для дальнейшего использования можно только в переменную (например, статическую).
Все даты в формате GMT
3 час. Хитов сегодня: 2278
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет