IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Téléchargez Pascal Discussion :

Composant Memo avec insertion de liens


Sujet :

Téléchargez Pascal

  1. #1
    Membre chevronné

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Points : 1 884
    Points
    1 884
    Par défaut Composant Memo avec insertion de liens
    Bonjour à tous,

    Je vous propose un nouvel élément à utiliser : Composant Memo avec insertion de liens


    TLinksMemo est directement dérivé de TMemo.

    Il permet d'insérer très simplement des liens sous la forme "<lien>" , 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

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 062
    Points : 15 353
    Points
    15 353
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par ThWilliam Voir le message
    Il permet d'insérer très simplement des liens sous la forme "<lien>" , la cible du lien n'apparaissant pas dans le texte.
    Bonjour Thierry ! Intéressant (et utile) mais, par curiosité, pourquoi pas un lien sous la forme plus habituelle, en bleu et souligné ? Et (tant que j'y suis) pourquoi un double clic pour ouvrir le lien ?
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  3. #3
    Membre chevronné

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Points : 1 884
    Points
    1 884
    Par défaut
    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

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 062
    Points : 15 353
    Points
    15 353
    Billets dans le blog
    9
    Par défaut
    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).
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  5. #5
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 469
    Points : 1 100
    Points
    1 100
    Par défaut
    la solution basée sur le RichEdit serait préférable
    Attention le TRichEdit standard ne fonctionne à ma connaissance que sous Windows (c'est un format propriétaire MS et l'affichage utilise une DLL de Windows)

    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.
    Cordialement,
    Tintinux

    Initiateur de Gestinux, une comptabilité gestion open-source, pour Linux, Windows et Mac OS.
    Une version stable et une autre en développement, avec Lazarus : vous pouvez aider à la tester, la traduire et à la développer.

  6. #6
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 062
    Points : 15 353
    Points
    15 353
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par tintinux Voir le message
    Attention le TRichEdit standard ne fonctionne à ma connaissance que sous Windows (c'est un format propriétaire MS et l'affichage utilise une DLL de Windows)

    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.
    Oui, oui, c'était un lapsus : Lazarus n'a pas de RichEdit. Nous parlons de RichMemo ou de lzRichEdit.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  7. #7
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 410
    Points : 5 801
    Points
    5 801
    Par défaut
    salut

    il existe deja des solution sous windows et delphi
    il suffisait d'utiliser des message OS déjà existant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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);
    et dans le message Notify interne du composant
    faire un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
    pour lazarus j'ai pas lu le code mais je pense qu'il doit déjà exister une option pour détecter les liens
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 196
    Points : 435
    Points
    435
    Par défaut
    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…

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/04/2015, 12h25
  2. Quel composant memo pour lien Url
    Par Cazaux-Moutou-Philippe dans le forum Composants VCL
    Réponses: 13
    Dernier message: 07/03/2009, 17h50
  3. probleme clé sequentiel avec insert into
    Par shake dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/06/2004, 16h54
  4. [Débutant] SWT: composant Texte avec \n
    Par bonnefr dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 18/05/2004, 12h44
  5. STL : std::set problème avec insert ...
    Par Big K. dans le forum MFC
    Réponses: 13
    Dernier message: 08/11/2003, 02h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo