Форум » GUI » Динамическое изменение размеров иконки/картинки ? » Ответить

Динамическое изменение размеров иконки/картинки ?

Andrey: Всем привет. Столкнулся с проблемой изменения размеров иконки/картинки на кнопке. Имеется иконка + картинка одного размера в ресурсах проги. [pre2]iSanta128 ICON res\Santa128x128.ico Santa128 PNG res\santa128x128.png[/pre2] Как на базе этой иконки/картинки получить другой размер ? Есть ли какие функции в MiniGui или в FW ? В МиниГуи можно же загрузить из ресурса объект и получить его хендл: [pre2]M->hImg := LoadImage( "Santa128" )[/pre2] А хенд на кнопку как можно поместить ? И можно ли делать преобразования иконки/картинки по этому хендлу ? Я слабо разбираюсь в этой тематике, просветите пожалуйста меня.

Ответов - 27, стр: 1 2 All

gfilatov2002: Andrey пишет: с иконками когда пример будет работать ? После выхода новой сборки 19.10

Andrey: gfilatov2002 пишет: После выхода новой сборки 19.10 Ждем с нетерпеньем ! На сайте http://www.hmgextended.com/download.html : Harbour MiniGUI Extended Edition 19.08 setup. Includes MiniGUI libraries, include files, development tools, source code, sample applications, documentation, Harbour compiled libraries, Harbour include files and Harbour compiler binaries. Libraries are compiled for Borland C++. Borland C++ Compiler version 5.8 Borland C++ Compiler version 5.8 - это сейчас Open Source лицензия ? Не хотелось бы попадать под всякие разборки...

Andrey: Всем привет ! В догонку к исправлениям для иконок. Имеем сейчас в МиниГуи такую команду: [pre2] DRAW ICON IN WINDOW Form_1 AT 0, 0 PICTURE cIco WIDTH 96 HEIGHT 96 COLOR aBackColor[/pre2] Можно ли сделать/добавить вот такой новый синтаксис: [pre2] nImgSize := 48 hIco := LoadIconByName( cIco, nImgSize, nImgSize ) DRAW ICON IN WINDOW Form_1 AT 0, 0 PICTURE hIco WIDTH nImgSize HEIGHT nImgSize COLOR aBackColor или DRAW ICON IN WINDOW Form_1 AT 0, 0 HPICTURE hIco WIDTH nImgSize HEIGHT nImgSize COLOR aBackColor[/pre2] Т.е. показ иконки через загруженный хендл иконки ?


gfilatov2002: Andrey пишет: добавить вот такой новый синтаксис Такая возможность уже существует в этой команде Попробуй DRAW ICON IN WINDOW Form_1 AT 0, 0 HICON hIco WIDTH nImgSize HEIGHT nImgSize COLOR aBackColor

Andrey: gfilatov2002 пишет: Попробуй Отлично, Работает. Спасибо ! А в доку эти команды попадут ?

Andrey: Всем привет ! Надо бы пример исправить \MiniGUI\SAMPLES\BASIC\ButtonEx_DynamicMenu\demo.prg, вот так: [pre2] // Расчет фонтов кнопок STOP ------------------------------ // получить размер иконки кнопки в зависимости от высоты кнопки nIcoSize := INT(nBtnH - 10) // размер иконки nIcoSize := IIF( nIcoSize > 128, 128, nIcoSize) FOR nI := 1 TO Len(aBtn) cN := aBtn[nI][1] @ nY, nX BUTTONEX &cN WIDTH nBtnW HEIGHT nBtnH ; CAPTION aBtn[nI][2] ICON aBtn[nI][4] BOLD SIZE aBtn[nI][9] ; FLAT NOXPSTYLE HANDCURSOR NOTABSTOP ; BACKCOLOR aBtn[nI][6] GRADIENTFILL aBtn[nI][7] ; ON MOUSEHOVER ( This.Fontcolor := aFC2Btn, This.GradientFill := This.Cargo[2][7] ,; This.Icon := LoadIconByName( This.Cargo[2][5], This.ImageWidth, This.ImageHeight ) ) ; ON MOUSELEAVE ( This.Fontcolor := aFC1Btn, This.GradientOver := This.Cargo[2][6] ,; This.Icon := LoadIconByName( This.Cargo[2][4], This.ImageWidth, This.ImageHeight ) ) ; ACTION _wPost( 1, This.Index ) ; ON INIT { || This.Cargo := { nI, aBtn[ nI ] } } This.&(cN).ImageWidth := nIcoSize This.&(cN).ImageHeight := nIcoSize This.&(cN).Icon := LoadIconByName( aBtn[nI,4], nIcoSize, nIcoSize ) aN := aBtn[ nI ][8] // HotKey array[/pre2] А то в некоторых случаях пролёт получается, пока придумал как сделать все мозги себе вынес...

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



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