Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi KlassenObjekt um Child-Elemente erweitern (https://www.delphipraxis.net/148961-klassenobjekt-um-child-elemente-erweitern.html)

Patrick 11. Mär 2010 11:53


KlassenObjekt um Child-Elemente erweitern
 
Tach,

Ich habe eine Parent-Klasse und würde sie gerne auf eine Child-Klasse erweitern, aber ohne ein komplett neues Objekt zu erzeugen. Die Informationen aus der Parent-Klasse sollen erhalten bleiben.
Delphi-Quellcode:
type
  tparent = class(TObject)
    a : integer;
    constructor Create;
  end;

  tchild = class(tparent)
    b : integer;
    constructor Create;
  end;

{ parent }

constructor tparent.Create;
begin
  inherited;
  a := 6;
end;

{ child }

constructor tchild.Create;
begin
  inherited;
  b := 5;
end;

procedure TForm1.FormCreate(Sender: TObject);
var parent : tparent;
    child : tchild;
begin
  parent := tparent.Create;
  child := tchild(parent).Create;

  parent.a := 0;

  parent := nil;
  child.Free;
//  parent.Free;

end;
Leider bekomme ich beim Freigeben der Klassen nen Zugriffsfehler.
Was mache ich falsch, und/oder was muss ich beachten?

himitsu 11. Mär 2010 11:59

Re: KlassenObjekt um Child-Elemente erweitern
 
Hier mußt du (leider) ein komplett neues Objekt erzeugen und dann die Infos aus der alten Klasse da reinkopieren,

denn die neue Klasse beinhaltet mehr Speicher, welcher in der alten Klasse natürlich nicht existiert.

Wenn vom Speicher (InstanzSize) her nix dazugekommen wäre, dann gäbe es zwar die eine oder andere Möglichkeit, aber dennoch sollte man sowas nicht machen und lieber neu erzeugen, rüberkopieren und das Alte löschen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz