Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   FindClass schlägt fehl bei Mix VCL/FMX bzw. FMX-Komponenten ableiten (https://www.delphipraxis.net/204154-findclass-schlaegt-fehl-bei-mix-vcl-fmx-bzw-fmx-komponenten-ableiten.html)

Rainer Wolff 30. Apr 2020 06:59

FindClass schlägt fehl bei Mix VCL/FMX bzw. FMX-Komponenten ableiten
 
Hallo,

eigentlich sind es zwei verschiedene Lösungen für das selbe Problem, die ich suche. Damit es nicht zu komplex wird, mache ich 2 Threads auf.

Ich habe jahrelang eine Komponente im Einsatz, die von Pagecontrol abgeleitet ist und in die ich Unterformulare einhänge. Die Unterformulare werden über RegisterClass im initialization-Abschnitt registriert und über ein Konfigurationsfile dynamisch mittels FindClass erzeugt und in das Pagecontrol eingehängt. Alles VCL. Soweit ist auch alles gut.

Nun neue Anforderungen, neues Design, also versucht man mal was mit FMX, aber schrittweise, ich will ja nicht gleich alles von Grund auf neu machen müssen. Ich benutze den Firemonkey-Container von Parnassus. Ein VCL-Container-Formular, einen Firemonkey Container, darin ein FMX-Formular mit Komponenten, passt.

Nun brauche ich aber ein numerisches Eingabefeld. Gibt ja TNumberbox in FMX. Plötzlich bekomme ich Probleme bein Programmstart, da meine Formulare über FindClass nicht mehr gefunden werden??

Sobald ein "uses FMX.Numberbox" im Formular drin ist, schlagen die ganzen FindClass-Aufrufe für meine VCL-Formulare fehl. Den internen Mechanismus hinter RegisterClass/Findclass habe ich zwar angeschaut, aber noch nicht verstanden, was da in welchen Gruppen registriert wird.

Meine Versuche, dann eine eigene Numberbox zu erstellen, beschreibe ich in einem separaten Thread.

Uwe Raabe 30. Apr 2020 08:29

AW: FindClass schlägt fehl bei Mix VCL/FMX bzw. FMX-Komponenten ableiten
 
Du musst vor Aufruf von
Delphi-Quellcode:
FindClass
erst die passende Class Group aktivieren:
Delphi-Quellcode:
ActivateClassGroup(Vcl.StdCtrls.TLabel)
, wobei für Vcl.StdCtrls.TLabel jede beliebige, registrierte VCL-Klasse funktioniert.

Rainer Wolff 30. Apr 2020 09:30

AW: FindClass schlägt fehl bei Mix VCL/FMX bzw. FMX-Komponenten ableiten
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1463192)
Du musst vor Aufruf von
Delphi-Quellcode:
FindClass
erst die passende Class Group aktivieren:
Delphi-Quellcode:
ActivateClassGroup(Vcl.StdCtrls.TLabel)
, wobei für Vcl.StdCtrls.TLabel jede beliebige, registrierte VCL-Klasse funktioniert.

Danke, das hat geholfen. Wie kommt man denn auf so was?


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