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

Lazarus Pascal Discussion :

[Lazarus] Utilisation de TsynAutoComplete


Sujet :

Lazarus Pascal

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 35
    Par défaut [Résolu][Lazarus] Utilisation de TsynAutoComplete
    Bonjour,

    Pour éditer des macros dans mon programme j'utilise un TsynEdit, couplé avec un TsynAnySyn cela me permet une colorisation personnalisée. Seulement j'aurais voulu aussi ajouter la complétion automatique, et là... pas moyen. J'ai mis un TsynAutoComplete sur ma fiche, je lui ai mis le TsynEdit comme éditeur, mais j'ai beau mettre une liste de mots dans la Tstrings AutoCompleteList, il ne se passe rien à l'exécution, j'ai beau actionné le raccourci (shift+space) le seul effet que j'obtiens c'est la disparition du mot s'il est dans la liste!

    Quelqu'un en sait-il plus? Peut-être un exemple? peut-être y a t-il une syntaxe à respecter lorsqu'on remplit la liste de mots?

    Merci d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 35
    Par défaut
    Bon, je me réponds:

    Il y a bien une syntaxe à respecter dans la AutoCompleteList c'est:

    mot1
    =texte de remplacement de mot1
    mot2
    =texte de remplacement de mot2 ...etc

    Mais en réalité je me suis rendu que ce n'était pas cela que je cherchais, c'est le TsynCompletion, il est dans la même unité que TsynAutoCompletion mais ne figure pas dans la barre des SynEdit. il faut donc le déclarer et l'initialiser à la main dans le source. On remplit la ItemList (TStrings) avec les expressions que l'on veut proposer, on déclare l'éditeur TCustomSynEdit utilisé, ainsi qu'un raccourci, par exemple:

    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
    unit Macro;
    {$MODE Delphi}
    interface
    uses
      SysUtils, Classes, LcLType,
      Graphics, Controls, Forms, Dialogs, StdCtrls,
      analyse4, LResources, Buttons, SynEdit, SynCompletion;
    type
      { TMacroForm }
      TMacroForm = class(TForm)
        Label1: TLabel;
        Edit1: TEdit;
        Label2: TLabel;
        Label3: TLabel;
        Button1: TButton;
        Button2: TButton;
        Memo1: TSynEdit;                       // <- c'est l'éditeur
        SynAnySyn1: TSynAnySyn;         // <- pour la colorisation personnalisée
        Completion:TSynCompletion;      // <- pour proposer la complétion
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
        procedure Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
        function Valider: Boolean;
      end;
     
    implementation
     
    procedure TMacroForm.FormCreate(Sender: TObject);
    var aux:string;
    begin
         Completion:=TSynCompletion.Create(self);
         Completion.Editor:=Memo1;
         Completion.ShortCut:=VK_F2;
         Completion.ItemList.add('Arc( )');
         Completion.ItemList.add('Axes( )');
         Completion.ItemList.add('Bezier( )');
         Completion.ItemList.add('Cercle( )');
         Completion.ItemList.add('Courbe( )');
         Completion.ItemList.add('Droite( , )');
         Completion.ItemList.add('EquaDif( )');
         Completion.ItemList.add('Grille( )');
         Completion.ItemList.add('Implicit( )');
         Completion.ItemList.add('Label( )');
         Completion.ItemList.add('Ligne( , )');
         Completion.ItemList.add('Path( )');
         Completion.ItemList.add('Point( )');
         Completion.ItemList.add('Spline( )');
         Completion.ItemList.add('Surface( )');   
    ...etc
    A l'utilisation, le raccourci permet l'ouverture d'une petite fenêtre avec l'expression la plus proche de ce que l'on vient de saisir.

Discussions similaires

  1. [Lazarus] Utiliser le port série
    Par katmai dans le forum Lazarus
    Réponses: 1
    Dernier message: 11/08/2007, 12h00
  2. [Lazarus] Utilisation de SynEdit
    Par JoseF dans le forum Lazarus
    Réponses: 3
    Dernier message: 27/07/2007, 12h42
  3. Réponses: 1
    Dernier message: 20/05/2007, 11h02
  4. [Lazarus] Utilisation d'images jpeg
    Par lohot dans le forum Lazarus
    Réponses: 1
    Dernier message: 12/02/2007, 23h27
  5. Réponses: 3
    Dernier message: 11/12/2005, 16h08

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