Einzelnen Beitrag anzeigen

quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Assign auf Vorfahr-Komponente

  Alt 16. Jun 2009, 11:01
Zitat von Blup:
TComponent implementiert kein eigenes Assign (um z.B. den Tag zu übernehmen).
Deshalb wird Assign von TPersistent aufgerufen, was zur Exception führt.
Wenn deine Komponente auch den Tag übernehmen soll, dann z.B. so:
Delphi-Quellcode:
procedure TMeineKlasse1.Assign(Source: TPersistent);
begin
  if Source is TComponent then
    Tag := TComponent(Source).Tag
  else
    inherited; {Exception auslösen}

  if Source is TMeineKlasse1 then
  begin
    X := TMeineKlasse1(Source).X;
    Y := TMeineKlasse1(Source).Y;
  end;
end;
Das würde natürlich bei allen Klassen <> TComponent eine Exception generieren.
Edit: Zitat eingefügt.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat