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

Composants VCL Delphi Discussion :

Delphi et Notepad++


Sujet :

Composants VCL Delphi

  1. #1
    Membre confirmé Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 323
    Points : 486
    Points
    486
    Par défaut Delphi et Notepad++
    Bonjour à tous,
    J'espère que mon sujet est dans la bonne zone du forum.

    Est-il possible d'intégrer une fenêtre de visualisation de fichier texte Notepad++ dans une appli Delphi (Windows/VCL) pour éviter une configuration RichEdit, sur un langage déjà visualisé par Notepad ?
    Merci pour vos réponses...

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 286
    Points : 41 722
    Points
    41 722
    Billets dans le blog
    64
    Par défaut
    Bonjour,

    ma première réaction : utiliser SynEdit (mais bon, je n'ai fait qu'effleurer ce truc qui n'est que VCL)

  3. #3
    Membre confirmé Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 323
    Points : 486
    Points
    486
    Par défaut
    Merci Sergio,
    Je regarde justement l'utilisation de SynEdit. L'autre outil est Scintilla...
    Concernant Notepad++ on trouve de nombreuses informations pour coder Pascal sous Notepad++ mais pas l'intégration d'une fenêtre Notepad++ dans Delphi...
    Cordialement,

  4. #4
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 885
    Points : 11 404
    Points
    11 404
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    Peut-être une piste ici : Notepad++ plugin for ActiveX support/ ?

  5. #5
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 834
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 834
    Points : 13 587
    Points
    13 587
    Par défaut
    Un exemple pour docker Notepad++. Exemple simpliste qui part du principe que Notepad++ n'est pas déjà ouvert. Il faudrait plutôt passer par ShellExecuteEx pour récupérer le handle de processus et utiliser FindWindowEx pour trouver la fenêtre appartenant à ce processus-là.

    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
    16
    17
    18
    procedure TForm1.FormCreate(Sender: TObject);
    var
      Notepad :THandle;
    begin
      if ShellExecute(Handle, 'open', 'Notepad++.exe', '-multiInst -notabbar "Fichier.txt"', nil, SW_HIDE) > 32 then
      begin
        repeat
          Notepad := FindWindow('Notepad++', nil);
        until Notepad <> 0;
     
        SendMessage(Notepad, WM_NULL, 0, 0);
     
        WinApi.Windows.SetParent(Notepad, Panel1.Handle);
        SetWindowLong(Notepad, GWL_STYLE, (GetWindowLong(Notepad, GWL_STYLE) or WS_CHILD) and not(WS_DLGFRAME or WS_THICKFRAME));
        SetWindowPos(Notepad, 0, 0, 0, Panel1.ClientWidth, Panel1.ClientHeight, 0);
      end
      else Panel1.Caption := 'Erreur';
    end;
    Mais pas sûr que j'appliquerais ce principe.

    Sinon un exemple pour de la coloration syntaxique dans un RichEdit.

  6. #6
    Membre confirmé Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 323
    Points : 486
    Points
    486
    Par défaut
    Merci Tourlourou,
    Je vais tester l'activeX.
    Belle journée à tous...

  7. #7
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    776
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 776
    Points : 500
    Points
    500
    Par défaut
    Salut,

    Il y a aussi un memo syntaxique chez TMS software (payant) qui est préconfiguré pour bcp de langage de programmation , dont Delphi.

    bonne soirée.

  8. #8
    Membre confirmé Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 323
    Points : 486
    Points
    486
    Par défaut
    @Andnotor. Comme toi, la solution ShellExecute ne me semble pas très "intégrée". Le RichEdit devrait être plus propre.
    @Tourlourou : Je creuse le plugin...
    @PetitCoucou : Je vais regarder chez TMS pour voir si la colorisation peut être configurable pour s'adapter à mes langages.
    @SergioMaster : SynEdit est bien peu documenté et plus mis à niveau. Je n'ai encore pas cherché d'information sur scintilla.
    J'ai, par ailleurs, regardé dans les bibliothèques Jedi mais je ne la connais pas suffisamment pour trouver.

    @SergioMaster : Existe-t-il une solution élégante sous Firemonkey qui justifierait que je me frotte (enfin ) à c monde plus moderne ?
    Cordialement,

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 286
    Points : 41 722
    Points
    41 722
    Billets dans le blog
    64
    Par défaut
    Citation Envoyé par Galet Voir le message
    @SergioMaster : Existe-t-il une solution élégante sous Firemonkey qui justifierait que je me frotte (enfin ) à c monde plus moderne ?
    Bonne question que malheureusement, je ne vais pas développer de sitôt, mon agenda de néo-retraité étant plein.
    D'un point de vue FMX, je ne prendrai pas la version active x, cause multi-OS, la solution facile : les composants TMS mais j'en suis revenu.
    Il me semble que quelqu'un avait déjà abordé le sujet sur ce forum

  10. #10
    Membre confirmé Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 323
    Points : 486
    Points
    486
    Par défaut
    Merci à tous,
    Je classe le post "résolu" en attendant de travailler sérieusement sur le sujet.
    Je ne manquerai pas de revenir si je trouve une solution efficace à ce sujet.
    Belle journée à tous ...

    @SergioMaster : Merci tout de même. Dommage, J'aurais aimé avoir tord...de ne pas avoir encore basculé dans ce monde plein de surprise qu'est Firemonkey ...

  11. #11
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 670
    Points : 3 679
    Points
    3 679
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    J'arrive après la bataille, mais lorsque je développais mon propre éditeur (GBEPad), j'avais commencé le développement en 2003 avec Delphi 7 et Synedit. Lors du passage à Delphi 2009 et l'Unicode, Synedit n'avait pas encore migré en Unicode et j'ai utilisé (et modifié) EControl Syntax Editor.

    Cela fait un moment que je n'ai pas touché à ce projet personnel (qui a quand même dépassé les 80 000 téléchargements depuis la première version mise enligne en décembre 2004) mais j'ai vu ces composants TextEditor qui semblent hérités de Synedit donc toujours en VCL mais ils ont l'air pas mal.

    Par manque de temps, cela fait un moment que je n'ai pas touché à GBEPad (la dernière modif a du être faite avec Delphi Berlin ou Tokyo).

  12. #12
    Membre confirmé Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 323
    Points : 486
    Points
    486
    Par défaut
    Merci Gbegreg pour ces infos.
    Tu n'arrives pas après la bataille car, étant sur d'autres projets, je n'ai pas encore eu le temps pour mettre en application.
    Toutes les idées sont bonnes pour faire avancer le schmilblic...
    J'avoue que je pensais, en postant ma question, que ce problème avait une solution, car sans doute partagé par de nombreux développeurs, notamment par l'équipe d'Embarcadero.
    Je ne manquerais pas de transmettre mes résultats si ceux-ci sont satisfaisants.
    Belle journée à tous,

  13. #13
    Membre confirmé Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 323
    Points : 486
    Points
    486
    Par défaut
    Bonjour à tous,
    Comme promis, petit compte rendu de test pour ceux qui souhaitent intégrer une colorisation syntaxique.
    Après plusieurs essais j'ai abandonné SynEdit et Notepad++.
    La piste de Gbegreg (Merci à lui) vers TextEditor me semble la meilleure. Même si la configuration du Highlighter n'est pas encore optimale le rendu est satisfaisant compte tenu du temps consacré.
    https://github.com/TextEditorPro/TTextEditor
    Belle journée à tous

  14. #14
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 670
    Points : 3 679
    Points
    3 679
    Billets dans le blog
    2
    Par défaut
    La configuration du Highlighter dans TTextEditor se fait via des fichiers json (sous dossier "highlighters"). Il y a une certaine syntaxe à respecter pour définir tous les éléments nécessaires au surligneur syntaxique (mots clés, commentaires, chaines de caractères, opérateurs...).
    Le choix des couleurs du surligneurs se fait lui aussi via des fichiers json mais d'autres (ceux du sous dossier "themes").

    Qu'est ce qu'il te manque comme paramétrage ?

  15. #15
    Membre confirmé Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 323
    Points : 486
    Points
    486
    Par défaut
    Merci Jbegreg pour ton aide.
    J'ai bien trouvé les json qui sont fournis avec les packages. La configuration principale est assez simple et très rapide.

    Il me faut seulement creuser un peu plus pour déterminer toutes les configurations utiles.
    Mon seul problème de ce côté est donc seulement le temps.

    J'ai regardé la démo de ton développement. Pour le moment, je ne cherche qu'à visualiser le fichier sans modification. TextEdit remplit donc très bien cette fonction.
    Merci pour ton conseil...avisé

    Cordialement,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Drag & drop : drag dans delphi et drop dans notepad
    Par scafc2 dans le forum Delphi
    Réponses: 6
    Dernier message: 20/07/2015, 13h12
  2. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 21h09
  3. [Kylix] Migration delphi -> kylix
    Par Christian dans le forum EDI
    Réponses: 1
    Dernier message: 03/04/2002, 23h50
  4. Réponses: 4
    Dernier message: 27/03/2002, 12h03
  5. Réponses: 2
    Dernier message: 21/03/2002, 00h01

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