AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi KlassenObjekt um Child-Elemente erweitern
Thema durchsuchen
Ansicht
Themen-Optionen

KlassenObjekt um Child-Elemente erweitern

Ein Thema von Patrick · begonnen am 11. Mär 2010 · letzter Beitrag vom 11. Mär 2010
Antwort Antwort
Patrick

Registriert seit: 15. Sep 2003
184 Beiträge
 
Delphi 2010 Professional
 
#1

KlassenObjekt um Child-Elemente erweitern

  Alt 11. Mär 2010, 12:53
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?
Genieße jede Minute deines Lebens, denn sie wird nicht wieder kommen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: KlassenObjekt um Child-Elemente erweitern

  Alt 11. Mär 2010, 12:59
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.
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:02 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