Einzelnen Beitrag anzeigen

teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#8

Re: Eigene Komponente: Problem mit Property Lines: TStrings.

  Alt 2. Dez 2005, 09:19
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
  Mit Zitat antworten Zitat