Bonjour à tous,
tout est dans le titre... J'aurais besoin de modifier dynamiquement la police de caractères utilisée pour afficher un hint (ainsi que le charset, pour afficher des caractères cyrilliques, russes, japonais, ...)
Une idée ?
Bonjour à tous,
tout est dans le titre... J'aurais besoin de modifier dynamiquement la police de caractères utilisée pour afficher un hint (ainsi que le charset, pour afficher des caractères cyrilliques, russes, japonais, ...)
Une idée ?
Trés facile
regardes ici, tu pouras t'en inspirer.
http://delphi.developpez.com/sources...no40source0028
pas de souci
ça marche pas mal comme truc, d'ailleurs merci beaucoup, mais j'ai un petit problème de scintillement avec ce hint personnalisé
en fait, je le met à jour dans la fonction "OnMouseMove" d'un de mes composants, et avec le hint original je n'ai pas de problème d'affichage tandis qu'avec celui-là ça scintille un max:
est-ce qu'il y a possibilité d'appliquer un "Machin.DoubleBuffered:=true" quelque part ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 procedure OnMouseMove(Sender:TObject; Shift:TShiftState; X,Y:Integer); begin Hint:='quelque chose de dynamique'; Application.ActivateHint(Mouse.CursorPos); ...
ha bin je viens de trouver...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2DoubleBuffered:=true
Tout fonctionne maintenant... presque résolu
mais je ne sais pas comment récupérer l'instance de "TMonHint" qui est utilisée lors d'un affichage !
par exemple, j'aimerais changer la font du hint dynamiquement.... mais je n'arrive pas à récupérer de référence pointant sur le "TMonHint" utilisé, et donc je ne peux pas modifier la police...
Une idée ?
Est-ce qu'il faut modifier la fonte une fois le hint affiché ? Ou avant son affichage ?
Dans les deux cas tu peux mettre à jour une variable globale de type TFont pour garder la police à utiliser. Puis le mettre à nil lors de sa destruction.
S'il faut changer la police après le dessin, il faudra garder l'instance en cours dans un variable à la fin de Create du hint :
Il faudra ensuite créer un méthode pour redessiner le hint et l'appeler une fois la variable globale de type TFont mise à jour.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Var DernierHint : TMonHint; Constructor TMonHint.Create(AOwner: TComponent); Begin Inherited Create(AOwner); // Create n'est surchargé que pour initialiser les variables FCreerRegion := False; DernierHint := Self; End; // le destructeur est à ajouter à la définition de la classe donnée dans mon source Destructor Destroy; Overrride; Begin DernierHint := Nil; Inherited; End;
ça roulle
merci à vous deux![]()
Partager