AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Objekt anhand der Klassenbezeichnung erzeugen
Thema durchsuchen
Ansicht
Themen-Optionen

Objekt anhand der Klassenbezeichnung erzeugen

Ein Thema von SWE · begonnen am 10. Jun 2008 · letzter Beitrag vom 23. Jun 2008
Antwort Antwort
Pascal P

Registriert seit: 16. Nov 2007
14 Beiträge
 
#1

Re: Objekt anhand der Klassenbezeichnung erzeugen

  Alt 20. Jun 2008, 14:58
Hi zusammen!
Ich versuche gerade ähnliches zu machen. Allerdings habe ich noch ein Problem.
Das Objekt erstellen ist ja so kein Problem. Allerdings wird nur mein Constructor der Basisklasse aufgerufen und nicht der des eigentlichen Objektes.

Delphi-Quellcode:
TBaseObjekt = class (TPersistent)
public
    strName : String;
    constructor Create; overload;
end;

TBaseObjectClass = class of TBaseObject;

TExtendedObjekt = class (TBaseObjekt)
public
    constructor Create; overload;
end;

constructor TBaseObjekt.Create;
begin
  Self.strName := 'Base';
end;

constructor TExtendedObjekt.Create;
begin
  Self.strName := 'Extendet';
end;

procedure Test();
var
    cls : TPersistentClass;
    obj : TBaseObject;
begin
    // Klassenreferenz ermitteln
    cls := FindClass('TExtendedObjekt');
    // Objekt-Instanz erzeugen
    obj := TBaseObjectClass( cls ).Create();
    // Test-Ausgabe
    ShowMessage(TExtendedObjekt(obj).strName);
    // Die Ausgabe sollte dann Base sein
end;
Das Baseobjekt stellt bei mir eine eigene Classroot dar von der ich alles ableite. Ich weiss lediglich mittels eines Strings, hier TExtendedObject' welches Object ich erzeugen muss/will. Also kann ich mich nur auf den allgemeinen kleinsten Nenner, die TBaseObject, beziehen. Das erstellte Objekt ist auch vom Typ TExtendedObject. Jedoch eben nicht mit den für dieses Object initialisierten Werten, sondern denen der Basisklasse.

Hoffe konnte verständlich machen um was es mir geht und hoffe auf Hilfe.
Liebe Grüsse Pascal
  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 14:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz