Thema: Delphi Frage zu linearer Liste

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.214 Beiträge
 
Delphi 12 Athens
 
#11

Re: Frage zu linearer Liste

  Alt 1. Feb 2009, 18:58
So richtig wie im Tut isses nicht wirklich

In Liste steht doch das erste Element deiner Liste,
wenn du nun diese Variable in einer Schleife direkt benutzt und deren Inhalt (per Liste := Liste.next; ) änderst, dann änderst du doch auch deren Inhalt
und wenn die schleife bis NIL ( while tempListe <> nil do ) geht, dann steht danach NIL in Liste drin und deine Liste ist leer.

du mußt also zur Benutzung deren Wert in eine 2 Variable speichern, deren Inhalt sich problemlos ändern kann ... somit bleibt der Inhalt der Variable Liste unverändert.
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject); //Button für Listenausgabe
var tempListe: PListe;
begin
  tempListe := Liste;
  while tempListe <> nil do begin
    Listbox1.Items.Add(inttostr(tempListe.key) + ': ' + tempListe.text);
    tempListe := tempListe.next;
  end;
end;
PS: die Variable i könnte einen verständlicheren Namen vertragen (z.B. NaechsteID, LetzteID, NextID oder so)

PSS: die Variable q ist doch eigentlich nur 'ner temoräre lokale Variable und sollte deswegen direkt in den Prozeduren (Button1Click, Button3Click, Button4Click und Button5Click) definiert sein.


dein q entspricht hlp : PMYELEMENT; in dem Tut
und tempListe entspricht sozusagen dem wrk : PMYELEMENT;
$2B or not $2B
  Mit Zitat antworten Zitat