BlueGEEK Journal

Accueil > Manip’s > Delphi > Atelier Delphi pour les Nuls > Delphi Blue Baby Faq > Simuler un Hyper lien sur un formulaire

Simuler un Hyper lien sur un formulaire

mercredi 20 juin 2007, par bluegyn_spip

On propose d’ouvrir le site du petit Journal en passant sur la ligne

- BlueGYN 2007

POUR OUVRIR UN HYPERLIEN

Rien de plus simple

- Soit une ligne Label1

  • Avec Label1.caption = "BlueGYN 2007"

- Je place l’Hyperlien dans la propriété Hint

- Pour ouvrir l’Hyperlien cité dans le Hint,

  • J’argumente l’évènement onClick du Label

Ne pas oublier le T de typage avant le Label => TLabel

Je clique sur la ligne => la page s’ouvre

- Voila pour l’action...


Pour surligner la ligne au passage de la souris

  • J’argumente l’évènement OnMouseMove du Label

- La syntaxe TLabel ( sender ) permet de copier ce code sur n’importe quel Label même sans connaitre son Nom .

  • Color = argumente la couleur du lien
  • Style = la graisse et le soulignement
  • Et Cursor = Place un pointeur en forme de Doigt

Pour redonner au texte son aspect initial si la souris s’en va

  • Il faut argumenter l’évènement OnMouseMove du Fond (le Form par exemple)

- On voit ici que contrairement au surlignage, il faut impérativement préciser sur quel Label porte la modification (Puisque ici le Sender est le Form et non le Label)

Messages

  • Procédure plus universelle


    Créer 3 procédures :


    - procedure URL_Souligne (Sender : TObject) ;

    - procedure URL_Normale ;

    - procedure URL_Open( Sender : TObject) ;


    procedure URL_Souligne (Sender : TObject );

    Begin

    with TStaticText(sender) do begin

     font.Color:=clBlue;

     Font.Style:= [fsUnderline];

     cursor := crHandPoint;

     form1.ActiveControl := TStaticText(sender);

    end;

    End;



    procedure URL_Normale;

    Begin

    if form1.ActiveControl is TStaticText then begin

            with TStaticText(form1.ActiveControl) do begin

             Font.Color:=clWindowtext;

              Font.Style:= [];

             cursor := crDefault;

            end;

    end;

    End;



    procedure URL_Open( Sender : TObject);

    Begin

    ShellExecute(0,'OPEN', Pchar(TStaticText(Sender).hint), nil, nil, sw_SHOW);

    End;

    - Souligne se place

    • OnMouse du StaticText (ou Label)

    - Normal se place

    • OnMouse du composant parent (Groupe ou Form)

    - Open se place OnClick du StaticText


    - Le truc est de forcer l’attribution de la propriété ActiveControl (contrôle actif) au passage de la souris sur le label

    - Puis de récupérer le nom du Controle pour effacer ses attributs de texte