![]() |
AW: TForm Klasse dynamisch erstellen ja nachdem ob Klasse vorhanden ist
Zitat:
Du könntest dann einfach aus deinen Menüpunkten immer die selbe Formklasse verwenden und übergibst beim Create einen Parameter, auf den die Form reagieren kann. Je nach Parameter, wird der passende Frame genutzt. |
AW: TForm Klasse dynamisch erstellen ja nachdem ob Klasse vorhanden ist
Zitat:
|
AW: TForm Klasse dynamisch erstellen ja nachdem ob Klasse vorhanden ist
Hier ein einfaches Beispiel:
Delphi-Quellcode:
procedure TForm1.bt1Click(Sender: TObject);
var F: TPersistentClass; D:TForm; begin F := FindClass('TForm2'); if Assigned(F) then begin Application.CreateForm(TComponentClass(F) , D); D.Show; end; end; |
AW: TForm Klasse dynamisch erstellen ja nachdem ob Klasse vorhanden ist
Zitat:
Wenn ich so darüber Nachdenke, sollte vielleicht erstmal geklärt werden, ab wann die Anwendung weiß, welche Maske erforderlich ist. Irgendwann muss irgendeine passende Information in der Anwendung ja vorhanden sein. |
AW: TForm Klasse dynamisch erstellen ja nachdem ob Klasse vorhanden ist
Ich habe noch eine Typenprüfung hinzugefügt:
Delphi-Quellcode:
uses
System.TypInfo; ... procedure TForm1.bt1Click(Sender: TObject); var F: TPersistentClass; D:TForm; begin F := FindClass('TForm2'); if Assigned(F) and PTypeInfo(F.ClassInfo).TypeData^.ClassType.InheritsFrom(TCustomForm) then begin Application.CreateForm(TComponentClass(F) , D); D.Show; end; end; |
AW: TForm Klasse dynamisch erstellen ja nachdem ob Klasse vorhanden ist
Zitat:
Delphi-Quellcode:
type
TMainFormClass = class of TMainForm; var MainFormClass: TMainFormClass; PersistentClass: TPersistentClass; begin MainFormClass := TMainForm; PersistentClass := GetClass('TTolleNeueForm'); if PersistentClass <> nil then MainFormClass := TMainFormClass(PersistentClass); myForm := MainFormClass.Create(Application); end; |
AW: TForm Klasse dynamisch erstellen ja nachdem ob Klasse vorhanden ist
gelöscht
|
AW: TForm Klasse dynamisch erstellen ja nachdem ob Klasse vorhanden ist
Zitat:
Delphi-Quellcode:
if Assigned(PersistentClass) then
begin Assert(PersistentClass.InheritsFrom(TMainForm)); MainFormClass := TMainFormClass(PersistentClass); end; |
AW: TForm Klasse dynamisch erstellen ja nachdem ob Klasse vorhanden ist
Zitat:
Hab mich in den letzten Tagen mehr mit Klassen und insbesondere auch RTTI auseinander gesetzt. Wilkommen in einer neuen Abstraktionsebene :-D Mein Kopf raucht, aber auf eine gute weise :-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:30 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