Einzelnen Beitrag anzeigen

DaCoda

Registriert seit: 21. Jul 2006
Ort: Hamburg
143 Beiträge
 
Delphi 12 Athens
 
#5

AW: Verschachtelte While- Schleife funktioniert nicht

  Alt 28. Sep 2024, 00:35
Wenn deine Delphiversion es unterstützt, dann schau dir mal IoUtils an.
So wie himitsu schon geschrieben hat ist der Weg den du da gehst recht "Oldschool".

Und ein wenig Code formatieren wäre auch nicht verkehrt. Wenn dein Delphi das unterstützt und es aktiviert ist einfach mal Ctrl-D drücken

Generell sollte das so aber gehen:
Code:
procedure TForm29.Timer1Timer(Sender: TObject);
var
  j, i: integer;
  LookFor: string;
  f: file;
  pausieren: boolean;
begin
  Timer1.Enabled := False;
  try //T
    pausieren := false;
    j := 0;
    while ((j < (DriveCombobox1.GetCount)) and (not (pausieren))) do begin //B
      DriveCombobox1.itemindex := j;
      Inc(j);
      FileListBox1.Directory := DriveCombobox1.text[1] + ':/';
      LookFor := 'KEYxyz.txt';
      FileListBox1.Update;
      i := 0;
      while ((i < (FileListBox1.Count)) and (not (pausieren))) do begin //A
        if (FileListBox1.Items[i] = LookFor) then begin //Showmessage('gefunden');
          FileNom := FileListBox1.Directory + LookFor;
          if timerstarter = true then begin
            Laden();
            timerstarter := false;
          end;
          pausieren := true;
          Showmessage('in pausieren drin');
        end;
        Inc(i);
      end; //A

      if ((j = DriveCombobox1.GetCount) and (not (pausieren))) then begin
        Application.Terminate; // Einfach so wegwürgen ist nicht schön. Besser einen kleinen InfoDialog und dann ein Close ???
      end;
    end; //B
  except //T
    on EInOutError do begin
      Application.Terminate; // Das selbe... Einfach so wegwürgen ist nicht schön. Besser einen kleinen InfoDialog und dann ein Close ???
    end;
  end;
  Timer1.Enabled := True;
end;
Debuggers don’t remove bugs, they only show them in slow-motion.

Geändert von DaCoda (28. Sep 2024 um 00:52 Uhr)
  Mit Zitat antworten Zitat