![]() |
Zwei Bitmaps für TBitButton
Ich möchte einem BitmapButton zwei verschiedene Bitmaps zuweisen können, allerdings nicht abhängig von dem Zustand gedrückt/nicht gedrückt sondern abhängig von anderen Gegebenheiten in meinem Programm. Ich möchte das zweite Bitmap jedoch nicht zur Laufzeit nachladen, sondern in der DLL speichern (das Bild also zur Designzeit einbinden).
Ich erkläre am besten wofür ich das Ganze brauche: In einem Objekt kann ein Kommentar gespeichert werden. Wenn der Benutzer das Object mit einem eigens dafür geschaffenen Editor bearbeitet, so soll ein rotes Ausrufezeichen auf dem 'Comment'-Button angezeigt werden wenn bereits etwas im Kommentarfeld drinsteht, ansonsten ein dunkelgraues Ausrufezeichen, wenn das Feld (noch) leer ist. Ciao |
Re: Zwei Bitmaps für TBitButton
Hi!
Wie das mit einer Dll geht weiß ich nicht. Aber du könntest diese Bitmaps auch in einer resourcen-Datei speichern, womit die Bitmaps dann in die exe eingebunden werden. Nachteil: exe wird etwas größer. ;) |
Re: Zwei Bitmaps für TBitButton
Hmmm, scheint mir aufwändig zu sein. Ich hab jetzt nen 'Hack' indem ich zwei weitere BitBtns (mit den beiden Bildern) aufs formular draufknalle, diese auf Visible:= false schalte und dem ursprünglichen BitBtn nach Lust und Laune das im jeweiligen Moment richtige Glyph zuweise! Aber diese nichtsichtbaren Buttons die nur als Glyph-Speicher dienen sind unschön, gell?
Ciao |
Re: Zwei Bitmaps für TBitButton
Benutz doch eine ImageList und die dazugehörige Funktion GetBitmap
Delphi-Quellcode:
ImageList1.GetBitmap(0, BitBtn1.Glyph); // Erstes Bild
ImageList1.GetBitmap(1, BitBtn1.Glyph); // Zweites Bild // ... |
Re: Zwei Bitmaps für TBitButton
Hallo.
Du musst dein Image doppelt so breit machen wie es ist (nicht zerren). Auf der linken Seite plazierst du dein rotes Ausrufezeichen und auf der Rechten dein Dunkelgraues. Dann musst du das Bild nur dem BitBtn zuweisen (--> Glyph) und NumGlyph auf 2 stellen. Jetzt kannst du zwischen beiden Bildern hin und her wechseln,indem du den BitBtn enable/disable setzt. Gruß Joe09 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz