![]() |
Re: ListBox auslesen
Danke für den freundlichen Empfang :-D
Tja das Problem hatte ich eben auch, dass die Schleife so schnell durchlaufen ist, dass ich immer den letzten Eintrag gesehen habe. @Matze: Bei deinem Quelltext zeigt er immer nur den 1ten eintrag an! @neolithos: Was meinst du mit
Delphi-Quellcode:
Item gibts gar nicht!?
if Item >= Count - 1 then
:wiejetzt: Hätte übrigens nicht erwartet, gleich so mit Antworten überhäuft zu werden :mrgreen: Schön wär allerdings, wenn jemand noch ne funktionstüchtige Schleife posten könnte :angle2: |
Re: ListBox auslesen
Tschuldigung!!!
Kleiner Tippfehler Item = ItemIndex |
Re: ListBox auslesen
Hab ich mir fast gedacht, dass du ItemIndex gemeint hast, jedoch kommt dann:
Listenindex überschreitet das Maximum(-1) :( |
Re: ListBox auslesen
Ist überhaupt was in der Liste drinn?
Sonst schick mal dein Projekt bzw. den Ausschnitt falls es zu groß oder wichtig ist (per P.M. versteht sich). Rein von der logik sollte es gehen. |
Re: ListBox auslesen
Danke jetzt funktioniert es endlich (Denkfehler war schuld).
Der Quellcode von Matze funktioniert, ich hab jedoch nen Fehler gemacht, indem ich jedesmal i mit 0 deklariert hab, deshalb hat er nur den 1ten Eintrag angezeigt. Jetzt hab ich die Variable einfach global gemacht und ihr einen Anfangswert zugewiesen und siehe da: es funktioniert :) Vielen Dank für eure Mühe!! :cyclops: |
Re: ListBox auslesen
Hm aber mit dem Quelltext gibts noch Probleme.
Und zwar iss keine "Sperre" eingebaut, d.h. Delphi zählt per inc die Variable i immer weiter hoch und irgendwann kommt der Punkt, wo i größer ist als der ListBox.Count und dann kommt der Fehler! Ich hab versucht, per while-Schleife eine Sperre einzubauen, hat nicht ganz funktioniert, hier der Code:
Delphi-Quellcode:
Hm hab scho wieder nen kleinen Fehler entdeckt und zwar das = vor ListBox1.Count aber wenn ich das wegmache, bleibt der Label1.Caption Eintrag nach ein paar Änderungen stehen. Komisch...
procedure TForm1.Timer3Timer(Sender: TObject);
begin Label1.Caption := ListBox1.Items[i]; while i <= ListBox1.Count-1 do inc(i); end; |
Re: ListBox auslesen
Ich hatte i global deklariert (sieht man am Code). ;)
also, es geht so:
Delphi-Quellcode:
oder so:
procedure TForm1.Timer1Timer(Sender: TObject);
begin Label1.Caption:=ListBox1.Items[i]; if i<ListBox1.Count-1 then inc(i); end;
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin Label1.Caption:=ListBox1.Items[i]; inc(i); if i=ListBox1.Count then Timer1.Enabled:=false; end; |
Re: ListBox auslesen
Achja, nochwas zu dem Fehlerchen in deinem Code:
Die while-Schleife wird bei dir jede Sekunde (oder was eingestellt ist) ausgeführt ==> kann nicht gehen :mrgreen: |
Re: ListBox auslesen
Stimmt danke, auf die If Lösung bin ich auch grade gekommen, ich hab es mir fast gedacht... :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:43 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