![]() |
Daten aus Datenbank zu TImage32-Komponenten hinzufügen
Hallo,
ich habe eine Art Fotogalerie, die aus mehreren TImage32/TImgView32-Komponenten (Graphics32-Bibliothek) besteht und dynamisch erzeugt werden, da die Anzahl der Fotos pro Datensatz variiert. Die Bilder werden zunächst als Vorschaubilder in einem TGridPanel dargestellt. Jetzt muss ich ja irgendwie die Daten wie ID, Pfadname usw. aus der SQL-Abfrage dem jeweiligen Bild zuordnen. Die Combobox- und Listbox-Komponente erlauben es ja, zusätzliche Daten mittels der AddObject-Methode zu den Items hinzuzufügen. Das finde ich sehr praktisch und nutze ich persönlich sehr häufig. Wie mache ich das jetzt aber beim TImage32, da gibt es diese Methode ja nicht. Ich hoffe, Ihr habt verstanden, was ich vorhabe. Danke für Eure Hilfe. LG |
AW: Daten aus Datenbank zu TImage32-Komponenten hinzufügen
Hallo, wenn Du schon mit einer Tabelle kommst, dann bleibe doch auch dabei. Jedes Bild sollte doch einen eindeutigen Index haben. Nimm Datenbank-Komponenten zur Anzeige aller Informationen, da brauchst du nix neu erfinden.
|
AW: Daten aus Datenbank zu TImage32-Komponenten hinzufügen
Timage32 sollte eine Property namens TAG haben. Dort kannst du ein NativeInt speichern. Ein paar Möglichkeiten (mit Objekten der Klasse aus dem anderen Thread):
- xxx.Tag := NativeInt(MyImage); und nachher andersrum casten - Ein TDictionary<Integer, TMyImage> und im TAG speicherst du dann den (eindeutigen) Integer Wert. - Ein TDictionary<TImage32, TMyImage> - Eine eigene abgeleitete Komponente von TImage32, die zusätzlich properties für das Image enthält. |
AW: Daten aus Datenbank zu TImage32-Komponenten hinzufügen
Hallo,
hier mal ein Schnipsel:
Code:
Ja, jedes Bild hat natürlich eine eindeutige ID. Die Daten kommen aus einer Tabelle bzw. Abfrage. Aber ich muss die Daten ja irgendwie mitschleifen. So wird ja nichts mitgetrackt.
//GridPanel
for i := 0 to -1 + rowCount * colCount do begin myImage := TImgView32.Create(Self); myImage.Parent := GridPanel1; myImage.Bitmap.LoadFromFile(''); myImage.Align := alClient; myImage.AlignWithMargins := true; myImage.OnClick := myImageClick; end; Ich stehe im Moment aufm Schlauch... LG |
AW: Daten aus Datenbank zu TImage32-Komponenten hinzufügen
Zitat:
|
AW: Daten aus Datenbank zu TImage32-Komponenten hinzufügen
Erzeugst du die TImage32 immer dynamisch? Dann ist es am Einfachsten.
|
AW: Daten aus Datenbank zu TImage32-Komponenten hinzufügen
Ja, genau, so:
Code:
//GridPanel
for i := 0 to -1 + rowCount * colCount do begin myImage := TImgView32.Create(Self); myImage.Parent := GridPanel1; myImage.Bitmap.LoadFromFile(''); myImage.Align := alClient; myImage.AlignWithMargins := true; myImage.OnClick := myImageClick; end; |
AW: Daten aus Datenbank zu TImage32-Komponenten hinzufügen
Delphi-Quellcode:
Und dann halt TMyImgView32.Create und die properties setzen.
TMyImgView32 = class(TImgView32)
private FId: Integer; FPath: String; ... public property Id: Integer read FId write FId; property Path: String read FPath write FPath; ... end; |
AW: Daten aus Datenbank zu TImage32-Komponenten hinzufügen
Ach, cool, dann passt das ja, sieht bei mir genauso aus. Ist ja ganz easy. Besten Dank!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:23 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