Also letztlich geht es ja um die Synchronize-Methode, oder? Wäre es da nicht u.U. einfacher zu prüfen, ob die "Maschinerie", die den internen Synchronize-Queue abarbeitet, existiert, als zu prüfen, ob die
VCL eingebunden wurde? Ich habe da beim Überfliegen der Synchronisations-methoden in der
Unit Classes den globalen Funktionszeiger "WakeMainThread" gefunden. Auf den ersten Blick scheint er ein ganz gutes Indiz zu sein:
Delphi-Quellcode:
if Assigned(WakeMainThread)
then
// VCL
else
// NonVCL
Ich habe es nur kurz anhand einer neu erstellten
VCL-Applikation bzw. einer leeren Konsolenapplikation getestet, dort lieferte der Test aber jedenfalls das korrekte Ergebnis.