Téléchargé 9 fois
Vote des utilisateurs
2
0
Détails
Licence : Non renseignée
Mise en ligne le 27 juin 2016
Plate-formes :
Linux, Windows
Langue : Français
Référencé dans
Navigation
Composant Memo avec insertion de liens
Composant Memo avec insertion de liens
Bonjour à tous.
TLinksMemo est directement dérivé de TMemo.
Il permet d'insérer très simplement des liens sous la forme , la cible du lien n'apparaissant pas dans le texte.
La cible du lien peut être une URL, un dossier ou un fichier à ouvrir par le processus de votre OS ou par un programme spécifique.
Pour la création de liens, le composant se suffit à lui-même : nul besoin de procédures externes.
Le zip contient un programme démo : rien à installer au préalable.
Testé sous Windows et Linux mint.
Merci d'avance pour vos commentaires.
Cordialement
Thierry
TLinksMemo est directement dérivé de TMemo.
Il permet d'insérer très simplement des liens sous la forme , la cible du lien n'apparaissant pas dans le texte.
La cible du lien peut être une URL, un dossier ou un fichier à ouvrir par le processus de votre OS ou par un programme spécifique.
Pour la création de liens, le composant se suffit à lui-même : nul besoin de procédures externes.
Le zip contient un programme démo : rien à installer au préalable.
Testé sous Windows et Linux mint.
Merci d'avance pour vos commentaires.
Cordialement
Thierry
Oui, c'est bien comme ça et tu as raison au sujet du TMemo. J'étais préoccupé quand j'ai posé cette question.
Mais si le composant devait être utilisé dans une application destinée à un public non initié, je pense que la solution basée sur le RichEdit serait préférable (ce qui n'enlève rien à l'intérêt intrinsèque de ton code).
Mais si le composant devait être utilisé dans une application destinée à un public non initié, je pense que la solution basée sur le RichEdit serait préférable (ce qui n'enlève rien à l'intérêt intrinsèque de ton code).
Merci Roland.
Le composant est dérivé directement de TMemo. A ma connaissance, il n'y a pas de formatage possible d'une partie du texte dans un TMemo. Donc, mettre le lien en bleu souligné... Il faudrait pour cela partir d'un RichEdit. Pour que l'utilisateur reconnaisse un lien, j'ai opté pour la solution d'un mot entre 2 chevrons.
Pourquoi un double clic ? c'est simplement un choix... qui m'arrangeait bien : sous Windows, le double clic sélectionne à partir du premier chevron jusqu'au deuxième chevron compris. Il devenait donc facile de distinguer un lien simplement avec le texte sélectionné.
Cordialement
Thierry
Le composant est dérivé directement de TMemo. A ma connaissance, il n'y a pas de formatage possible d'une partie du texte dans un TMemo. Donc, mettre le lien en bleu souligné... Il faudrait pour cela partir d'un RichEdit. Pour que l'utilisateur reconnaisse un lien, j'ai opté pour la solution d'un mot entre 2 chevrons.
Pourquoi un double clic ? c'est simplement un choix... qui m'arrangeait bien : sous Windows, le double clic sélectionne à partir du premier chevron jusqu'au deuxième chevron compris. Il devenait donc facile de distinguer un lien simplement avec le texte sélectionné.
Cordialement
Thierry
la solution basée sur le RichEdit serait préférable
Il y a eu des composants portables permettant d'afficher des textes riches (colorés et soulignés), je ne me rappelle plus leurs noms mais ils se trouvent facilement.
salut
il existe deja des solution sous windows et delphi
il suffisait d'utiliser des message OS déjà existant
et dans le message Notify interne du composant
faire un truc du genre
pour lazarus j'ai pas lu le code mais je pense qu'il doit déjà exister une option pour détecter les liens
il existe deja des solution sous windows et delphi
il suffisait d'utiliser des message OS déjà existant
Code : | Sélectionner tout |
1 2 3 4 | mask := SendMessage(RE.Handle, EM_GETEVENTMASK, 0, 0); SendMessage(RE.Handle, EM_SETEVENTMASK, 0, mask or ENM_LINK); SendMessage(RE.Handle, EM_AUTOURLDETECT, Integer(True), 0); |
faire un truc du genre
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var Link: TENLink; begin inherited; if Message.NMHdr^.code = EN_LINK then begin Link := TENLink(Pointer(Message.NMHdr)^); if Link.Msg = WM_LBUTTONDOWN then begin SendMessage(Handle, EM_EXSETSEL, 0, Longint(@(Link.chrg))); executeComande(SelText); end; end; end; |
Merci pour ce composant qui me paraît fort intéressant. Je vais l'essayer dare-dare.
Quant à moi, je ne regrette aucunement le texte bleu souligné : les liens bleus soulignés sont ce que je trouve de plus laid dans le HTML, sans doute parce qu'ils adoptent un bleu pur #0000ff qui est très agressif (alors que le bleu est en général une si belle couleur – pourvu qu'il ne soit pas le bleu primaire des photophores !), et que le souligné est toujours laid dans la typographie, d'autant qu'il est mal géré par l'affichage, trop près ou trop loin des caractères, d'une graisse différente, enfin tout pour déplaire…
Quant à moi, je ne regrette aucunement le texte bleu souligné : les liens bleus soulignés sont ce que je trouve de plus laid dans le HTML, sans doute parce qu'ils adoptent un bleu pur #0000ff qui est très agressif (alors que le bleu est en général une si belle couleur – pourvu qu'il ne soit pas le bleu primaire des photophores !), et que le souligné est toujours laid dans la typographie, d'autant qu'il est mal géré par l'affichage, trop près ou trop loin des caractères, d'une graisse différente, enfin tout pour déplaire…
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.