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 :

SetSelTextBuf sur un SynEdit


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut SetSelTextBuf sur un SynEdit
    Bonjour à tous et à toutes

    Je tentes de reprendre une fonction qui fonctionne trés bien sur un RIcheEdit par un SynEdit.
    Mais je suis confronté à un manque de fonction sur se synEdit

    la function SetSelTextBuf

    Voici ma procédure que j'ai adaptée sur un SynEdit

    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
    procedure TFTravail.RichEditDragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    begin
      Accept := Source = FPrincipal.TreeViewBase;
    end;
    
    
    procedure TFTravail.RicheditDragDrop(Sender, Source: TObject; X,
      Y: Integer);
    Var
      i : Integer;
      Data: Pchar;
    //  LineNum,ColNum : Word;
      Pt: Tpoint;
    Begin
    
    //  With TRichEdit(Sender) do
      With TSynEdit(Sender) do
      Begin
        Pt := Point(X,Y);
    
        if FPrincipal.TreeViewBase.Selected.Level > 0 then
        Begin
          Data := PChar('['+FPrincipal.TreeViewBase.Selected.Parent.Text +'].['
          + FPrincipal.TreeViewBase.Selected.Text+']');
        end
        else
          Data := PChar('['+FPrincipal.TreeViewBase.Selected.Text+']');
    
     // Calcul de la position du pointeur de la souris pour positionner le texte à une position précise dans le TMemo
        I := LoWord(Perform(Messages.EM_CHARFROMPOS , 0, Integer(@Pt)));
    
        SelStart := I;   // on positionne le curseur de selection sous le pointeur de la souris
    
    / * Marche pas avec SynEdit */
        SetSelTextBuf(Data); // on insert le text là où est le curseur
    
      end;
    end:
    J'ai essayer de transtyper le synedit Trichedit(Synedit) mais aucun effet.

    Cette fonction a pour effet de recevoir un drag&drop provenant d'un treeview.

    Comment remplacer SetSelTextBuf(Data); ?
    j'ai tenter comme cela également : SendMessage(Handle, EM_REPLACESEL, 0, LongInt(Data));

    Merci pour vos lumières

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    409
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 409
    Par défaut
    essaye un SelText := Data

  3. #3
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    Citation Envoyé par exoseven Voir le message
    essaye un SelText := Data
    Salut,

    je l'ai fais et cela me remplace tout le text du synedit par mon drap & drop malheureusement.

    J'ai aussi essayer avec le SynMemo pareil..

    Merci

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut

    regarde du cote de @+ Phil

  5. #5
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    Citation Envoyé par anapurna Voir le message
    salut

    regarde du cote de @+ Phil
    Salut,

    Cela n'existe pas dans SynEdit ou SynMemo.

    De quoi veux-tu parler ?

  6. #6
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    ok anapurna, j'ai vue que c'etait un procedure proteger.

    alor sje me sjuis pas embeter j'ai carrement changer le synedit.pas, j'ai mis les 2 procédures
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        procedure SetSelTextPrimitive(const aValue: String);
        procedure SetSelTextPrimitiveEx(PasteMode: TSynSelectionMode; Value: PChar;
          AddToUndoList: Boolean);
    dans la partie public.

    Mais cela ne change rien voici ce que je fais :

    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
    procedure TFTravail.RicheditDragDrop(Sender, Source: TObject; X,
      Y: Integer);
    Var
      i : Integer;
      Data: Pchar;
      Pt: Tpoint;
    Begin
    //  With TRichEdit(Sender) do
      With TSynEdit(Sender) do
      Begin
        Pt := Point(X,Y);
     
        if FPrincipal.TreeViewBase.Selected.Level > 0 then
        Begin
          Data := PChar('['+FPrincipal.TreeViewBase.Selected.Parent.Text +'].['
          + FPrincipal.TreeViewBase.Selected.Text+']');
        end
        else
          Data := PChar('['+FPrincipal.TreeViewBase.Selected.Text+']');
     
     // Calcul de la position du pointeur de la souris pour positionner le texte à une position précise dans le TMemo
        I := LoWord(Perform(Messages.EM_CHARFROMPOS , 0, Integer(@Pt)));
     
        SelStart := I;   // on positionne le curseur de selection sous le pointeur de la souris
     
        SetSelTextPrimitive(Data);
    //    SetSelTextBuf(Data);
    //    SendMessage(Handle, EM_REPLACESEL, 0, LongInt(Data)); // on insert le text là où est le curseur
      end;
    end;
    Il m'insert mon drap & drop en première ligne uniquement.

  7. #7
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut

    c'est une methode protected

  8. #8
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    Re,

    apparement, c'est mon I qui est toujours égale à zero !!

    J'ai essayer de forcer selstart à 3 mais cela change rien, mon drap&drop s'affiche à la ligne zero !!

    grrrrrrrr

Discussions similaires

  1. Documentation gratuite sur l'API Windows, COM, DCOM, OLE, etc.
    Par Community Management dans le forum Windows
    Réponses: 1
    Dernier message: 16/11/2006, 15h28
  2. Synedit -commentaires sur une seule ligne
    Par Malone dans le forum Composants VCL
    Réponses: 2
    Dernier message: 03/02/2006, 19h44
  3. [Kylix] installer synedit 1.1 sur kylix 3
    Par busy999 dans le forum EDI
    Réponses: 2
    Dernier message: 03/02/2003, 16h37
  4. [Kylix] Kylix embarqué sur PDA ?
    Par Anonymous dans le forum NoSQL
    Réponses: 10
    Dernier message: 29/11/2002, 13h59
  5. F.A.Q, Doc, cours, tutoriels sur JBuilder
    Par Ricky81 dans le forum JBuilder
    Réponses: 0
    Dernier message: 14/03/2002, 15h28

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