Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Listbox: Letzen Eintrag erkennen? (https://www.delphipraxis.net/76507-listbox-letzen-eintrag-erkennen.html)

mlspider 5. Sep 2006 15:38


Listbox: Letzen Eintrag erkennen?
 
Ich habe wieder einmal ein Verständnisproblem. Ich versuche eine Schleife zu durchlaufen und möchte nachdem der letzte Eintrag einer Listbox durchlaufen wurde, einen Prozess in Gang setzten.

Hier der Schleifenaufruf:

Delphi-Quellcode:
procedure TBrennWizard3.Button4Click(Sender: TObject);
var
  i: Integer;
begin
 if ListBox1.Count > 0 then begin
 for i := 0 to ListBox1.Items.Count - 1 do
 ListBox1.ItemIndex:= 0;
 ListBox1Click(nil);
 Timer4.Enabled:=True;
 end else begin
 Timer4.Enabled:=False;
 Label9.Visible:=False;
 BurnCD;
 Timer2.Enabled := True;
end;
end;

procedure TBrennWizard3.Timer4Timer(Sender: TObject);
begin
 Timer4.Enabled:=False;
 mcdb.InsertFile('\', Edit1.Text);
 ListBox1.DeleteSelected;
 Button4Click(nil);
end;
Hierbei wird bei jedem Durchlauf der erste Eintrag entfernt und der nächste neue Eintrag, der nun an erster Position gerutscht ist, ausgewählt. Leider bekomme ich als Quittung den berühmten
Satz: "Listenindex überschreitet das Maximum (-1)". Wo könnte der Fehler liegen?

TypusMensch 5. Sep 2006 15:55

Re: Listbox: Letzen Eintrag erkennen?
 
Eine Listbox, ein Timer, ein Button. Ich bekomme kein Error. Ändert sonst irgendeine Funktion deine Listbox?

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var i:integer;
begin
if ListBox1.Count > 0 then begin
for i := 0 to ListBox1.Items.Count - 1 do
ListBox1.ItemIndex:= 0;
ListBox1Click(nil);
Timer4.Enabled:=True;
end else begin
Timer4.Enabled:=False;
end;
end;

procedure TForm1.Timer4Timer(Sender: TObject);
begin
Timer4.Enabled:=False;
ListBox1.DeleteSelected;
Button4Click(nil);
end;

newuser01 5. Sep 2006 16:06

Re: Listbox: Letzen Eintrag erkennen?
 
Zitat:

nachdem der letzte Eintrag einer Listbox durlaufen wurde, einen Prozess in Gang setzten.
vielleicht hilft dir ja das weiter

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin


   for i := 0 to ListBox1.Items.Count do
   begin


        if i = ListBox1.Items.Count then
        begin
        MessageDlg('letzte Eintrag der Listbox wurde durchlaufen', mtInformation, [mbOK], 0);
        end
          else
              begin
              //
        end;

   end;

end;

Gruß
Holger

mlspider 5. Sep 2006 16:11

Re: Listbox: Letzen Eintrag erkennen?
 
Danke an euch Beiden. Ich hatte irrtümlicher Weise eine Listbox einer anderen Unit angesprochen. :wall: Oh man, nach 8 Stunden ist irgend wann mal Schluß. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:37 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