Einzelnen Beitrag anzeigen

Koller

Registriert seit: 22. Mär 2005
59 Beiträge
 
#1

Problem mit verketteter Liste

  Alt 14. Jan 2007, 19:06
Ich schreibe soeben die Hinzufügen-Routine einer verketteten Liste (TParameterList):
Delphi-Quellcode:
type
  PItem = ^TItem;
  TItem = record
    Data: TParameter;
    Next: PItem;
  end;

procedure TParameterlist.AddAtEnd(AParameter: TParameter);
var NewItem: PItem;
begin
  New(NewItem);
  //das hier tritt immer wieder ein, auch beim zweiten und dritten mal O_o
  if (FFirst = nil) then
  begin
    showmessage('1');
    NewItem.Data := AParameter;
    NewItem.Next := nil;
    
    //warum ist FFirst hier nach immer noch nil?
    FFirst := NewItem;
    FLast := NewItem;

    Dispose(NewItem);
  end
  //dieser Block wird NIE durchlaufen
  else begin
    showmessage('2');
    NewItem.Data := AParameter;
    NewItem.Next := nil;

    FLast.Next := NewItem;
    FLast := NewItem;

    Dispose(NewItem);
  end;

  inc(FCount);
end;

//vlt. liegt's am constructor irgendwie???
constructor TParameterlist.Create;
begin
  FFirst := nil;
  FLast := nil;
  FCurrently := nil;

  FCount := 0;
end;
Das Problem ist mit Kommentaren versehen.
  Mit Zitat antworten Zitat