Frameoptions

Forum für alles rund um die MSEide und MSEgui
Antworten
Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1432
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Frameoptions

Beitrag von fliegermichl »

Ich versuche gerade herauszufinden, wie die runden Buttons in dem Beispiel
https://gitlab.com/mseide-msegui/mseuni ... buttonanim
gemacht werden.

Dabei habe ich zum testen frameimage.options bmo_masked auf false gesetzt. Dann ändern die Buttons die Hintergrundfarbe und das bleibt auch so, wenn man bmo_masked wieder auf true stellt.
Wenn ich dann auf frameimage rechte Maustaste -> Edit Component gehe, dann sehe ich, dass auch die Bilder in der Liste ihre Farbe geändert haben.

Ist das so gewollt?

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Frameoptions

Beitrag von mse »

Gewollt nicht gerade. ;-)
In MSEgui sind die bitmaps für Farbe und Transparenz separat, die Transparenzbitmap wird gelöscht, wenn bmo_masked rückgesetzt wird.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1432
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Frameoptions

Beitrag von fliegermichl »

Aha, wo kann man denn die mask bitmap einstellen?

Ich habe versucht, die Buttons auch auf der rechten Seite rund zu machen. Vermutlich ist dafür frameimage.cornermask zuständig.
Welche Werte muß ich da für die rechten Seiten eintragen damit die auch rund werden. Sind das Pixelpositionen?

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Frameoptions

Beitrag von mse »

fliegermichl hat geschrieben:Aha, wo kann man denn die mask bitmap einstellen?

Die Maske wird z.B. aus einer PNG aus dem Apha-Kanal mit dem imagelist Komponenteneditor geladen.

frameimage.cornermask clipt die client-Fläche. Die Zahlen definieren die Anzahl Pixel die vom Rand her ausgeschnitten werden. Die erste Zeile ist die erste Pixelreihe vom Rand her. Um die übrigen Ecken rund zu clipen kannst du die gleiche Werte wie in topright verwenden. Zusätzlich müssen die Eck-imgages angepasst werden. Ändere die frame.svg mit z.B. Inkscape, exportiere als 30x30 PNG, lade die Datei mit dem tool von hier ('Load Image'):
https://gitlab.com/mseide-msegui/mseuni ... textractor
'Save', lade die gespeicherte Datei im imagelist Editor, 'stretch' muss dabei ausgeschaltet sein. In der Imagelist sind die Ecken/Kanten im Gegenuhrzeigersinn angeordnet. Es sind 3*8 bitmaps für die drei Zustände "normal", "hoover" und "gedrückt". Die bitmaps 6, 14 und 22 müssen ersetzt werden.
Ausgewählt werden die Gruppen durch <button>.frame.frameimage_offset*, dabei wird die Summe aller aktiven Werte angewendet. Der im gedrückten Zustand sind offsetmouse und offsetclicked aktiv, -> 8+8 -> 16 -> es werden die bitmaps 16..23 verwendet.
Dateianhänge
imagelist.png

Antworten