Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Bilder aus Datenbank (nur pfad) anzeigen.. (https://www.delphipraxis.net/42317-bilder-aus-datenbank-nur-pfad-anzeigen.html)

SKolberg 2. Sep 2005 13:27

Re: Bilder aus Datenbank (nur pfad) anzeigen..
 
Danke erstmal..

Wenn ich allerdings nur ein Bild habe, bekomme ich eine Fehllermeldung "List Index out of Bound (1)"

Mfg, Steve

EDIT/ Genauso wie setze ich die Variable wieder zurück auf 0?

Bsp.: Ich habe 2 Bilder wenn ich auf next drücke zeigt er mir NUR das 2te an, allerdings wenn ich den Datensatz wechsle auf einen mit ebenfalls 2 Bilder bekomme ich "List Index out of Bound (2)"
Er scheint also die "Zahl" nicht zu resetten.

Jemand vielleicht einen Vorschlag?

zelle 2. Sep 2005 13:43

Re: Bilder aus Datenbank (nur pfad) anzeigen..
 
Erstens:

Mit der IF Abfrage ist die Variable i auf das Maximum von Listeneinträgen begränzt.

Zweitens:

Wenn du in der procedure TForm2.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn); die Variable i auf 0 setzt sollte
dein zweites Probelem auch behoben sein.

mfg
Zelle

SKolberg 27. Okt 2005 08:22

Re: Bilder aus Datenbank (nur pfad) anzeigen..
 
Hi,

so Bilder Anzahl usw. zeigt er jetzt alles an das Navigieren zwischen den Bildern geht auch allerdings habe ich jetzt (wiedermal) ein anderes Problem mit dieser Procedure:

Delphi-Quellcode:
procedure TForm2.FormActivate(Sender: TObject);
begin

    TDP.Text:= 'Z:\Daten\' + DBEdit1.Text + '\TDP';
    Tech.Text:= 'Z:\Daten\' + DBEdit1.Text + '\Technologie';
    Kalk.Text:= 'Z:\Daten\' + DBEdit1.Text + '\Kalkulation';
    IDNR.Text:= 'Z:\Daten\' + DBEdit1.Text;
    TDPCreate.Text:= 'Z:\Daten\' + DBEdit1.Text + '\TDP';
    KalkCreate.Text:= 'Z:\Daten\' +DBEdit1.Text + '\Kalkulation';
    TechCreate.Text:= 'Z:\Daten\' +DBEdit1.Text + '\Technologie';
    i := 0;
    Image1.Picture := nil;
    Anzahl.Caption:= '0';
    Jetzt.Caption:= '0';
    ListBox1.Clear;
    MainForm.ZQuery2.ParamByName('ProduktID').AsString:= DBEdit1.Text;
    MainForm.ZQuery2.Refresh;
begin

   while not MainForm.ZQuery2.eof do begin
     ListBox1.Items.Add(MainForm.ZQuery2.fieldbyname('Foto').AsString);
     MainForm.ZQuery2.Next;
     Anzahl.Caption:=IntToStr(ListBox1.Items.Count);
     if ListBox1.Items.Count > 0 then
     Image1.Picture.LoadFromFile(ListBox1.Items.Strings[0]);
     Jetzt.Caption := IntToStr(i+1);
     Edit1.Text:= ListBox1.Items.Strings[0];
   end;
end;
end;
Wenn ich jetzt im DBGrid einen Datensatz markiere zeigt er mir in einer anderen Form die Daten an. Nun soll er mir wenn das Form angeklickt wird die Bilder dazu laden, so weit so gut das macht er auch allerdings wenn das Form den Focus verliert und wieder angeklickt wird zeigt er mir nur noch ein bild an obwohl mehrere da sind. "Theorethisch müsste er doch erneut alle in die ListBox laden! Oder?


Mfg, Steve

marabu 27. Okt 2005 09:35

Re: Bilder aus Datenbank (nur pfad) anzeigen..
 
Hi Steve,

dein Code-Fragment sieht irgendwie zusammengewürfelt aus, aber am Ende sollte es irgendwie so aussehen:

Delphi-Quellcode:
begin
  // ...

  // Laden der Bildpfade
  with MainForm.ZQuery2 do
  begin
    First;
    while not Eof do
    begin
      ListBox1.Items.Add(FieldByName('Foto').AsString);
      Next;
    end;
  end;
  Anzahl.Caption := IntToStr(ListBox1.Items.Count);

  // erstes Bild laden wenn es geht
  if ListBox1.Items.Count > 0 then
  begin
    imgIndex := 0;
    Image1.Picture.LoadFromFile(ListBox1.Items.Strings[imgIndex]);
    Jetzt.Caption := IntToStr(Succ(imgIndex));
    Edit1.Text := ListBox1.Items.Strings[imgIndex];
  end;

  // ...
end;
Grüße vom marabu

SKolberg 27. Okt 2005 09:55

Re: Bilder aus Datenbank (nur pfad) anzeigen..
 
Hi,

danke der Code funktioniert. Allerdings sehe ich nicht wo mein Fehler lag, da der code eigentlich "nur" etwas abgeändert wurde und meine Variable anders benannt wurde. Die Funktion ist eigentlich dieselbe...


Mfg, Steve

marabu 27. Okt 2005 18:12

Re: Bilder aus Datenbank (nur pfad) anzeigen..
 
Es könnte an der von mir verwendeten Methode First() gelegen haben. Alles andere musste ich nur machen, damit ich den Code überhaupt verstehen konnte.

marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:14 Uhr.
Seite 2 von 2     12   

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