MICHELBORLAND
Messages postés14Date d'inscriptionmardi 6 septembre 2005StatutMembreDernière intervention29 janvier 2007
-
20 mars 2006 à 13:14
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 2022
-
21 mars 2006 à 03:07
Bonjour,
Comment faire apparaitre un hint sans faire passer la souris sur l'objet ( comme les bulls d'information dans windows xp ).
merçi.
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 21 mars 2006 à 03:07
Salut,
voici un petit exemple tout simple :
C'est la méthode la plus simple que je connaisse
Procedure TForm1.Button1Click(Sender: TObject);
Var aHint : THintWindow;
aRect : TRect;
aStr : String;
aPt : TPoint;
Begin aStr := 'Voici un petit Teste' + #13 + // Notre Message
'd''affichage de message personnalisé';
aHint := THintWindow.Create(Self); // on Crée l'objet
aHint.Color := $00FFA6A6; // change la couleur du fond
aRect := aHint.CalcHintRect(400, aStr, Nil); // calcule la taille de la fenêtre
GetCursorPos(aPt); // récupère la position du curseur;
OffsetRect(aRect, aPt.X + 10, aPt.Y + 10); // on déplace notre message sous la souris + 10
aHint.ActivateHint(aRect, aStr); // et on affiche le message
ahint.Refresh; // on rafraichi à cause du sleep qui fige tout
Sleep(3000); // on attend 3 secondes
aHint.Hide; // et on ferme
aHint.Free; // et pour finir on libère
End;
Comme dit ce n'est qu'un exemple il serait plus judicieux de le créer dans le OnCreate de la Form et de le libérer dans le OnClose et à la place du Refresh et du Sleep déclarer in Timer ce qui évitera de figer l'application.