Einzelnen Beitrag anzeigen

berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Assign auf Vorfahr-Komponente

  Alt 16. Jun 2009, 08:40
Dein Beispiel lässt sich zwar starten (und hilft mir auch soweit erstmal mein Problem zu lösen, danke), allerdings verstehe ich nicht, warum inherited nicht funktioniert, siehe dieses Beispiel:

Delphi-Quellcode:
  TKlasse1 = class(TComponent)

  ...

procedure TForm1.Button1Click(Sender: TObject);
var
  K1 : TKlasse1;
  K3 : TKlasse3;
begin
  K1 := TKlasse1.Create(Self);
  K1.Tag := 11;

  K3 := TKlasse3.Create(Self);
  K3.X := 5778;
  K3.Y := 135;
  K3.Z := 9788;
  K3.Text := 'Bla';
  K3.Tag := 22;

  K1.Assign(K3);
  MessageDlg(Format('X = %d Y = %d Tag = %d', [K1.X, K1.Y, K1.Tag]), mtWarning, [mbOK], 0); // Ausgabe: 5778 135 11 <-- sollte 22 sein
end;
Klar, in Assign müsste wieder inherited aufgerufen werden, damit Tag kopiert wird, aber dann kommt ja wieder die Exception.

Bleibt scheinbar nix anderes übrig, als in meiner untersten Klasse die Werte von TComponent per Hand zu kopieren.

Danke auf jeden Fall schonmal an die Antworter
  Mit Zitat antworten Zitat