Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1284 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  afficher quelque chose au passage de la souris

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

afficher quelque chose au passage de la souris

n°883011
the_warrio​r
in soviet ...
Posté le 26-10-2004 à 13:27:46  profilanswer
 

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.

mood
Publicité
Posté le 26-10-2004 à 13:27:46  profilanswer
 

n°883035
caRnAGE
Posté le 26-10-2004 à 14:02:01  profilanswer
 

T'as essayé la propiété Hint de tes composants ?
(N'oublie pas de mettre la propriété showhint à true)

n°883050
the_warrio​r
in soviet ...
Posté le 26-10-2004 à 14:12:03  profilanswer
 

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 :/

n°883073
caRnAGE
Posté le 26-10-2004 à 14:33:33  profilanswer
 

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.

n°883104
the_warrio​r
in soviet ...
Posté le 26-10-2004 à 14:57:27  profilanswer
 

ok merci mais je comprend pas comment ca marche :(
t'as pas un exemple stp ?

n°883132
caRnAGE
Posté le 26-10-2004 à 15:20:42  profilanswer
 

http://membres.lycos.fr/milkalechat/hfr/
je t'ai fait un pitit exemple très basique.
 
(exemple.zip)

n°883164
the_warrio​r
in soviet ...
Posté le 26-10-2004 à 16:16:45  profilanswer
 

caRnAGE a écrit :

http://membres.lycos.fr/milkalechat/hfr/
je t'ai fait un pitit exemple très basique.
 
(exemple.zip)


 
merci t'est un dieu [:aloy]  
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 :)

n°883248
caRnAGE
Posté le 26-10-2004 à 17:21:23  profilanswer
 

J'suis pas un dieu :o , 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)

n°883389
the_warrio​r
in soviet ...
Posté le 26-10-2004 à 19:55:17  profilanswer
 

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 :cry:
je sais tu va me dire que je suis chiant :)

n°883657
caRnAGE
Posté le 27-10-2004 à 09:07:43  profilanswer
 

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 ;)

mood
Publicité
Posté le 27-10-2004 à 09:07:43  profilanswer
 

n°883903
the_warrio​r
in soviet ...
Posté le 27-10-2004 à 14:25:32  profilanswer
 

caRnAGE a écrit :

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 ;)


 
lol j'en suis quand même plus loin que ca :lol:  
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

n°883990
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-10-2004 à 15:32:18  profilanswer
 

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 :


function TForm1.ExecuteAction(Action: TBasicAction): Boolean;
begin
  if (Action is THintAction) then
  begin
    StatusBar1.Panels[2].Caption := THintAction(Action).Hint;
    Result := True;
  end
  else
    Result := inherited ExecuteAction(Action);
end;


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.

Message cité 1 fois
Message édité par antp le 27-10-2004 à 15:33:07
n°884093
the_warrio​r
in soviet ...
Posté le 27-10-2004 à 16:48:34  profilanswer
 

merci de ton aide antp je vais essayer ca ce soir :jap:

n°884131
caRnAGE
Posté le 27-10-2004 à 17:09:30  profilanswer
 

the_warrior a écrit :

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 :cry:
je sais tu va me dire que je suis chiant :)


 
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.

n°1429826
mkracing66
Posté le 23-08-2006 à 11:42:02  profilanswer
 

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.
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 :


function TForm1.ExecuteAction(Action: TBasicAction): Boolean;
begin
  if (Action is THintAction) then
  begin
    StatusBar1.Panels[2].Caption := THintAction(Action).Hint;
    Result := True;
  end
  else
    Result := inherited ExecuteAction(Action);
end;


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.


 
 
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  :sweat:  :cry:  
 
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  :heink:  
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  :heink:  :heink:  
Est ce que qqun saurait me dire pk ???????? merci  :jap:
 
 
[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  :heink:  :heink:  :sleep:  :fou:  
 
EST CE QQUN A DEJA RENCONTRE CE PB ?  
 


Message édité par mkracing66 le 23-08-2006 à 13:35:15
n°1430381
mkracing66
Posté le 24-08-2006 à 09:54:08  profilanswer
 

Aller.....personne ne saurait dire pk un ExecuteAction n est jamais declenché ??
 
plz....:'(

n°1430821
antp
Super Administrateur
Champion des excuses bidons
Posté le 24-08-2006 à 17:03:27  profilanswer
 

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 :??:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  afficher quelque chose au passage de la souris

 

Sujets relatifs
Coordonnées souris OpenGLtemplate, qq chose m'échappe
Afficher des caracteres speciaux dans printf....comment bien afficher des données groupées ?
[Java cardLayout] J'arrive pas a les afficher.Afficher un élément dans une GroupBox
passage de win98 SE à win XP PROafficher date
Afficher une image dans une applet [fonctionne]Afficher boite de dialogue "Fichier ouvrir" sous excel 97
Plus de sujets relatifs à : afficher quelque chose au passage de la souris


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR