2016-02-26 1 views
-1

Dans mon application, je souhaite utiliser des conseils pour afficher des informations supplémentaires.Masquer DropShadow à partir des conseils

Il ressemble à ceci:

enter image description here

je remarquai que Firefox montre des notes sans ombre portée:

enter image description here

Ma recherche sur Google ne m'a apporté aux questions sur l'ajout d'une ombre portée (XP jours) et ne pas les supprimer.

Donc, ma question est: Comment puis-je supprimer le dropshadow des indices? Merci.

Répondre

3

Vous créez simplement votre propre classe de fenêtre de conseil héritant de THintWindow, supprimez CS_DROPSHADOW dans CreateParams, puis définissez vcl pour utiliser votre classe au lieu de la valeur par défaut.

TMyHintWindow = class(THintWindow) 
protected 
    procedure CreateParams(var Params: TCreateParams); override; 
end; 

procedure TMyHintWindow.CreateParams(var Params: TCreateParams); 
begin 
    inherited CreateParams(Params); 
    Params.WindowClass.Style := Params.WindowClass.style and not CS_DROPSHADOW; 
end; 

procedure TForm1.FormCreate(Sender: TObject); 
begin 
    FOldHint := HintWindowClass; 
    HintWindowClass := TMyHintWindow; 
    // FOldHint is type of THintWindowClass; 
    // If you like to reset hint window to its original value you just set it back to FOldHint 
    // HintWindowClass := FOldHint; 
end; 
+0

Donc c'est pour vcl. J'ai tendance à oublier fmx. –