![]() |
In ImageList eine Bitmap laden?
Hallo Alle!
Wie kann man in einem ImageList eine Bitmap laden? Gruß Heike |
Re: In ImageList eine Bitmap laden?
Delphi-Quellcode:
so würde ich das machen
procedure TForm1.FormCreate(Sender: TObject);
var bmp:Tbitmap; begin bmp:=tbitmap.Create; bmp.LoadFromFile('Pfad zur Datei'); imagelist1.Add(bmp,bmp);//keine Ahnung was der zweite paramter macht da musste jemand anderen fragen^^ freeAndNil(bmp); end; |
Re: In ImageList eine Bitmap laden?
Zitat:
Gruß Heike |
Re: In ImageList eine Bitmap laden?
Du könntest beim Zeichnen des Controls das Bild reinmalen lassen.
Delphi-Quellcode:
Aus Performacegründen kannst du das Laden des Bildes auch in den Konstruktor der Form verlagern. :)
procedure TForm.ListViewCustomDraw(Sender: TCustomListView; const ARect: TRect; var DefaultDraw: Boolean);
var Bitmap: TBitmap; sFileName: String; begin Bitmap := TBitmap.Create; try sFileName := 'C:\Windows\Angler.bmp'; Bitmap.LoadFromFile(sFileName); ListView.Canvas.Draw(0, 0, Bitmap); finally Bitmap.Free; end; end; |
Re: In ImageList eine Bitmap laden?
Zitat:
Die Idee ist ansich nicht schlecht. Aber, ich wollte das ListView für eine Bildvorschau missbrauchen. Wenn ich mit Canvas jetzt darauf zeichne, dann gehen die ganzen Vorteile der Listview (scroll, usw.) verloren. Gruß Heike |
Re: In ImageList eine Bitmap laden?
Hallo,
so könnte man es machen:
Delphi-Quellcode:
Die Bilder in der Imagelist müssen aber immer die gleiche Größe haben.
procedure TForm1.Button1Click(Sender: TObject);
var i: integer; LstItm: TListItem; Bild: TBitmap; Pfad: AnsiString; begin Bild:= TBitmap.Create; try Pfad:= 'C:\bild.bmp';//Beispiel if not FileExists(Pfad) then begin Showmessage('Fehler, das Bild wurde nicht gefunden'); exit; end; Bild.LoadFromFile(Pfad); ImageList1.Width:= Bild.Width; ImageList1.Height:= Bild.Height; caption:= inttostr(ImageList1.Height); ImageList1.Add(Bild, Bild); ImageList1.Add(Bild, Bild);//Demo 2 Bilder finally Bild.Free; end; ListView1.ViewStyle := vsIcon; ListView1.LargeImages := ImageList1; ListView1.Items.BeginUpdate; for i := 0 to ImageList1.Count - 1 do begin LstItm := ListView1.Items.Add; LstItm.Caption := 'Item ' + IntToStr(i); LstItm.ImageIndex := i; end; ListView1.Items.EndUpdate; end; |
Re: In ImageList eine Bitmap laden?
Hi,
ich habe dafür letztens eine ListBox missbraucht:
Delphi-Quellcode:
Den Style musst du auf lbOwnerDrawFixed stellen
procedure TMDIChild.lbTilesDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState); begin lbTiles.Canvas.Draw(Rect.Left, Rect.Top, Tiles[Index]); //Tiles ist ein Array of TBitmap, hier einfach ein beliebeiges Bitmap einsetzen end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 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