AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Bilder aus mehreren Datensätzen in eine Tabelle anzeigen?
Thema durchsuchen
Ansicht
Themen-Optionen

Bilder aus mehreren Datensätzen in eine Tabelle anzeigen?

Ein Thema von Karstadt · begonnen am 28. Aug 2006 · letzter Beitrag vom 28. Aug 2006
Antwort Antwort
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#1

Bilder aus mehreren Datensätzen in eine Tabelle anzeigen?

  Alt 28. Aug 2006, 07:20
Datenbank: Mysql • Version: 4.1 • Zugriff über: MyDac
Guten Morgen. Ich habe folgendes Problem:

Zu einen Schadensnummer buche ich die Bilder. Jedes Bild ist ein Datensatz. Nun will ich alle Bilder die zu den Schaden 24 als eine Tabelle anzeigen lassen. Mit SELECT habe ich nun 15 Bilder (jedes Bild ein eigenes Datensatz) nun muss ich das irgenwie als eine Tabelle anzeigen lassen, wichtig ist das beim klicken auf ein Bild das ORIGINAL Bild sich öffnen soll. (Pfad zum Bild ist auch in der Bilderbuchungstabelle hinterlegt). Ich wollte das in FastReport machen, das sieht aber nicht gut aus. Kennt jemand von euch eine gute Lösung?
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Bilder aus mehreren Datensätzen in eine Tabelle anzeigen

  Alt 28. Aug 2006, 08:02
Es einige DBGrids, die auch direkt Blobimages anzeigen können, z.B. das TDBAdvGrid von TMS.
Das mit dem Vergrössern wird schwieriger. Du kannst zwar sicherlich die Bilder im Grid verkleinert darstellen lassen, das würd aber heissen dass Du das Originalbild jedesmal beim Anzeigen verkleinern musst, und bei 100 Bildern im Grid glaub ich geht die Performance in die Knie. Alternativ würd ich eventuell ein 2tes Blobfeld in der Tabelle anlegen, wo ich beim Speichern des Datensatzes auch nochmal ein Thumbnail ablege.

Ich zweifele auch daran, ob die Idee so wirklich gut ist, soviele Bilder direkt in der Datenbank abzulegen. Das bauscht die nur unnötig auf. Alternativ kannst Du auch nur den Dateinamen speichern, und das Bild selbst dann als Datei irgendwo ablegen, lokal oder auf einem Server wenn Du im Netz arbeitest.
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#3

Re: Bilder aus mehreren Datensätzen in eine Tabelle anzeigen

  Alt 28. Aug 2006, 08:11
Hallo. Die Bilder werden in eine kleine Auflösung in die Tabelle gespeichert 100x100 (JPEG Format) die großen Bilder liegen auf der Festplatte (ca. 2 MB Pro Bild). Ich muss aber die Bilder nach möglichkeit als 1 Datensatz darstellen...sprich 10 Bildern aus 10 Datensätzen werden als 1 Datensatz anzegeigt.. kann man einen berechneten Feld dafür nehmen?
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Bilder aus mehreren Datensätzen in eine Tabelle anzeigen

  Alt 28. Aug 2006, 08:23
Zitat von Karstadt:
sprich 10 Bildern aus 10 Datensätzen werden als 1 Datensatz anzegeigt
Wozu denn das? Die Anzahl der Spalten wird prinzipiell festgehalten. Was Du da hast, ist eindeutig eine 1:n Beziehung, und das ist ja auch gut so.
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#5

Re: Bilder aus mehreren Datensätzen in eine Tabelle anzeigen

  Alt 28. Aug 2006, 08:44
Wenn ich mir das recht überlege. Dann ist das ja eine gute IDEE. Die Schadensbilder werden vertikal angezeigt. beim klick auf das bild wird das Bild (über PFAD Feld) groß geladen....

Denn das was ich wollte ist, das die Bilder aus 10 Datensätzen Horizontal angezeigt werden (sprich eine Zeile)
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Bilder aus mehreren Datensätzen in eine Tabelle anzeigen

  Alt 28. Aug 2006, 08:50
Wie Du die Bilder darstellst, ist Dir überlassen. Du bist ja nicht an ein DBGrid gebunden.

Du kannst ja auch dynamisch irgendwas erstellen mittels einer TScrollbox. Du durchläufst alle gefundenen Datensätze und erzeugts für jeden dynamisch ein neues Image in der TScrollbox. Dann passt du für Image die Eigenschaft Parent, Left, Top, Width und Height an, ebenfalls noch das OnClick Ereignis und Du hast deine horizontale Bilderliste... Sollte ja nicht so schwer sein, oder?
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#7

Re: Bilder aus mehreren Datensätzen in eine Tabelle anzeigen

  Alt 28. Aug 2006, 08:56
Zitat von Jelly:
Wie Du die Bilder darstellst, ist Dir überlassen. Du bist ja nicht an ein DBGrid gebunden.

Du kannst ja auch dynamisch irgendwas erstellen mittels einer TScrollbox. Du durchläufst alle gefundenen Datensätze und erzeugts für jeden dynamisch ein neues Image in der TScrollbox. Dann passt du für Image die Eigenschaft Parent, Left, Top, Width und Height an, ebenfalls noch das OnClick Ereignis und Du hast deine horizontale Bilderliste... Sollte ja nicht so schwer sein, oder?
Sollte ja nicht so schwer sein, oder?... Nein, ist das nicht. Ich wollte nur wissen, ob es irgendeine ander Lösung gäbe. Z.b. Die Bilder in einen berechtenen Feld speichern und dann mit TDBAdvGrid anzeigen lassen. Oder denken Sie das das schwieriger ist als ihre lösung?
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Bilder aus mehreren Datensätzen in eine Tabelle anzeigen

  Alt 28. Aug 2006, 09:03
Schmeiss eine scrollbox, listbox, ein image (imgtemplate) und einen button auf deine Form... Hier der Code zum Laden der Bilder (in meinem Fall aus Dateien und alle mit gleichen Breiten).

Delphi-Quellcode:
implementation

uses
  Windows;

{$R *.dfm}

procedure TForm16.Button1Click(Sender: TObject);
var
  i: Integer;
  fn: string;
  img: TImage;
begin
     for i := 0 to listbox1.items.count - 1 do begin
          fn := listbox1.items[i] ;
          img := TImage.create (Self) ;
          img.Parent := scrollbox1 ;
          img.AutoSize := false ;
          img.Stretch := false ;
          img.Tag := i ;
          img.Left := (i*32) + 8 ;
          img.Top := 8 ;
          img.Width := 24 ;
          img.height := 24 ;
          img.Picture.LoadFromFile(fn);
          img.Cursor := crHandPoint ;
          img.OnClick := imgTemplateClick ;
     end;

end;

procedure TForm16.imgtemplateClick(Sender: TObject);
begin
    caption := inttostr ((Sender as TImage).tag) ;
end;

end.
  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 16:44 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