BlueGEEK Journal

Accueil > Manip’s > Delphi > Hint > Comment passer les Info Bulles en mode global ?

DELPHI, AIDE, INFO BULLE

Comment passer les Info Bulles en mode global ?

APPLICATION, HINT

dimanche 13 juillet 2008, par bluegyn_spip

Le Mode HINT au niveau APPLICATION


- L’aide contextuelle est habituellement paramétrée au niveau de l’info-bulle qui s’afficher dans une petite bande jaune au passage sur un champ.

- En DELPHI on fait appel à la propriété HINT de l’objet
- En BASIC cette propriété de l’Objet est le ToolTipText
- En JAVASCRIPT c’est Title

- Cette manip décrit comment afficher automatiquement chaque Bulle d’info dans la fenêtre principale

  • Dans la Barre de status par exemple

- En continuant à remplir simplement la propriété HINT locale de chaque Objet

TECHNIQUEMENT

- Il suffit de détourner l’évènement OnHint de l’Objet vers la Propriété ShowHint de l’application.


MISE EN ŒUVRE

Au niveau du Formulaire

- Form1

  • ShowHint = False


- Cette action va empêcher le double affichage des Bulles sur le Champ qui a le focus et sur le panneau global d’aide, en désactivant d’un seul clic, tous les HINT de tous les composants affichés.

- Form1

  • Placez un COMPOSANT PANEL1 (ou statusbar)
    • Propriété Align = Bottom

Ouvrez le code de la Fiche

- Touche F12
- Entre USES ET VAR

  • Sous Déclarations Privées ajoutez la déclaration AfficheAIDE

- Dans la rubrique IMPLEMENTATION

  • Sous {$R *.DFM}

- Développez votre fonction AfficherAide

N’oubliez par le TForm1.

- Il faut maintenant détourner l’évènement OnHint vers la nouvelle procédure AfficherAide

- Niveau Formulaires

  • Form1.
    • Inspecteur d’Objets => Evenement
    • -***OnCreate

- Cet évènement est appelé à l’ouverture de la fiche (équivalent OnLoad en Basic ou en Javascript) et contient les routines d’initialisation de celle ci.

C’est tout

- Maintenant quand vous passez sur le composant

  • L’aide s’affiche dans le PANEL


TRUC

- Pour désactiver la Bulle Locale au niveau du composant, (double affichage parasite de l’aide) il suffit de positionner le ShowHint du Form1 (cf. 1ère manip) sur False


- Avec CoolTrayIcon, on peut afficher le conseil dans l’infobulle

- Mettre dans le hint au format

TITRE ; CONSEIL
procedure TForm1.AfficherAide(sender: TObject);
var
        TAB : TStringList;
 N : integer;
begin
TRY

if (application.ShowHint and opt_InfoBalloon.Checked) then  BEGIN
 TAB := TStringList.Create;
 N := ExtractStrings([';'], [], PChar(Application.Hint), TAB);
// N retourne le nombre de parties extraites
 if n <= 0 then exit;
 if N = 1 then
         CoolTrayIcon1.ShowBalloonHint('AIDE',TAB[0], bitCustom,10)
 else BEGIN
        CoolTrayIcon1.ShowBalloonHint(TAB[0],AnsiReplaceStr(TAB[1], '#',#13+#10) , bitCustom,10);

   END;

END;

FINALLY TAB.Free; END;

end;