Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Variable Klassentypen (https://www.delphipraxis.net/175270-variable-klassentypen.html)

mcinternet 10. Jun 2013 14:45

Variable Klassentypen
 
Hallo die Gemeinde,

hier mal ein kleine Codebeispiel, welches ich gern variabler hätte:

Delphi-Quellcode:
function NewChildForm(NewFrmName : String) : TChildform;
  var
  MeineForm_Klasse: TComponentClass;
  dynform : TchildForm;
begin
  MeineForm_Klasse := TComponentClass(FindClass('T' + NewFrmName));
        dynform := TChildform(Application.FindComponent(NewFrmName));
        Application.CreateForm(MeineForm_Klasse, dynform);            

  result := dynform;
end;
was ich daraus jetzt bauen möchte, ist eine Art variable Klasse, da die verschiedenen Forms unterschiedliche Klassenvariablen benötigen. Ich habe da so c.a 40 verschiedene Subforms, welche vom Typ TChildForm sind, die wiederum TForm als Base hat.
Das heißt, in der Klassendefinition tummeln sich jetzt jede Menge Variablen etc. wo man langsam den Überblick verliert. Ich stelle es mir so in er Art vor:
Delphi-Quellcode:
function NewChildForm(NewFrmName : String) : [COLOR="Red"]"TFORMCLASS"[/COLOR] - oder wie auch immer;
  var
  MeineForm_Klasse: TComponentClass;
  dynform : [COLOR="Red"]"TClass_was_auch_immer"[/COLOR];
begin
  MeineForm_Klasse := TComponentClass(FindClass('T' + NewFrmName));
        dynform := [COLOR="Red"]TMeineFormklasse[/COLOR](Application.FindComponent(NewFrmName));
        Application.CreateForm(MeineForm_Klasse, dynform);            

  result := dynform;
end;
Also das das was erzeugt wird und auch zurückgegeben wird, variabel ist

Hat da wer eine Idee?

Gruss
McInternet

pustekuchen 10. Jun 2013 15:21

AW: Variable Klassentypen
 
Ich würde sagen, da helfen dir die Generischen Typen weiter.

Klick Mich

Uwe Raabe 10. Jun 2013 15:24

AW: Variable Klassentypen
 
Oder hier: Generics


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:26 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