AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Ordner mit Liste in TadvStringgrid vergleichen u Thumbnails
Thema durchsuchen
Ansicht
Themen-Optionen

Ordner mit Liste in TadvStringgrid vergleichen u Thumbnails

Ein Thema von capo · begonnen am 12. Sep 2008 · letzter Beitrag vom 13. Sep 2008
Antwort Antwort
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#1

Ordner mit Liste in TadvStringgrid vergleichen u Thumbnails

  Alt 12. Sep 2008, 23:42
Hallo...
also, schwer zu formulieren.

Ich habe ein TadvStringgrid in dem stehen in der ersten Spalte Bildnamen untereinander z.B. 112222.jpg, 112223.jpg usw.
Diese Bildinformationen lade ich aus einer Exceldatei.
Ich möchte gerne wissen wie ich den Inhalt der ersten Spalte (also die Bildnamen) mit dem Inhalt eines Ordners vergleichen kann in dem sich schon x Bilder befinden.
Für jedes Bild was lokal vorhanden ist soll dann ein Icon in der entsprechende Zeile einfügt werden.
Wie ich das Icon einfüge weiß ich schon.

Boahh...hoffe das versteht jemand.

Gruss
Capo
Hotte
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: Ordner mit Liste in TadvStringgrid vergleichen u Thumbna

  Alt 12. Sep 2008, 23:45
Hallo,

Gehe alle Zeilen des TAdvStringgrids durch und überprüfe mit FileExists(Pfad + Bildname) ob die Datei existiert.
Thomas
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Ordner mit Liste in TadvStringgrid vergleichen u Thumbna

  Alt 13. Sep 2008, 00:02
Das ist eine gute Idee!
Danke für deinen Denkanstoß.
Hotte
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Ordner mit Liste in TadvStringgrid vergleichen u Thumbna

  Alt 13. Sep 2008, 02:11
Hallo,

merke nun, dass es nicht so einfach ist wie ich es mir vorgestellt habe;

Delphi-Quellcode:
procedure TForm1.InitGraphicGrid;
var
ExePath,bilddatei,lokalbildpfad: string;
i:integer;
begin
  ExePath := ExtractFilePath(Application.ExeName);
   bilddatei := Form1.AdvStringGrid1.Cells[0, Form1.AdvStringGrid1.Row];
    lokalbildpfad:= Form1.AdvStringGrid2.Cells[0, Form1.AdvStringGrid2.Row];
      for i:=1 to advstringgrid1.rowcount-1 do
     if FileExists(ExePath +lokalbildpfad+'\'+bild+'.jpg') then
       begin
       advstringgrid1.AddDataImage(3,i,0,habeforetext,vaTop); // Grafik einfügen
     end;
end;
Es wird immer in jeder zeile eine Grafik eingefügt.

Gruß
Capo
Hotte
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#5

Re: Ordner mit Liste in TadvStringgrid vergleichen u Thumbna

  Alt 13. Sep 2008, 07:18
Hallo Capo

Du initialisierst vor der Schleife die Variablen bilddatei und lokalbildpfad mit einem Wert.

In der Schleife rufst du jedesmal FileExists(ExePath +lokalbildpfad+'\'+bild+'.jpg') auf..

Zumdem wird die Variable bilddatei nur initialisierst aber nachher nicht verwendet.
Thomas
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Ordner mit Liste in TadvStringgrid vergleichen u Thumbna

  Alt 13. Sep 2008, 12:11
Hallo Toms,
Danke für deine Hilfe.
Ich habe die Variable bilddatei nun verwendet.
Mit if FileExists(ExePath +lokalbildpfad+'\'+bilddatei+'.jpg') then wird ja nur überprüft was in dem Ordner ist, ich denke es fehlt der vergleich mit dem Dateinamen im Stringgrid, oder?


Delphi-Quellcode:
var
ExePath,bilddatei,lokalbildpfad: string;
i:integer;
begin
  ExePath := ExtractFilePath(Application.ExeName);
   bilddatei := Form1.AdvStringGrid1.Cells[0, Form1.AdvStringGrid1.Row];
    lokalbildpfad:= Form1.AdvStringGrid2.Cells[0, Form1.AdvStringGrid2.Row];
      for i:=0 to advstringgrid1.rowcount-1 do
     if FileExists(ExePath +lokalbildpfad+'\'+bilddatei+'.jpg') then
      // showmessage(ExePath +lokalbildpfad+'\'+bilddatei+'.jpg');
       advstringgrid1.AddDataImage(3,i,8,habeforetext,vaTop); // Grafik einfügen
     end;
Meine Schleife ist doch richtig so?
Ich bekomme nichts angezeigt, auch showmessage zeigt nichts an
Hotte
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Ordner mit Liste in TadvStringgrid vergleichen u Thumbna

  Alt 13. Sep 2008, 13:24
Hallo Vito,

Tom schrieb, dass deine Laufvariable auch in der Schleife benutzt werden muss:

Delphi-Quellcode:
var
  exePath, fn, imgName, imgPath: string;
  iRow: integer;
begin
  exePath := ExtractFilePath(Application.ExeName);
  for iRow := 0 to Pred(AdvStringGrid1.RowCount) do
  begin
    imgName := AdvStringGrid1.Cells[0, iRow];
    imgPath := AdvStringGrid2.Cells[0, iRow];
    fn := exePath + IncludeTrailingPathDelimiter(imgPath) + imgName + '.jpg';
    if FileExists(fn)
      then AdvStringGrid1.AddDataImage(3, iRow, 8, haBeforeText, vaTop)
      else AdvStringGrid1.Cells[3, iRow] := '? ' + fn;
  end;
end;
Dein Code passt aber irgendwie nicht zu deiner Problembeschreibung, nach der du eigentlich einen Bild-Namen '123.jpg' hast und die zugehörige Bild-Datei in einem bestimmten Ordner suchen und laden möchtest. In deinem Code scheinst du den vollständigen Namen schon zu kennen und Name und Pfad auf zwei Grids verteilt zu haben. Du musst dann ja nicht mehr nach der Datei zu suchen.

Freundliche Grüße
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Ordner mit Liste in TadvStringgrid vergleichen u Thumbna

  Alt 13. Sep 2008, 15:45
Zitat von marabu:
Dein Code passt aber irgendwie nicht zu deiner Problembeschreibung, nach der du eigentlich einen Bild-Namen '123.jpg' hast und die zugehörige Bild-Datei in einem bestimmten Ordner suchen und laden möchtest. In deinem Code scheinst du den vollständigen Namen schon zu kennen und Name und Pfad auf zwei Grids verteilt zu haben. Du musst dann ja nicht mehr nach der Datei zu suchen.
Hallo Marabu, danke für deine Antwort.
Ich möchte nicht die Bild-Dateien eines Ordners laden.
Im AdvStringgrid1 stehen in der ersten Spalte die Dateinamen, diese Namen möchte ich vergleichen mit den Bild-Dateien einens Ordners.
Wenn die Bild-Dateien schon in dem Ordner sind soll in der Zeile des AdvStringgrid1 eine Grafik angezeigt werden, die symbolisiert, dass die Datei lokal vorhanden ist.

Freundliche Grüße
Capo

[EDIT]
Dein Beispiel markiert auch wieder alle Zeilen.
Und für imgName nimmt er nur das erste Bild in der ersten Zeile, ich muss herausfinden wie ich alle Bilder abfrage.
Hotte
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: Ordner mit Liste in TadvStringgrid vergleichen u Thumbna

  Alt 13. Sep 2008, 16:39
Abgesehen von den beiden C&P-Fehlern bei der Zeilenadressierung für imgName sollte der Code den gewünschten Effekt haben. Du musst ihn korrigiert haben, sonst würde der Code nicht übersetzt werden. Vermutlich hast du aus iRow wieder Row gemacht, statt das Grid zu entfernen.

Delphi-Quellcode:
// ...
imgName := AdvStringGrid1.Cells[0, {AdvStringGrid1.}iRow];
// ...
Ist es denn wirklich so, dass du Namen und Pfad in getrennten Grids abgelegt hast?
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Ordner mit Liste in TadvStringgrid vergleichen u Thumbna

  Alt 13. Sep 2008, 17:10
Zitat:
Vermutlich hast du aus iRow wieder Row gemacht, statt das Grid zu entfernen.
genau das war es, nun funktioniert es. Danke...danke..danke!
Zitat:
Ist es denn wirklich so, dass du Namen und Pfad in getrennten Grids abgelegt hast?
Ja, denn ich nutze in dem zweiten Stringgrid der Ordnernamen als Anzeige für den Ordner.
Grüße
Capo
Hotte
  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 22:49 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