Zitat von
Muetze1:
Wozu die Unterscheidung? Assign(Nil) löscht auch die Liste, also einfach nur FLines.Assign(NewLines);
Assign(Nil) auf einer TStringList-Instanz führt zu einer EConvertError-
Exception, da TStrings.Assign an TPersistent.Assign weitergeleitet wird, wenn kein TStrings ankommt. Auszug aus classes.pas von D3 (sieht ähnlich aus in D6):
Delphi-Quellcode:
procedure TStrings.Assign(Source: TPersistent);
begin
if Source is TStrings then
begin
BeginUpdate;
try
Clear;
AddStrings(TStrings(Source));
finally
EndUpdate;
end;
Exit;
end;
inherited Assign(Source);
end;
Man könnte höchstens darüber diskutieren, ob man durch das Abfangen von Nil den 'unsachgemäßen' Gebrauch der Komponente verschleiert, aber das ist Geschmackssache.
Gruß, teebee