afficher quelque chose au passage de la souris - Delphi/Pascal - Programmation
Marsh Posté le 26-10-2004 à 14:02:01
T'as essayé la propiété Hint de tes composants ?
(N'oublie pas de mettre la propriété showhint à true)
Marsh Posté le 26-10-2004 à 14:12:03
en regardant l'aide de delphi y'a aparement rien qui permette d'afficher du texte dans une boite d'edition ou un label au passage de la souris sur un ellement.
on peut faire une infobulle, marquer dans la barre des taches, mais pas dans une boite d'edition
Marsh Posté le 26-10-2004 à 14:33:33
ah, tu veux dire, que tu veux, quand tu passes sur un bouton, qu'un TEdit que t'aurais mis ailleurs sur la fenêtre affiche un texte particulier ?
Si c'est ça, utilise l'evenement "onMouseMove" de tes composant pour initialiser ta boite d'édition.
Marsh Posté le 26-10-2004 à 14:57:27
ok merci mais je comprend pas comment ca marche
t'as pas un exemple stp ?
Marsh Posté le 26-10-2004 à 15:20:42
http://membres.lycos.fr/milkalechat/hfr/
je t'ai fait un pitit exemple très basique.
(exemple.zip)
Marsh Posté le 26-10-2004 à 16:16:45
caRnAGE a écrit : http://membres.lycos.fr/milkalechat/hfr/ |
merci t'est un dieu
j'arrive pas a compiler ton prog tu utilise surement pas la même version de delphi que moi
j'utilise delphi 6
je dois partir la mais je vais le refaire ce soir pour voir si ca marche
encore merci
Marsh Posté le 26-10-2004 à 17:21:23
J'suis pas un dieu , la preuve, tu peux pas compiler à cause de moi : faut virer les fichiers .dof, .cfg, .drc si je me souviens bien.
mais tout le monde peut se tromper
(et je suis en delphi 6)
Marsh Posté le 26-10-2004 à 19:55:17
super ca marche maintenant
mais je voudrai que quand je suis plus sur les boutons, la boite d'edition soit vide.
j'ai penssé a faire comme ca :
donc je rajoute ca dans type
procedure Form1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
puis ca après l'implementation
procedure TForm1.form1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
EdResultat.Text := '';
end;
mais ca marche pas
je sais tu va me dire que je suis chiant
Marsh Posté le 27-10-2004 à 09:07:43
T'es pas chient, tout le monde commence un jour.
Par contre, essaie de faire ces tutoriels :
http://www.phidels.com/php/index.p [...] x.htm&id=1
Tu comprendras mieux qu'avec un truc déjà fait
Marsh Posté le 27-10-2004 à 14:25:32
caRnAGE a écrit : T'es pas chient, tout le monde commence un jour. |
lol j'en suis quand même plus loin que ca
enfin y'a qaund même pas mal de tuto qui m'ont l'air pas mal sur ce site. j'ai regardé mais je pense pas qu'il y ai reponse a mon probleme
Marsh Posté le 27-10-2004 à 15:32:18
Si c'est pour faire un peu comme la statusbar qui reçoit un texte d'aide quand on passe sur les icônes (ou les liens dans un browser) il y a une manière plus propre de procéder.
Dans la propriété "Hitn" tu as en fait deux Hints : le court et le long. Ils sont séparés par un "|".
Le Hint court est celui qui est affiché en infobulle. Le long est celui qui est affiché dans la statusbar.
Par exemple pour un bouton ayant "Ouvrir..." comme Caption, on mettrait le Hint suivant : "Ouvrir|Ouvrir un fichier".
La première partie du hint est affichée si ShowHint est à True (ou ParentShowHint, et que le parent a ShowHint à True, etc.).
La seconde partie est affichée dans la statusbar dont la propriété AutoHint est à True.
Mais si maintenant tu veux gérer ça toi-même (statusbar ayant plusieurs panels, autre composant, etc.), il suffit de rajouter dans la Form la procédure suivante :
function ExecuteAction(Action: TBasicAction): Boolean; override; |
en "public", et d'ensuite mettre l'implémentation suivante :
|
ici par exemple j'envoie le Hint dans le 3è panel de ma statusbar. Mais on pourrait mettre un Edit ou un Label à la place.
Marsh Posté le 27-10-2004 à 17:09:30
the_warrior a écrit : super ca marche maintenant |
si j'ai bien compris ce post là, tu voudrais que quand tu passe sur un composant, ton Edit change son texte en fonction du composant, mais que quand tu n'est plus sur aucun composant, l'Edit soit vide ?
ton truc devrais marcher.
MAis pour le form1MouseMove, tu l'a rajouté toi-même dans l'éditeur ?
parce que bon, vaut mieux double-cliquer sur l'évènement dans l'inspecteur d'objet, et il te fait tout tout seul au niveau des déclarations de fonctions, ça a plus de chance de fonctionner.
Marsh Posté le 23-08-2006 à 11:42:02
Desolé de déterrer un vieux topic....
antp a écrit : Si c'est pour faire un peu comme la statusbar qui reçoit un texte d'aide quand on passe sur les icônes (ou les liens dans un browser) il y a une manière plus propre de procéder.
|
Mais je n'arrive pas a faire fonctionner cette fonctione sous D7.
Je voudrais afficher le hint automatiquement dans un label qd on passe dessus. Mon label reste desesperement vide
Une idee ?
[EDIT] : Toutes mes excuses, je viens de detecter le pb, j ai essaye d appliquer cela avec un composant TMS pour faire une barre d outils, et c est ce composant qui fait merder le tout. Sur un projet "bidon" ca fonctionne avec les composants natifs de Delphi.
Mais je ne pige pas vraiment ce qui fait bloquer tout cela sur les composants TMS.....a part que le bouton placé dans une toolbar placée elle meme dans un dockpanel n ont pas tjs les proprietes ShowHint et ParentShowHint
En gros le bouton a toutes les proprietes, la toolbar n a pas ParentShowHint, et le dockPanel n a plus rien excepte la propriete Hint
Est ce que qqun saurait me dire pk ???????? merci
[EDIT 2 ] : Le probleme ne vient tjs pas des TMS...... J ai qqchose qui bloque le declenchement de l action dans mon appli, mais pour savoir quoi ? alors la.........
Je mets un point d arret sur if (Action is THIntAction) then mais a aucun moment je n arrive sur le point d arret , Aucune action ne se declenche
EST CE QQUN A DEJA RENCONTRE CE PB ?
Marsh Posté le 24-08-2006 à 09:54:08
Aller.....personne ne saurait dire pk un ExecuteAction n est jamais declenché ??
plz....
Marsh Posté le 24-08-2006 à 17:03:27
Si tu as dans ton appli (même sur une autre fenêtre) une statusbar avec la propriété Autohint (ou un truc du genre) active, ça foire.
À part ça si ça marche dans un nouveau projet mais pas dans ton appli je n'ai pas d'idée
Marsh Posté le 26-10-2004 à 13:27:46
salut tout le monde,
je voudrais afficher du texte dans un label ou une boite d'edition en survollant un bouton ou un autre composant.
j'ai cherché partout mais je n'est rien trouvé.
merci de votre aide.
warrior.