Thema: Delphi TStrings und Assign

Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

TStrings und Assign

  Alt 17. Jun 2014, 12:28
Hallo,

In TPersistent ist Assign so implementiert:

Delphi-Quellcode:
procedure TPersistent.Assign(Source: TPersistent);
begin
  if Source <> nil then Source.AssignTo(Self) else AssignError(nil);
end;
Ist es also nicht generell so gedacht dass AssignTo von den Nachfahren überschrieben wird?
So kann die Quelle entscheiden wie sie sich dem Zielobjekt zuweist.

TStrings hat aber jetzt direkt Assign überschrieben und ruft inherited Assign quasi nicht mal auf (es sein denn Source wurde nicht von TStrings abgeleitet, aber das kommt wohl sowieso eher selten bis gar nicht vor).

Jetzt stehe ich da mit meiner eigenen Ableitung von TStrings und möchte bestimmen wie eine TStringlist meine Klasse assignen soll und wollte dazu AssignTo überschreiben, aber das wird natürlich jetzt nie aufgerufen und ich hab verloren.

Ist das wirklich so gewollt?
In meinen Augen ist das ein Fehler..
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat