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 :

Coloration syntaxique ASM dans un RichEdit


Sujet :

Composants VCL Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Coloration syntaxique ASM dans un RichEdit
    Je désire faire un éditeur texte pour le langage assembler (langage machine). Le code est dans un RichEdit standard et je voudrais qu'il y a les changements suivants :

    1) Lorsque l'usager entre un mot réservé au langage (j'ai déjà la liste des mots), je veux que ce mot devienne vert. Or, je veux que ce soit le mot exact, et non une occurence d'un grand mot.

    2) Lorsque l'usager entre un ";", je veux que tout ce qui suit, y compris le ";", devienne bleu. Si on suprime le ";", je veux annuler la couleur pour cette ligne.

    Pas besoin de tout me faire, m'expliquer comment faire devrait être largement suffisant. Merci d'avance.

  2. #2
    Seb
    Seb est déconnecté
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 81
    Points : 97
    Points
    97
    Par défaut
    Salut,

    Je n'ai pas une formule toute faite pour répondre à ta question, mais en fouillant un peu sur le net, je suis tombé sur le code suivant (mise à jour par clic sur un bouton ), qui permet de marquer de différentes couleurs les tags HTML.

    Le code est le suivant :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    procedure HTMLSyntax(RichEdit: TRichEdit; TextCol, TagCol, DopCol: TColor); 
    var  
      i, iDop: Integer; 
      s: string; 
      Col: TColor; 
      isTag, isDop: Boolean; 
    begin 
      iDop := 0; 
      isDop := False; 
      isTag := False; 
      Col := TextCol; 
      RichEdit.SetFocus; 
     
      for i := 0 to Length(RichEdit.Text) do 
      begin 
        RichEdit.SelStart := i; 
        RichEdit.SelLength := 1; 
        s := RichEdit.SelText; 
     
        if (s = '<') or (s = '{') then isTag := True; 
     
        if isTag then 
          if (s = '"') then 
            if not isDop then 
            begin 
              iDop  := 1; 
              isDop := True; 
            end  
            else 
              isDop := False; 
     
        if isTag then 
          if isDop then 
          begin 
            if iDop <> 1 then Col := DopCol; 
          end  
          else 
            Col := TagCol 
        else 
          Col := TextCol; 
     
        RichEdit.SelAttributes.Color := Col; 
     
        iDop := 0; 
     
        if (s = '>') or (s = '}') then isTag := False; 
      end; 
     
      RichEdit.SelLength := 0; 
    end; 
     
    procedure TForm1.Button1Click(Sender: TObject); 
    begin 
      RichEdit1.Lines.BeginUpdate; 
      HTMLSyntax(RichEdit1, clBlue, clRed, clGreen); 
      RichEdit1.Lines.EndUpdate; 
    end;
    Pour l'avoir en live :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.RichEdit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      RichEdit1.Lines.BeginUpdate;
      HTMLSyntax(RichEdit1, clBlue, clRed, clGreen);
      RichEdit1.Lines.EndUpdate;
    end;

    En bidouillant, je pense que tu peux arriver à tes fins.

    A+,

    Seb.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci bien, ce n'est pas tout à fait ce qu'il me faut, mais c'est quand même plus que j'espérais

    Merci encore, je vais être capable à partir de cet exemple de faire ce que je voulais.

  4. #4
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 99
    Points : 126
    Points
    126
    Par défaut
    Salut,

    va voir à cette adresse :http://synedit.sourceforge.net/

    tu trouveras surement ton bonheur

  5. #5
    Membre expérimenté
    Avatar de Aramis
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 493
    Points : 1 638
    Points
    1 638
    Par défaut
    Pourquoi se compliquer la vie !
    utilise ConTEXT en plus c est fait en Delphi 4

    @->--

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    C'est un travail que j'ai à faire pour un cours, et béta comme je suis, j'ai pas bien écouter le professeur. De toute manière, je trouve qu'on apprend mieux quand on cherche par soi-même, avec un petit d'aide des autres parfois

    Pas grave, merci quand même d'avoir fait cet effort, si quelqu'un a le même problème que moi, il aura quelques solutions suplémentaires

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

Discussions similaires

  1. [2.x] Activer coloration syntaxique Twig dans Netbeans.
    Par Julien xD dans le forum Symfony
    Réponses: 1
    Dernier message: 15/05/2012, 08h51
  2. coloration syntaxique : php dans xhtml (PDT)
    Par aiphes dans le forum Eclipse PHP
    Réponses: 1
    Dernier message: 01/02/2009, 23h34
  3. [API Windows] Coloration syntaxique dans le RICHEDIT
    Par Dev-FX dans le forum Windows
    Réponses: 8
    Dernier message: 12/04/2007, 23h10
  4. Conservation de la coloration syntaxique dans Word
    Par Invité dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/01/2006, 17h17

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