AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Überforderte For-Schleife oder was?

Ein Thema von Andreas L. · begonnen am 5. Aug 2004 · letzter Beitrag vom 6. Aug 2004
 
Andreas L.
(Gast)

n/a Beiträge
 
#1

Überforderte For-Schleife oder was?

  Alt 5. Aug 2004, 13:33
Hi,
ich lasse mit folgender Procedure einen Ordner einlesen. Es wird ein Datei-Filter verwendet:

Delphi-Quellcode:
procedure GetAllFilesEM(Path, ExtMask: String; List: TStrings;
  SubFolder: Boolean);
var
  Attrib, k: Integer;
  Search: TSearchRec;
begin
  Attrib := faArchive + faReadOnly + faHidden;

  if Path[Length(Path)] <> '\then Path := Path + '\';

  with TStringList.Create do
  try
    CommaText := ExtMask;

    for k := 0 to Count - 1 do
    if FindFirst(Path + '*.' + Strings[k], Attrib, Search) = 0 then
      repeat
        List.Add(AnsiUpperCase(Path + Search.Name));
      until FindNext(Search) <> 0;

    FindClose(Search);
  finally Free end;

  if SubFolder then
  begin
    if FindFirst(Path + '*.*', faDirectory, Search) = 0 then
    begin
      repeat
        if ((Search.Attr and faDirectory) = faDirectory) and
          (Search.Name[1] <> '.') then
          GetAllFilesEM(Path + Search.Name, ExtMask, List, SubFolder);
      until FindNext(Search) <> 0;

      FindClose(Search);
    end;
  end;
end;
Der Aufruf:
Delphi-Quellcode:
procedure TForm4.Button1Click(Sender: TObject);
begin
 if jvdirectoryedit1.text='then
  begin
   ShowMessage('Bitte einen Grafikordner angeben!');
  end
   else
    if SpinEdit1.Text='0then
     begin
      ShowMessage('Der Interval muss min. 1 Sekunde betragen!');
     end
    else
     begin
     form1.timer1.interval:=strtoint(spinedit1.Text + '000'); //000 dazu zählen da angabe in milisekunden und nicht in sekunden
     GetAllFilesEM(jvdirectoryedit1.Text, 'bmp, gif, jpg, ico, jpeg, png', form1.ListBox1.Items, false); //dateien einlesen
     form1.timer1.enabled:=true;
     close;
     end;
end;
Das alles geschieht auf form4. die ganzen dateinamen werden in eine listbox auf form1 geladen, dies funktioniert auch.

Wenn ich nun folgende Procedure ausführe dauert es etwas und das Programm stürzt ab, ohne Meldungen...

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
 i : Integer;
begin
  for i:=0 to Listbox1.Count-1 do
   begin
    Image1.Picture.LoadFromFile(listbox1.Items.Strings[i]);
   end;
end;
Wo liegt mein fehler?

Greetz und thx
  Mit Zitat antworten Zitat
 


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:22 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-2025 by Thomas Breitkreuz