D6 ProfDelphi: Comment faire ma propre fenêtre Hint?
Nous avons une application spéciale avec une grille spéciale. Il a un HintWindow ce qui peut montrer d'autres informations qui ne peuvent pas placer dans les cellules. Par exemple de longs mémos. Lorsque vous déplacez la souris sur une cellule, elle attend 2 secondes et affiche les informations.
Le problème de ce thème que HintWindow ne fonctionne pas correctement, ou de la même manière que les "astuces" normales.
notes normales apparaissent, et ils sont en train de disparaître dans ces cas: - l'indice montrant le temps ellapsed - la forme active est désactivée - une nouvelle forme montrée - l'application remplacée par une autre tâche (ALT + TAB)
Mais notre HintWindow est ne peut pas détecter ce nouveau formulaire, ou l'application a changé - il reste en haut, jusqu'à ce que disparaisse. temps ... :-(
Un autre problème que nous avons utilisé « MouseMove » pour détecter le changement de la souris -.. pour démarrer le Conseil
Cet événement est produit également si la disparition HintWindow Je dois protéger contre show cyclique avec ce code:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Caption := INtTOStr(X) + ' ' + IntToStr(Y) + ' ' + IntToStr(GetTickCount);
// If same coordinate I don't show it again
if (LX <> X) or (LY <> Y) then begin
miHint.DoActivateHint(Self, 'Anytext', 2000, 2000);
LX := X; LY := Y;
end;
end;
Sans cette LX, LY le HintWindow apparaît de manière cyclique et dissappears
donc:. nous devons savoir comment nous faisons une HintWindow qui travaille dans la même méthode comme l'application « Hint ", mais limité dans cette grille.Il doit fermer sur "changement de tâche", "changement de forme". Comment faire?
Merci pour votre aide: dd
Ahhh ... J'oublie de dire que ce contrôle est une grille virtuelle, et non sur la base sur la grille VCL - il est basé sur customcontrol. Donc des indices viennent de cette classe. Mais : Je veux pas utiliser un indice « normal » que visible lorsque vous allez à tout contrôle. Je veux que cela donne des informations à partir des cellules. J'ai donc besoin d'attraper le curseur en mouvement. – durumdara
@durumdara -> « besoin d'attraper le curseur en mouvement » - Le 'HintInfo' est passé à l'événement « OnShowHint » a déjà la position du curseur, la mise en oeuvre je l'ai décrit les utilise pour trouver quelle cellule le « soupçon » serait sur. J'ai également fourni quelques liens vers la documentation maintenant. Lisez-les un peu ... –