![]() |
Bild von TImage in TListView verwenden
Hallo zusammen.
Habe schon wieder eine Frage :oops: Ich habe nun ein Bild, beispielsweise ein jpg, in einem TImage vorliegen. Nun möchte ich diese Bild (verkleinert) in einer Spalte einer TListview (vsReport) darstellen. Ist der einzige Weg der, dass man den 'Umweg' über eine Imagelist macht? Wenn ja, wie kann ich der ImageList das Bild von TImage zuweisen, wenn dies z.B ein jpg ist? Kann TImage mir das Bild auch konvertiert als Icon zurückliefern? Die OH konnte mir nicht wirklich weiterhelfen... |
Re: Bild von TImage in TListView verwenden
Zitat:
![]() ![]() Jpeg in ein TBitmap kopieren und dann per .Add hinzufügen. |
Re: Bild von TImage in TListView verwenden
Okay, Add hatte ich zwar gefunden, aber auf das zu TBitmap zuweisen bin ich nicht bekommen.
Nun bekomme ich aber Trotzdem noch einen Fehler: --------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt CRM.exe ist eine Exception der Klasse EInvalidOperation mit der Meldung 'Ungültige Bildgröße' aufgetreten. --------------------------- Anhalten Fortsetzen Hilfe ---------------------------
Delphi-Quellcode:
lBitmap : TBitmap;
begin lBitmap := FPerson.Bild.Bitmap; ImageListFahrer.Add(lBitmap, lBitmap); // <-- Fehler hier. ListItem := TListItem.Create(ListViewPerson.Items); ListItem.SubItems.Add(FPerson.Name); ListViewPerson.Items.AddItem(ListItem); Deswegen habe ich meine Quelltest intuitiv so erweitert:
Delphi-Quellcode:
Kommt zwar kein Fehler mehr, aber anstatt des Bildes wird nur eine weisse Fläche dargestellt? Wat mach ich denn nu?
lBitmap : TBitmap;
begin lBitmap := FPerson.Bild.Bitmap; lBitmap.Width := 35; lBitmap.Height := 35; ImageListFahrer.Add(lBitmap, lBitmap); ListItem := TListItem.Create(ListViewPerson.Items); ListItem.SubItems.Add(FPerson.Name); ListViewPerson.Items.AddItem(ListItem); |
Re: Bild von TImage in TListView verwenden
*push*
|
Re: Bild von TImage in TListView verwenden
Hast du eigentlich schon mal dran gedacht, das Bitmap Objekt auch zu erzeugen? :roll:
|
Re: Bild von TImage in TListView verwenden
Zitat:
Nur leider habe ich dann auch noch dem selben Effekt. Aber vielleicht bin ich so dumm und habe was falsch gemacht. :roll: Sieht jetzt so aus:
Delphi-Quellcode:
Hoffe ich fall jetzt niemanden (schon wieder) auf die Nerven :duck:
lBitmap : TBitmap;
begin lBitmap := TBitmap.Create(); lBitmap := FPerson.Bild.Bitmap; ImageListFahrer.Add(lBitmap, lBitmap); // <-- Fehler hier. ListItem := TListItem.Create(ListViewPerson.Items); ListItem.SubItems.Add(FPerson.Name); ListViewPerson.Items.AddItem(ListItem); |
Re: Bild von TImage in TListView verwenden
*push*
|
Re: Bild von TImage in TListView verwenden
Moin,
ist denn das Bild > 35x35 Pixel? Dann würde ich dir Canvas.StrechDraw empfehlen. Damit kann du auf dein „Pufferbitmap“ (lBitmap) das Orginal verkleinert zeichnen. MfG Fabian |
Re: Bild von TImage in TListView verwenden
Zitat:
[edit] Evtl. liegt der ursprüngliche Fehler ja ganz woanders.
Delphi-Quellcode:
[/edit]
lBitmap : TBitmap;
begin lBitmap := FPerson.Bild.Bitmap; if Assigned(lBitmap) then begin //Dimensionen der Imagelist vor dem Einfügen festlegen ImageListFahrer.Width := lBitmap.Width; ImageListFahrer.Height := lBitmap.Height; ImageListFahrer.Add(lBitmap, lBitmap); // <-- Fehler hier (jetzt weg?) ListItem := TListItem.Create(ListViewPerson.Items); ListItem.SubItems.Add(FPerson.Name); ListViewPerson.Items.AddItem(ListItem); end; |
Re: Bild von TImage in TListView verwenden
Zitat:
Delphi-Quellcode:
lBitmap := TBitmap.Create();
Rect.Left := 0; Rect.Right := 35; Rect.Top := 0; Rect.Bottom := 35; lBitmap.Canvas.StretchDraw(Rect, FPerson.Bild.Bitmap);; ImageListFahrer.Add(lBitmap, lBitmap); Zitat:
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 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