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

C++Builder Discussion :

[RICHEDIT] -> Coloriser une syntaxe ?


Sujet :

C++Builder

  1. #1
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Points : 262
    Points
    262
    Par défaut [RICHEDIT] -> Coloriser une syntaxe ?
    Salut,
    Je voudrais faire un petit editeur de source d'un langage de programmation et je cherchai comment je pouvais faire pour coloriser les mots réservés dans un RichEdit ?
    Que me conseillez vous ?
    Merci d'avance,
    MaTHieU_

  2. #2
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Points : 1 271
    Points
    1 271
    Par défaut
    Bonjour,

    Je te conseille d'utiliser le composant SynEdit, plutôt que RichEdit. (http://synedit.sourceforge.net/). Il est fait pour ça.

    Cordialement,

    Arnaud

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Salut,

    j'ai par curiosité essayé d'installer ce composant sous BCB6 (Pro) mais j'obtiens des erreurs de compile. D'autres personnes ayant les mêmes erreurs l'ont signalé sous SoundForge sans obtenir de réponse.

    As-tu déjà rencontré le problème et,si oui, comment l'as tu résolu.


    C'est avec la version 1.1 de SynEdit
    Pour indication, voici les messages d'erreurs :

    [Pascal Hint] SynEdit.pas(6137): Value assigned to 'SpaceCount3' never used
    [Pascal Error] SynMacroRecorder.pas(375): Undeclared identifier: 'sListIndexError'
    [Pascal Error] SynMacroRecorder.pas(375): There is no overloaded version of 'Error' that can be called with these arguments
    [Pascal Fatal Error] SynEditReg.pas( 58 ): Could not compile used unit 'SynMacroRecorder.pas'
    [Linker Fatal Error] Fatal: Unable to open file 'SYNEDITREG.OBJ'


    Merci d'avance

    Nico

  4. #4
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Points : 262
    Points
    262
    Par défaut yop
    Salut,
    Une petite question avant de l'installer, fonctionne-t-il correctement sur C++ Builder 5 Pro ? Puis est-il possible de coloriser toutes sorte d'informations avec ?
    Merci d'avance,
    MaTHieU_

  5. #5
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Points : 1 271
    Points
    1 271
    Par défaut
    Bonjour,

    C++ Builder 3 à 6 est supporté.
    Pour l'erreur qui se produit à la compilation, il s'agit d'une chaine de caractère non renseignée. Il suffit de remplacer sListIndexError par une chaine de caractères Delphi quelconque.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure TCustomSynMacroRecorder.DeleteEvent(aIndex: integer);
    var
      iObj: Pointer;
    begin
      {$IFDEF MSWINDOWS}
      if fEvents = nil then
        TList.Error( sListIndexError, aIndex );
      {$ENDIF}
      iObj := fEvents[ aIndex ];
      fEvents.Delete( aIndex );
      TObject( iObj ).Free;
    end;
    devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure TCustomSynMacroRecorder.DeleteEvent(aIndex: integer);
    var
      iObj: Pointer;
    begin
      {$IFDEF MSWINDOWS}
      if fEvents = nil then
        TList.Error( 'Erreur d'index de liste', aIndex );
      {$ENDIF}
      iObj := fEvents[ aIndex ];
      fEvents.Delete( aIndex );
      TObject( iObj ).Free;
    end;
    Cela permet au composant de fonctionner parfaitement.

  6. #6
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Points : 262
    Points
    262
    Par défaut yop
    Salut,
    Parfait!
    Je me lance dedans après manger alors!
    Merci!!!!
    MaTHieU_

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Oui ça marche.

    Lors de l'utilisation deux erreurs apparaissaient à la compile sur des propriétés publiées.
    Leur mise en commentaire ne gêne pas le fonctionnement (pour un test).


    Merci

    Nico

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

Discussions similaires

  1. Mise en forme dans un RTF via une syntaxe personnelle
    Par sqwalichou dans le forum Autres langages
    Réponses: 2
    Dernier message: 24/02/2006, 23h19
  2. coloriser une ligne sur deux
    Par the0livier dans le forum Langage
    Réponses: 3
    Dernier message: 12/09/2005, 11h54
  3. [langage] comprendre une syntaxe particulière
    Par mat21 dans le forum Langage
    Réponses: 4
    Dernier message: 08/12/2004, 19h12

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