![]() |
KlassenTyp und nicht Instanz übergeben
Hallo liebe DP'ler,
ich überlege grade, wie ich meine Idee am besten umsetze. Vereinfacht:
Delphi-Quellcode:
Mein Problem ist ja, das in der Prozedur ConfigFailOutput eine Instanz von TCFC erwartet wird und nicht einfach die Klasse. Ich brauche allerdings an der Stelle keine Objekte, da nur eine classfunction aufgerufen wird, was kann ich machen?
type
// Basisklasse TConfigFailCode = class class function CodeMessage : String; dynamic; abstract; end; // hiervon gibt es einige andere Fehlermeldungs Klassen TCFCMailbox = class(TConfigFailCode) class function CodeMessage : String; override; end; // TCFC = TConfigFailCode; (Synonym) procedure TForm1.ConfigFailOutput(Code : TCFC); begin Showmessage(Code.CodeMessage); end; // Hier rufe ich auf: begin if A < B then ConfigFailOutput(TCFCMailbox); end; |
AW: KlassenTyp und nicht Instanz übergeben
Ungetestet:
Delphi-Quellcode:
type
TConfigFailCodeClass = class of TConfigFailCode; procedure TForm1.ConfigFailOutput(Code : TConfigFailCodeClass); begin Showmessage(Code.CodeMessage); end; |
AW: KlassenTyp und nicht Instanz übergeben
Ah super, genau das "class of" habe ich gesucht. Tolle Sache, damit kann man doch bestimmt auch prima eine Abstrakte Fabrik umsetzen.
Klappt alles prima, Danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 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