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 expérimenté Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    325
    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 : 325
    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 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 656
    Billets dans le blog
    65
    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 expérimenté Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    325
    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 : 325
    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 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 938
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    Peut-être une piste ici : Notepad++ plugin for ActiveX support/ ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 938
    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 expérimenté Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    325
    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 : 325
    Par défaut
    Merci Tourlourou,
    Je vais tester l'activeX.
    Belle journée à tous...

  7. #7
    Membre éclairé

    Inscrit en
    Novembre 2002
    Messages
    815
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 815
    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 expérimenté Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    325
    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 : 325
    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 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 656
    Billets dans le blog
    65
    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 expérimenté Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    325
    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 : 325
    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
    683
    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 : 683
    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).
    Mon site - Mes tutoriels - GitHub - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  12. #12
    Membre expérimenté Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    325
    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 : 325
    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 expérimenté Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    325
    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 : 325
    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
    683
    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 : 683
    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 ?
    Mon site - Mes tutoriels - GitHub - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  15. #15
    Membre expérimenté Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    325
    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 : 325
    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, 12h12
  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, 20h09
  3. [Kylix] Migration delphi -> kylix
    Par Christian dans le forum EDI
    Réponses: 1
    Dernier message: 03/04/2002, 22h50
  4. Réponses: 4
    Dernier message: 27/03/2002, 11h03
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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