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.