Globaler Hook für Erzeugung von TFrame/TForm Objekten?



  • Hallo zusammen,

    ich habe folgendes Problem:
    Eine 3rd Party Komponentensammlung enthält schicke Controls, die teilweise das Attribut Transparent haben. Bei aktivierten Windows Designs wird dieses Flag wohl ignoriert und alle Controls sehen gut aus. Wenn die Windows Designs deaktiviert werden wird das Transparent Flag ausgewertet und das Control (z.B. ein Label) je nach Einstellung opak oder transparent angezeigt. Standardmäßig steht Transparent auf false und lässt sich auch nicht ändern. Opake Labels werden mit einem grauen Hintergrund angezeigt, das sieht auf einem Panel mit Farbverlauf natürlich bescheiden aus, weil da mittendrin eine grau Box angezeigt wird.

    Ich könnte jetzt natürlich alle Formulare sämtlicher Projekte durchgehen und für alle relevanten Controls das Transparent Attribut auf true setzen, allerdings ist das eine Heidenarbeit. Ich suche eine Möglichkeit, sowas wie einen globalen Hook zu installieren, der zur Laufzeit nach der Erstellung von TFrame/TForm Objekten aufgerufen wird und in dem ich alle Kindkomponenten durchlaufen und ggf. deren Transparent Attribut auf true setzen kann.

    Hat da jemand eine Idee, wie man das realisieren kann?



  • DocShoe schrieb:

    einen globalen Hook zu installieren, der zur Laufzeit nach der Erstellung von TFrame/TForm Objekten aufgerufen wird

    Kein Problem mit Detours, madCodeHook, MinHook, EasyHook, ... Das ist dann natürlich ein Hack, keine saubere Lösung. Aber deine Herangehensweise ist auch ein Hack, warum also nicht.

    Ansonsten könntest du doch die 3rd-party-Komponenten anpassen (sicherlich habt ihr die im Quelltext vorliegen) und den Standardwert der Transparent -Eigenschaft ändern. Das würde mir zumindest viel besser gefallen.



  • Danke für die Hook-Links, muss mir das mal anschauen, wenn ich Zeit habe.

    Wir haben die Quelltexte der Bibliothek, die sind aber in Pascal, da muss ich mal gucken, ob meine Skills da ausreichen, die Pakete neu zu übersetzen. Ist ein größeres Projekt (vllt. kennste ja die DevExpress Komponenten?).



  • DocShoe schrieb:

    (vllt. kennste ja die DevExpress Komponenten?).

    Nicht aus eigener Verwendung, aber gesehen hab ich sie schon öfters. Sollen recht hochwertig sein (was man bei dem Preis auch erwarten darf).

    Wenn du mit Delphi dann ein konkretes Problem hast, dann frag doch einfach nach 🙂


Anmelden zum Antworten