Hover-Effekt mit TBitBtn Glyph bzw. NumGlyphs?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
alex189
Beiträge: 36
Registriert: Di 13. Apr 2010, 19:15
OS, Lazarus, FPC: Windows 7 Ultimate 64bit (L 0.9.28.2 Beta FPC 2.2.4)
CPU-Target: 32Bit-Anw.
Wohnort: Nürnberg

Hover-Effekt mit TBitBtn Glyph bzw. NumGlyphs?

Beitrag von alex189 »

Hallo!

Ich habe für mein Projekt ein Startformular erstellt, von dem aus man zu den einzelnen Programmpunkten kommt. Diese sind dabei über Bitbuttons erreichbar.
Um das ganze etwas zu verschönern, wollte ich für diese (fünf) Bitbuttons einen Hover-Effekt einrichten, wie man ihn von HTML und CSS kennt.
Also z. B. wenn die Maus über dem Credits-Button ist, soll sich das Bild (also glyph) ändern und wenn sie wieder runtergeht, soll wieder das Standard-Glyph erscheinen.
Ich habe mir gedacht, dass könnte ich mit den Ereignissen OnMouseMove und OnMouseLeave machen (also jeweils das Bild ändern), aber dann müsste ich die Bilder ja in irgendeiner Variable zwischenspeichern.
Deshalb wollte ich wissen, ob es da eine einfachere/elegantere Möglichkeit gibt? Könnte NumGlyphs da vllt helfen, bzw. was bringt das überhaupt?

greez ;)

martin_frb
Beiträge: 586
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: Hover-Effekt mit TBitBtn Glyph bzw. NumGlyphs?

Beitrag von martin_frb »

NumGlyph ist was du suchst:

Das Bild wird Horizontal unterteilt. die 5 glyph entsprechen:

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
);

alex189
Beiträge: 36
Registriert: Di 13. Apr 2010, 19:15
OS, Lazarus, FPC: Windows 7 Ultimate 64bit (L 0.9.28.2 Beta FPC 2.2.4)
CPU-Target: 32Bit-Anw.
Wohnort: Nürnberg

Re: Hover-Effekt mit TBitBtn Glyph bzw. NumGlyphs?

Beitrag von alex189 »

Cool, danke, funktioniert wunderbar!
Jetzt hab ich noch eine kleine Frage, die auch was mit Bildern zu tun hat, aber möchte jetzt nicht extra einen neuen Thread eröffnen:
Ich habe an anderer Stelle im Programm ein Image, dass als Hintergrund genutzt wird. Der Nutzer hat nun die Möglichkeit, das Bild zu ändern, aber auch das Standardbild wieder herzustellen. Für das Standardbild hab ich einfach noch ein weiteres Image mit diesem Bild auf das Form gezogen, dieses aber auf unsichtbar gestellt (da es ja nur als Zwischenspeicher dient). Gibt es dafür eine bessere Methode oder ist das normal so?

MfG :D

Socke
Lazarusforum e. V.
Beiträge: 3177
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Hover-Effekt mit TBitBtn Glyph bzw. NumGlyphs?

Beitrag von Socke »

Wenn der Benutzer ein eigenes Bild auswählt, werden immer zwei Bilder im Speicher gehalten. Normalerweise stellt das kein Problem dar, ist aber unnötiger Speicherverbrauch.
Soll dein Programm den vorhandenen Speicher effizienter ausnutzen, solltest nur das benötigte Bild mit Image1.Picture.LoadFromFile(); von der Festplatte laden (wenn das Standardbild nicht als einzelne Datei vorliegen sollte, müsstest du entsprechend nicht von einer Datei sondern von einer Resource laden).
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

martin_frb
Beiträge: 586
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: Hover-Effekt mit TBitBtn Glyph bzw. NumGlyphs?

Beitrag von martin_frb »

TImageList ?

Socke
Lazarusforum e. V.
Beiträge: 3177
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Hover-Effekt mit TBitBtn Glyph bzw. NumGlyphs?

Beitrag von Socke »

martin_frb hat geschrieben:TImageList ?
Die halte ich nur für mehrere, kleine Bildchen (Icons) brauchbar. Bei zwei relativ großen Bildern mit wahrscheinlich unterschiedlichen Auflösungen, ist da wahrscheinlich schon Schluss.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

alex189
Beiträge: 36
Registriert: Di 13. Apr 2010, 19:15
OS, Lazarus, FPC: Windows 7 Ultimate 64bit (L 0.9.28.2 Beta FPC 2.2.4)
CPU-Target: 32Bit-Anw.
Wohnort: Nürnberg

Re: Hover-Effekt mit TBitBtn Glyph bzw. NumGlyphs?

Beitrag von alex189 »

Okay, danke!
Ja, mach ich dann wohl mit Sockes Methode, da der Benutzer eine beliebige Auflösung nehmen können soll.

MfG :)

Antworten