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
On propose d’ouvrir le site du petit Journal en passant sur la ligne
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
- Label1.Hint = "http://bluegyn.com"
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
1. Simuler un Hyper lien sur un formulaire, 28 mai 2008, 22:05, par BlueGYN
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
Normal se place
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