AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Daten aus Datenbank zu TImage32-Komponenten hinzufügen
Thema durchsuchen
Ansicht
Themen-Optionen

Daten aus Datenbank zu TImage32-Komponenten hinzufügen

Ein Thema von banaguitar · begonnen am 4. Apr 2024 · letzter Beitrag vom 5. Apr 2024
Antwort Antwort
banaguitar

Registriert seit: 19. Feb 2024
17 Beiträge
 
#1

Daten aus Datenbank zu TImage32-Komponenten hinzufügen

  Alt 4. Apr 2024, 23:06
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
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
691 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Daten aus Datenbank zu TImage32-Komponenten hinzufügen

  Alt 5. Apr 2024, 09:15
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.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
755 Beiträge
 
#3

AW: Daten aus Datenbank zu TImage32-Komponenten hinzufügen

  Alt 5. Apr 2024, 12:28
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.
  Mit Zitat antworten Zitat
banaguitar

Registriert seit: 19. Feb 2024
17 Beiträge
 
#4

AW: Daten aus Datenbank zu TImage32-Komponenten hinzufügen

  Alt 5. Apr 2024, 12:30
Hallo,

hier mal ein Schnipsel:

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;
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.
Ich stehe im Moment aufm Schlauch...

LG
  Mit Zitat antworten Zitat
banaguitar

Registriert seit: 19. Feb 2024
17 Beiträge
 
#5

AW: Daten aus Datenbank zu TImage32-Komponenten hinzufügen

  Alt 5. Apr 2024, 12:32
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.
Danke, Dein letzter Vorschlag gefällt mir am besten, daran habe ich auch gedacht, muss mir da aber noch erarbeiten, wie man das am besten macht.
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
755 Beiträge
 
#6

AW: Daten aus Datenbank zu TImage32-Komponenten hinzufügen

  Alt 5. Apr 2024, 12:34
Erzeugst du die TImage32 immer dynamisch? Dann ist es am Einfachsten.
  Mit Zitat antworten Zitat
banaguitar

Registriert seit: 19. Feb 2024
17 Beiträge
 
#7

AW: Daten aus Datenbank zu TImage32-Komponenten hinzufügen

  Alt 5. Apr 2024, 12:36
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;
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
755 Beiträge
 
#8

AW: Daten aus Datenbank zu TImage32-Komponenten hinzufügen

  Alt 5. Apr 2024, 12:41
Delphi-Quellcode:
TMyImgView32 = class(TImgView32)
private
  FId: Integer;
  FPath: String;
  ...
public
  property Id: Integer read FId write FId;
  property Path: String read FPath write FPath;
  ...
end;
Und dann halt TMyImgView32.Create und die properties setzen.
  Mit Zitat antworten Zitat
banaguitar

Registriert seit: 19. Feb 2024
17 Beiträge
 
#9

AW: Daten aus Datenbank zu TImage32-Komponenten hinzufügen

  Alt 5. Apr 2024, 12:44
Ach, cool, dann passt das ja, sieht bei mir genauso aus. Ist ja ganz easy. Besten Dank!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz