Entwickler-Ecke
Sonstiges (Delphi) - geändert - Schleifenfrage
kežman - Do 10.02.05 16:28
Titel: geändert - Schleifenfrage
Hey Leute!
Habe eine mir als Neuling unverständliche Fehlermeldung beim Compilen bekommen.
Der Wert der Variable i soll angeblich niemals benutzt werden.
Nur verstehe ich nicht was hier falsch sein soll?
Werkle wiedermal seit einigen Stunden an so einem Kleinkram rum - das hindert ungemein :(
Ich hoffe jemand erfahrenes kann mir helfen!
Danke!
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43:
| procedure TForm1.btOeffnenClick(Sender: TObject); var i : integer; j : integer; begin i := 0; hDaten := tDaten.create; hDaten.create; with self do begin MaxVereine; MaxSpieler; end;
if ( VeMax > 0 ) then
begin if( Frame21.TreeView1.Selected = nil ) then begin with Frame21.TreeView1.Items.AddFirst( nil, 'Datensatz' ) do begin Selected := true; end; end; end;
while(i <= VeMax) do self.GetVerein(i, hVerein); with Frame21.TreeView1.Items.AddChildFirst( Frame21.TreeView1.Selected, hVerein.Name ) do begin MakeVisible; Selected := true; end; i:=hVerein.ID; inc(i); j:=0; while (j <= SpMax) do begin self.getSpieler(j, hSpieler); Frame21.TreeView1.Items.AddChild(Frame21.TreeView1.Selected, hSpieler.Nachname + ', ' + hSpieler.Nachname); inc(j); end; end; |
retnyg - Do 10.02.05 16:34
Zitat: |
Der Wert der Variable i soll angeblich niemals benutzt werden. |
das ist aber nur ein hinweis des kompilers und keine fehlermeldung. dein programm sollte trotzdem laufen. die fehlersuche kannst du dir also sparen.
kežman - Do 10.02.05 16:38
retnyg hat folgendes geschrieben: |
Zitat: | Der Wert der Variable i soll angeblich niemals benutzt werden. |
das ist aber nur ein hinweis des kompilers und keine fehlermeldung. dein programm sollte trotzdem laufen. die fehlersuche kannst du dir also sparen. |
Ja, schon ... nur entsteht dadurch wohl die Endlosschleife, die mein Programm abstürzen lässt :/
Sprint - Do 10.02.05 16:40
retnyg hat folgendes geschrieben: |
die fehlersuche kannst du dir also sparen. |
Da fehlt doch bestimmt ein begin nach
while(i <= VeMax) do.
Karlson - Do 10.02.05 16:42
Kanns sein dass du die Variable i doppelt benutzt. oder was tut denn das hier:
Delphi-Quelltext
1: 2: 3:
| i:=hVerein.ID; inc(i); j:=0; |
Kann mir nicht vorstellen, dass das so richtig ist :gruebel:
kežman - Do 10.02.05 16:53
Karlson hat folgendes geschrieben: |
Kanns sein dass du die Variable i doppelt benutzt. oder was tut denn das hier:
Delphi-Quelltext 1: 2: 3:
| i:=hVerein.ID; inc(i); j:=0; |
Kann mir nicht vorstellen, dass das so richtig ist :gruebel: |
Das war nur ein Test. Vergaß es rauszunehmen.
Trotzdem funktioniert das nicht.
Der gepostete Code ist der gesamte Bereich in dem i vorkommt.
Alle whiles haben u.A. auch ein das folgende do
retnyg - Do 10.02.05 16:55
tip: setze breakpoints. der debugger bleibt dann in deiner endlosschleife hängen und dann kannst du mit einzelschritt schauen warum das so ist.
Karlson - Do 10.02.05 17:13
Sprint hat die Lösung allerdings bereits gepostet... es fehlt ein Begin
Zitat: |
orginal geschrieben von Sprint
Da fehlt doch bestimmt ein begin nach while(i <= VeMax) do.
|
nur so nebenbei stimmt die Compilerwarnung. I dient nur als Zählvariable, der Wert wird zwar verglichen und auch hochgezählt, aber niemals benutzt :)
Diese Compilerwarnung gehört allerdings wohl eher in die Kategorie "Danke für den Tipp, aber passt schon ;)"
Sprint - Do 10.02.05 17:14
Sonst würde Inc(I) irgendwie keinen Sinn machen...
Karlson - Do 10.02.05 17:20
schon die while schleife würde keinen sinn machen, da VeMax ja nirgends verändert wird. VeMax ist wohl die anzahl der Vereine, und wenn diese 0 ist, kann die nächste Zeile schwer ausgeführt werden, es sei denn VeMax wird innerhalb der whileschleife neu abgefragt. Oder ist VeMax ein definierter Bezeichner oder eine Variable?
Sprint - Do 10.02.05 17:23
Karlson hat folgendes geschrieben: |
Diese Compilerwarnung gehört allerdings wohl eher in die Kategorie "Danke für den Tipp, aber passt schon ;)" |
Passt eher zu "Der Compiler war mal wieder schlauer als ich" Kategorie.
kežman - Do 10.02.05 17:27
Hehe alles klar ...
Lag an dem Begin ... hab es nur flüchtig lesen können, da ich gerade kurz jemanden abholen musste.
Danke sehr - ziemlich blöd gelaufen :oops: :oops: :oops:
kežman - Do 10.02.05 17:53
wech
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!