Gibt es nicht in XE oder XE2 eine hauseigene Lösung?
Mir ist so, als hatte ich das vor 'ner Weile hier mal gesehn.
Ich glaub da wird intern ein generisches Objekt erstellt, worüber die Umleitung geregelt wird und dann wird die
RTTI auf die neue Klasse umgeleitet, bzw. der Typ wird im gewünschten Objekt ersetzt, so daß ab nun alles über die neue Klasse abläuft, oder irgendwie so.
Hallo Himitsu,
eine hauseigene Lösung kenne ich hier nicht.
SetEnabled ist ja virtual, also könnte man auch einfach die
VMT ändern.
Sollen dann alle Nutzer meiner Rechteverwaltung die
VCL neu erstellen? Das halte ich für nicht sinnvoll und wird bei anderen höchst wahrscheinlich auch auf Ablehnung stoßen.
TApplicationEvents.OnMessage und dort auf CM_ENABLEDCHANGED
mit dem Handle deiner Komponente warten. [edit]alle[/edit]
PS: Du hast dir nicht umsonst den
VCL-Quellcode gekauft ... ich an deiner Stelle würde dort öfters mal nachsehn.
An der Stelle, wo die Message ausgelöst wird, bin ich bereits zu spät. Nach meinem Konzept muss ich mir merken, ob aus dem Programmverlauf heraus das Control deaktiviert ist oder ob es durch die Rechteverwaltung deaktiviert wurde. Beides zusammen ergibt dann den Zustand von Enabled. Bei meinen Versuchen die Message abzufangen, fingen die Controls an leicht zu flackern.