Einzelnen Beitrag anzeigen

Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#1

Feststellen ob Anwendung die VCL verwendet

  Alt 1. Jun 2010, 18:52
Hallo,

ich habe ein kleines Problemchen: Abhängig davon, ob eine Delphi Anwendung die VCL verwendet oder nicht, möchte ich entweder TThread.Synchronize verwenden oder eine eigene Non-VCL Methode. Um festzustellen, ob die VCL initialisiert ist oder nicht, müsste ich aber die Unit "Forms" einbinden, was bekanntermaßen die VCL automatisch initialisiert und die Größe der ausführbaren Datei aufbläht.

Momentan verwende ich folgenden Code, ich habe jedoch berechtigte Zweifel (TComponent wird erst mit der Registration von "TMenuItem" registriert), ob dieser Code mit allen Delphi-Versionen funktioniert:
Delphi-Quellcode:
function AcVCLActive: Boolean;
begin
  //The VCL can only be active, if the TComponent class is registered
  result := GetClass('TComponent') <> nil;
end;
Gibt es eine (zuverlässige) Möglichkeit festzustellen (entweder zur Compile- oder zur Laufzeit) ob die Anwendung die VCL (ich meine damit das vorhanden sein von TApplication) verwendet? Die Units "SysUtils" und "Classes" dürfen dabei verwendet werden.

Schonmal vielen Dank,
Andreas
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat