Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ListBox auslesen (https://www.delphipraxis.net/11655-listbox-auslesen.html)

Killer 11. Nov 2003 14:46

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:
if Item >= Count - 1 then
Item gibts gar nicht!?

: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:

neolithos 11. Nov 2003 14:48

Re: ListBox auslesen
 
Tschuldigung!!!

Kleiner Tippfehler

Item = ItemIndex

Killer 11. Nov 2003 14:50

Re: ListBox auslesen
 
Hab ich mir fast gedacht, dass du ItemIndex gemeint hast, jedoch kommt dann:
Listenindex überschreitet das Maximum(-1) :(

neolithos 11. Nov 2003 15:10

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.

Killer 11. Nov 2003 15:26

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:

Killer 11. Nov 2003 16:00

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:
procedure TForm1.Timer3Timer(Sender: TObject);
begin
 Label1.Caption := ListBox1.Items[i];
 while i <= ListBox1.Count-1 do
 inc(i);
end;
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...

Matze 11. Nov 2003 17:03

Re: ListBox auslesen
 
Ich hatte i global deklariert (sieht man am Code). ;)

also, es geht so:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Label1.Caption:=ListBox1.Items[i];
  if i<ListBox1.Count-1 then inc(i);
end;
oder so:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Label1.Caption:=ListBox1.Items[i];
  inc(i);
  if i=ListBox1.Count then Timer1.Enabled:=false;
end;

Matze 11. Nov 2003 17:38

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:

Killer 12. Nov 2003 12:18

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 18:19 Uhr.
Seite 2 von 2     12   

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