![]() |
SpeedButton ein Bitmap aus einer TImageList zuweisen
moin,
bin noch ziemlich neu was das coden von delphi angeht...eher gesagt newb :cry: . Also da ich nicht wusste wie ich meine BMP dateien in das projekt einfügen kann ohne sie nachher irgendwie von C:\bla laden zu müssen hab ich sie mir in die Timagelist eingefügt, nunja aber wie mach ich es z.b das wenn ich auf den speedbutton drücke das bild angezeigt wird das in der timagelist ist? ich hatte das so versucht:
Delphi-Quellcode:
nach dem "." wurde mir kein popup mit optionen angezeigt d.h es muss wohl ein fehler drin sein, wird ja unten auch gesagt, aber was ist daran falsch?
speedbutton1.glyph := timagelist1. ...
|
Hier mal das Ergebnis meiner Suche in der Delphi-PRAXiS - siehe Suche am oberen Rand.
![]() BitBtn und SpeedButton sind in dieser Hinsicht übrigens gleich |
Delphi-Quellcode:
so steht es da, aber kann mir den code wer erklären?. wie gesagt ich mach das ganze noch nicht lang und frag mich wieso das bild in eine variable muss wenn es doch einfacher gehen muss.....einfach aus der timagelist laden oder nicht? Und wieso ist 2 mal end; da wenn nur einmal begin auftaucht? und noch eine frageprocedure TForm1.BitBtn1Click(Sender: TObject); var Bmp: TBitmap; begin Bmp := TBitmap.Create(); try if ImageList1.GetBitmap(0, Bmp) then BitBtn1.Glyph.Assign(Bmp); finally Bmp.Free; end; end; meine timagelist spinnt irgendwie, egal welches bild ich einfüge der rechte rand(1 pxl) fehlt immerobwohl das bild ganz ist, weiss wer den grund? |
Zitat:
Der Code lässt sich aber auch einfacher darstellen:
Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin ImageList1.GetBitmap(0, BitBtn1.Glyph); end; |
ah danke, der code sihet mir schon einfacher aus :wink:
btw schnelle antworten hier das ist cool, in anderen foren warte ich mindestens ne woche |
hm wenn da kein bitmap in dem button ist und ich den button anklicke kommt das bitmap hinzu, aber wenn ich nen anderen button klicke das dem button der nun das bitmap enthält ein anderes bitmap zuweist klappt das nicht....muss ich das alte erst entfernen um das neue sehen zu können?
|
Nimm doch mein Code, Copy&Paste ist ja nicht so schwer, oder? ;) Kurze Erläuterung
Code:
procedure TForm1.BitBtn1Click(Sender: TObject);
var Bmp: TBitmap; begin [color=#0000ff]// temporäre Bitmap erstellen[/color] Bmp := TBitmap.Create(); [color=#0000ff]// Versuche...[/color] try [color=#0000ff]// das 1. (Position 0) Bitmap aus der ImageListe in das temporäre Bitmap zu laden[/color] if ImageList1.GetBitmap(0, Bmp) then [color=#0000ff]// Weise dieses jetzt dem BitBtn (oder SpeedButton) zu[/color] BitBtn1.Glyph.Assign(Bmp); [color=#0000ff]// abschließend, egal ob der Rest seit dem [b]try[/b] funktioniert hat[/color] finally [color=#0000ff]// lösche das temporäre Bitmap wieder, um den Speicher freizugeben[/color] Bmp.Free; end; [color=#0000ff]// fertig[/color] end; |
ah, danke werds gleich mal probieren :)
|
jep, geht, danke :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:43 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