Quel est le bon moment pour démarrer le sous-classement d'un contrôle?Delphi: temps approprié pour sous-classer, et restaurer, un contrôle?
Quel est le bon moment pour restaurer le processus de fenêtre d'origine?
En ce moment, je sous-classe pendant la forme création:
procedure TForm1.FormCreate(Sender: TObject);
begin
FOldPanel1WindowProc := Panel1.WindowProc;
Panel1.WindowProc := Panel1WindowProc;
end;
et je ramènerai le sous-classement lors de la destruction sous forme :
procedure TForm1.FormDestroy(Sender: TObject);
begin
Panel1.WindowProc := FOldPanel1WindowProc;
end;
Cela fonctionne bien, aussi longtemps que je ne suis pas utilisez ThemeManager, qui sous-classe les contrôles lui-même. Dès que vous essayez de sous-classer un contrôle que ThemeManager sous-classe également, je reçois des erreurs très méchant.
je suppose qu'il est dommage parce que je ne devrais pas commencer à la sous-classe pendant Créer et restaurer pendant Destroy. Alors, quel est le temps correctement documenté pour sous-classer et annuler la sous-classe d'un contrôle dans Delphi?
Essayez de rechercher dans la source vers ThemeManager pour voir quand il effectue le sous-classement. –
Chose est qu'il met des formes sur une liste de retard, parce que le handle de fenêtre sous-jacent n'est pas créé pendant la construction de l'objet (comme avec les contrôles .NET qui enveloppent les contrôles Win32) –
pourriez-vous pirater dans la même liste de retard? –