vierer Button integrieren
-
Andy Nightingale
- Beiträge: 429
- Registriert: Mo 13. Jan 2025, 12:11
vierer Button integrieren
Hallo Leute,
ich habe ein Programm das erzeugt mir als PNG Datei einen fertigen Button mit allen "Zuständen". Also: Standard, Clicked, Hovered, Disabled. Wie kann ich so etwas in mein Programm in einen Button integrieren? So sind die Zustände: und so sieht das fertige PNG dann aus:.-Grüße
ich habe ein Programm das erzeugt mir als PNG Datei einen fertigen Button mit allen "Zuständen". Also: Standard, Clicked, Hovered, Disabled. Wie kann ich so etwas in mein Programm in einen Button integrieren? So sind die Zustände: und so sieht das fertige PNG dann aus:.-Grüße
-
Mathias
- Beiträge: 7354
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: vierer Button integrieren
TBitBtn ist das Stichwort. Da kann man Glyphe einfügen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
Andy Nightingale
- Beiträge: 429
- Registriert: Mo 13. Jan 2025, 12:11
Re: vierer Button integrieren
Hallo Matthias,Mathias hat geschrieben: So 13. Sep 2026, 14:19 TBitBtn ist das Stichwort. Da kann man Glyphe einfügen.
ich habe unter Glyph (Eigenschaft) die PNG Datei geladen und unter GlyphShowMode always eingegeben...aber es funzt nicht....hast du dafür ein kleines Beispiel...Grüße
-
kirchfritz
- Beiträge: 280
- Registriert: Mo 3. Jan 2011, 13:34
- OS, Lazarus, FPC: Win11 (L 4.0 FPC 3.2.2)
- CPU-Target: 64Bit
- Wohnort: Nürnberg
Re: vierer Button integrieren
Lade doch mal Deine PNG hoch. Dann könnte man konkretere Hilfe anbieten...
Re: vierer Button integrieren
TBitBtn unterstützt drei Zustände: „normal“, „disabled“ und „clicked“. Außerdem müssen die Grafiken für die Zustände von links nach rechts und nicht von oben nach unten angeordnet sein. Anschließend gibst du eine entsprechende Datei an (Eigenschaft „Glyph“) und trägst in die Eigenschaft „NumGlyphs“ den Wert 3 ein.
Vier Zustände und ein Bild in dieser Form werden von der Komponente TBCImageButton aus dem Komponentenpaket „BGRA Controls“ problemlos verarbeitet.
Vier Zustände und ein Bild in dieser Form werden von der Komponente TBCImageButton aus dem Komponentenpaket „BGRA Controls“ problemlos verarbeitet.
Grüße / Pozdrawiam
paweld
paweld
Re: vierer Button integrieren
Ich dachte, Glyph würde es auch erlauben, die Icons vertikal anzuordnen, aber nein, im Quelltext sieht man, dass die Breite des Gesamtbitmaps durch die Höhe dividiert wird - daher müssen die Icons, wie paweld schon sagte, horizontal angeordnet sein. Seltsam, denn TImageList, kann beide Varianten, und letztendlich landen die Bilder sowieso in einer ImageList.
Im Quelltext sieht man auch, dass es insgesamt 5 mögliche Icon-Arten gibt, entsprechend den Werten der TButtonState-Aufzählung:
Um das zu testen, habe ich ein kleines Mini-Projekt beigefügt, für das ich in einer Bildbearbeitung fünf Zahlen-Icons aus den Lazarus-Images nebeneinander montiert habe: '0'..'4', entsprechend den 5 ButtonState-Zuständen. Wie man in dem Programm sieht, funktioniert das. Die Option bsExclusive wird beim TBitBtn nicht verwendet, weil man BitBtns nicht zu einer Radiobutton-ähnlichen Gruppe zusammenschalten kann (oder habe ich etwas übersehen?). Bei TSpeedButton (mit der Eigenschaft GroupIndex) ist das aber möglich, und hier wird Index 3 verwendet. Seltsam, dass man diese Option dann nicht ans Ende gesetzt hat, denn so muss jemand, der bei TBitBtn einen MouseOver-Effekt erzeugen will, ein nicht benötigtes Icon einfügen.
Wie dem auch seo, generell würde ich aber überhaupt nicht mit dem "altmodischen" Glyph-Property hantieren, sondern die ImageList verwenden, die seit längerer Zeit schon bei TBitBtn und TSpeedButton verfügbar bist. Das hat den Vorteil, dass bei der Verwendung mehrerer gleicher Buttons die Bilder nur einmal vorhanden sein müssen. Außerdem beherrscht die ImageList das LCLScaling, d.h. die Icon-Größe passt sich der Bildschirmauflösung an (wenn man die entsprechenden Regeln beachtet; bei Glyph kann man nur 1 Bildgröße eingeben, bei ImageList mehrere!). Für die verschiedenen Zustände gibt es jeweils eigene Image-Indices:
* ImageIndex --> normal
* DisabledImageIndex --> disabled
* HotImageIndex --> mouse-over
* PressedImageIndex --> geclickt
Im Quelltext sieht man auch, dass es insgesamt 5 mögliche Icon-Arten gibt, entsprechend den Werten der TButtonState-Aufzählung:
Code: Alles auswählen
type
TButtonState =
(
bsUp, // Button is up.
bsDisabled, // Button disabled (grayed).
bsDown, // Button is down.
bsExclusive,// Button is the only down in his group.
bsHot // Button is under mouse.
); Wie dem auch seo, generell würde ich aber überhaupt nicht mit dem "altmodischen" Glyph-Property hantieren, sondern die ImageList verwenden, die seit längerer Zeit schon bei TBitBtn und TSpeedButton verfügbar bist. Das hat den Vorteil, dass bei der Verwendung mehrerer gleicher Buttons die Bilder nur einmal vorhanden sein müssen. Außerdem beherrscht die ImageList das LCLScaling, d.h. die Icon-Größe passt sich der Bildschirmauflösung an (wenn man die entsprechenden Regeln beachtet; bei Glyph kann man nur 1 Bildgröße eingeben, bei ImageList mehrere!). Für die verschiedenen Zustände gibt es jeweils eigene Image-Indices:
* ImageIndex --> normal
* DisabledImageIndex --> disabled
* HotImageIndex --> mouse-over
* PressedImageIndex --> geclickt
- Dateianhänge
-
BitBtn_Glyph_ButtonStates.zip- (18.86 KiB) 5-mal heruntergeladen
-
wennerer
- Beiträge: 656
- Registriert: Di 19. Mai 2015, 20:05
- OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
- CPU-Target: x86_64-linux-gtk2
Re: vierer Button integrieren
Hallo,
suchst du sowas:
Dann kannst du wenn du möchtest meinen MultiButton testen. Hier siehst du mehr: viewtopic.php?t=14033
PS: Falls du tolle Icons suchst dann schau mal da: viewtopic.php?t=14263
Viele Grüße
Bernd
suchst du sowas:
Dann kannst du wenn du möchtest meinen MultiButton testen. Hier siehst du mehr: viewtopic.php?t=14033
PS: Falls du tolle Icons suchst dann schau mal da: viewtopic.php?t=14263
Viele Grüße
Bernd
- Dateianhänge
-
project1.zip- (140.7 KiB) 5-mal heruntergeladen