AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein class procedure aufrufen, wenn klasse zur designzeit noch nicht bekannt
Thema durchsuchen
Ansicht
Themen-Optionen

class procedure aufrufen, wenn klasse zur designzeit noch nicht bekannt

Ein Thema von hyype · begonnen am 19. Jan 2012 · letzter Beitrag vom 19. Jan 2012
 
hyype

Registriert seit: 5. Nov 2008
97 Beiträge
 
Delphi XE2 Professional
 
#1

class procedure aufrufen, wenn klasse zur designzeit noch nicht bekannt

  Alt 19. Jan 2012, 14:17
hallo

ich habe mehrere klassen, welche eine class function get_irgendwas haben, die aber bei allen was anderes macht!
diese instanziere ich, nutze ihre funktionalität und gebe sie frei.

und nun möchte ich mir während dieses prozesses eine klasse von denen merken (aber nicht das objekt, was eine instanz der klasse darstellt, weil das ist freigegeben, sondern die klasse halt) und von dieser klasse die get_irgendwas methode aufrufen.

wenn meine klasse beispielsweise TTestklasse heißt
bekäme ich bei self.classname 'TTestklasse' zurück
und bei self.classtype TTestklasse vom typ TClass

ich möchte nun TTestklasse.get_irgendwas aufrufen.
das macht der compiler leider nicht mit, logisch.

der compiler prüft, ob die vorm punkt stehende klasse die methode überhaupt hat. da die vorm . stehende klasse zur designzeit noch nicht feststeht, kann er das nicht mit sicherheit sagen. ICH kann es aber mit sicherheit sagen!

mir ist schon klar, dass ich nicht zur laufzeit delphi-code erzeugen kann, der dann compiliert und ausgeführt wird, was ja von der sache her das ist, was ich möchte..

ich möchte keine funktion schreiben a la
Delphi-Quellcode:
if s = 'TTestklassethen
  result := TTestklasse.get_irgendwas;
hier mal ein wenig code, der so nicht funktioniert, aber der evtl veranschaulicht, was ich will:
Delphi-Quellcode:
var my_class:tclass;
    t1 : ttestklasse1;
    t2 : ttestklasse2;
begin
  t1 := ttestklasse1.create;
  t2 := ttestklasse2.create;
...
  my_class := t1.classtype;
  //oder eben t2.classtype
  //das soll mich hier nicht interessieren sondern erst ganz am ende
...
freeandnil(t1);
freeandnil(t2);
...
showmessage(my_class.get_irgendwas);
end;
die methode get_irgendwas würde der compiler jetzt in TClass suchen, nicht finden und rummeckern. er soll aber die methode der klasse ausführen, deren typ in my_class gekapselt ist

das MUSS doch irgendwie gehen!!!

DANKE euch schonmal
  Mit Zitat antworten Zitat
 


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 15:08 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 by Thomas Breitkreuz