![]() |
Bilder aus ImageList auswählen
Hi
und zwar habe ich eine ImageList und versuche Über eine ComboBox die einzelnen Bilder auszuwählen und anzeigen zu lassen hab es soweit geschafft das die Bilder alle in miniaturansicht in der ComboBox auftauchen komme aber nicht weiter hab schon gegoogelt bis zum abwinken. |
Re: Bilder aus ImageList auswählen
wo, bzw. wie willst du die Bilder denn anzeigen lassen?
|
Re: Bilder aus ImageList auswählen
Delphi-Quellcode:
Sollte Gehen ist aber ungetestet
function getimage(imglst:TimageList;Id:Integer):Tbitmap;
begin Result := TBitmap.Create; imglst.GetBitmap(id, result); end;
Delphi-Quellcode:
edit: sinnloses entfernt
image1.picture.bitmap.assign(getimage(ImageList1,3));
|
Re: Bilder aus ImageList auswählen
@pacman1986: Ist aber eine ganz schlechte Lösung weil das Bitmap dort nirgends frei gegeben wird. In solchen Fällen übergibt man in der Regel einer Funktion das bereits erstellt Bitmap und die Funktion schreibt das Bitmap in die Instanz.
|
Re: Bilder aus ImageList auswählen
Delphi-Quellcode:
besser ?
procedure getimage(imglst:TimageList; Id:Integer;bitmap:tbitmap);
var bit : TBitmap; begin bit := TBitmap.Create; try imglst.GetBitmap(id, Bit); bitmap.Assign(bit); finally FreeAndNil(Bit); end; end; ups : so wird aufgerufen
Delphi-Quellcode:
edit2 : var entfernt
var bitmap : tbitmap;
begin bitmap := tbitmap.create; getimage(ImageList1,0,bitmap); Image1.picture.bitmap.assign(bitmap); freeandnil(bitmap); end; |
Re: Bilder aus ImageList auswählen
so ist's perfekt (das "var" kann übrigens weg da eine Objectinstanz ein Pointer ist)
|
Re: Bilder aus ImageList auswählen
Ja genau so
nur noch 1 Problem kann nur das erste Bild anzeigen alle weiteren werden ignoriert muss ich erst image1 wieder Löschen? wird doch aber an der stelle gemacht? FreeAndNil(Bit); |
Re: Bilder aus ImageList auswählen
Zitat:
Zitat:
Delphi-Quellcode:
der 2 paramter den du übergibst ist entscheidend.
getimage(ImageList1,0,bitmap);
Übergibst du 1 kommt das 2 bild bei 2 kommt das 3 bild .... |
Re: Bilder aus ImageList auswählen
ja das ist soweit klar
getimage(ImageList1,0,bitmap); wenn ich das in das getimage(ImageList1,1,bitmap); zeigt er bild 2 das soll aber die Combobox machen hab da erst mal nur 10 tstrings drin |
Re: Bilder aus ImageList auswählen
Zeig mal bitte ien bisse code ich versteh nicht was du willst! sollen die bilder in der combobox angezeigt werden oder soll durch auswahl bei der combobox das bild angezeigt werden ?
|
Re: Bilder aus ImageList auswählen
hab in der combobox erstmal von 0-10 Tstrings erstellt
in der imagelist sind 57 Bilder (die später über ihre namen in der ComboBox auswählbar sind)mach ich aber später also wenn ich jetzt in der combobox 1 auswähle wird bild 2 angezeigt wähle ich jetzt die 2 bleibt bild 2 aber bestehen
Delphi-Quellcode:
unit Unit2;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ImgList, StdCtrls, ExtCtrls; type TForm2 = class(TForm) Image1: TImage; ComboBox1: TComboBox; ImageList1: TImageList; procedure ComboBox1Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation {$R *.dfm} procedure getimage(imglst:TimageList; Id:Integer;bitmap:tbitmap); var bit : TBitmap; begin bit := TBitmap.Create; try imglst.GetBitmap(id, Bit); bitmap.Assign(bit); finally FreeAndNil(Bit); end; end; procedure TForm2.ComboBox1Change(Sender: TObject); var bitmap : tbitmap; begin bitmap := tbitmap.create; getimage(ImageList1,0,bitmap); Image1.picture.bitmap.assign(bitmap); freeandnil(bitmap); end; end. |
Re: Bilder aus ImageList auswählen
Zitat:
Richtig wäre:
Delphi-Quellcode:
Ntürlich ist das sehr code spezifisch aber bei denem sollte es so wie ich es verstanden habe gehen ...
procedure TForm2.ComboBox1Change(Sender: TObject);
var bitmap : tbitmap; begin bitmap := tbitmap.create; getimage(ImageList1,combobox1.itemindex,bitmap); Image1.picture.bitmap.assign(bitmap); freeandnil(bitmap); end; end.
Delphi-Quellcode:
das musst du ändern
getimage(ImageList1,combobox1.itemindex,bitmap);
|
Re: Bilder aus ImageList auswählen
ganau so jetzt klappt es
konnte über einzelne buttons auch unterschiedliche bilder anzeigen war mir also schonmal klar das es an der combo box lag Danke nochmal!! Hast du Nachtschicht im Forum? Bereitschaftsdienst? |
Re: Bilder aus ImageList auswählen
Nein Langeweile ^^
|
Re: Bilder aus ImageList auswählen
Und wie bekomm ich Jpeg´s in die imagelist die BMP´s blähen das prog so auf
mit jpeg unter uses brigts nichts oder brauch ich was anderes |
Re: Bilder aus ImageList auswählen
Vielleicht magst Du dir den Thread hier anschauen ->
![]() Grüße Klaus |
Re: Bilder aus ImageList auswählen
Gibts auch was wo ich für die antwort nicht 10 Dollar hinlegen muss
|
Re: Bilder aus ImageList auswählen
Hallo,
warum so kompliziert? :cyclops: Bei mir funktioniert es auch so (für Bitmaps):
Delphi-Quellcode:
ohne umständliche Funktion.
ImageList1.GetBitmap(ComboBox1.ItemIndex, Image1.Picture.Bitmap);
// auch wieder in ComboBox.onChange Das Erneuern klappt bei mir mit
Delphi-Quellcode:
Für Jpeg-Bilder kann ich dir übrigens die
Image1.Refresh;
![]() Gruß, ManuMF |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 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 by Thomas Breitkreuz