Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Durchreichen von Const- / Destruktoren (https://www.delphipraxis.net/136013-durchreichen-von-const-destruktoren.html)

himitsu 22. Jun 2009 12:21

Re: Durchreichen von Const- / Destruktoren
 
Wenn ich mir das hier so durchlese, dann wäre das soch eine Aufgabe für ein nettes Interface.

Objekte über Modulgrenzen hinweg zu nutzen, ist nunmal nicht wirklich optimal machbar, da man überall die RTTI und womöglich noch den Speichermanager umgehen muß.


aber das Problem mit dem Constructor: leg dir eine Funktion an, welche intern das Objekt erstellt und dann zurück gibt ... diese mußt du dann nur noch in der DLL aufrufen.

Blup 22. Jun 2009 15:19

Re: Durchreichen von Const- / Destruktoren
 
Wenn ich mir das so durchlese, ... dann verstehe ich immer noch nicht wo eigentlich das Problem ist?
TComponent hat bereits einen virtuellen Konstruktor, damit kann man jede abgeleitete Klasse erstellen.
Delphi-Quellcode:
type
  TComponentClass = class of TComponent;

var
  vClass: TClass;
  vObject: TComponent;

begin
{...}
  vClass := TEdit;
  vObject := TComponentClass(vClass).Create(Owner);
  vObject.Parent := Parent;
  if vObject is TEdit then
    TEdit(vObject).Text := {...}
Das DLL-Problem ist wieder ein ganz anderes und hat doch mit der eigentlichen Frage nichts zu tun.

Highttower 22. Jun 2009 15:26

Re: Durchreichen von Const- / Destruktoren
 
Hallo zusammen,
vielen dank für die vielen antworten. Mein Problem war das mir nicht klar war, das ich in einer virtuellen Methode inherited auf rufen kann ohne das Keyword: override vorher an die Funktion / Methode / Prozzedeur setzen zu müssen. Mein Verständnis von override, war das man nur dadurch inherited rufen kann aber dann nicht noch mal was ich sehr unpraktisch fand. Vorhin in der Mensa mit nem Kumpel geschnackt, der hat Licht ins Dunkle gebracht.

Vielen Dank,

Tobi


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:08 Uhr.
Seite 2 von 2     12   

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