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 :

[TSynMemo] Positionnement par ligne et colonne


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 23
    Points
    23
    Par défaut [TSynMemo] Positionnement par ligne et colonne
    Salut

    j'utilise le TSynMemo (lib SynEdit), composant derivé du TMemo.

    Je souhaiterai pouvoir placer mon curseur a un emplacement particulier de la zone de texte au moyen des numeros de ligne et colonne....

    les propriétés SelStart et SelEnd ne permettent pas cette gestion par ligne et colonne ....

    Et la propriété CaretPos (position du curseur) n'existe pas dans le TSynMemo et de toute manière n'est pas affectable .....

    Comment faire alors ???

    Si quelqu'un a un semblant de reponse, de code, d'idee, je suis preneur !!!! parcke la .... je seche total ....
    merci d'av
    Et n'oubliez pas les tags et balises adaptés dans vos titres et posts...
    et merci @tous

  2. #2
    Futur Membre du Club
    Inscrit en
    Avril 2002
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    As-tu essayé de regarder la procedure SetCaretXYEx ?

    Elle fait ce que tu souhaites, mais c'est ballot...elle est private

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    on va voir ca de suite ..... :
    Et n'oubliez pas les tags et balises adaptés dans vos titres et posts...
    et merci @tous

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    et je peux la trouver ou cette fonction jolie fonction ????
    Elle appartient a quell composant ?

    parcke la je la trouve pas ....

    et c pas drole de savoir q'une fonction nikel existe quand on la trouve pas !!!!...... pliz Unusual_FL, c ou ???

    merci
    Et n'oubliez pas les tags et balises adaptés dans vos titres et posts...
    et merci @tous

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2002
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Désolé...parti mangé....et avec le soleil, j'ai un peu trainé...

    unité SynEdit dans la déclaration de TCustomSynEdit

    dnas la partie private, il y a les deux fonctions suivantes :

    procedure SetCaretXY(Value: TPoint); virtual;
    procedure SetCaretXYEx(CallEnsureCursorPos: Boolean; Value: TPoint); virtual;

    Comme les méthodes sont virtuelles, si tu dérives le TCustomSynMemo ou le TSynMemo, tu peux ajouter dans ta partie publique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    procedure SetCaretXY(Value: TPoint); override;
    dont l'implémentation sera :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    procedure TTonSynMemo.SetCaretXY(Value: TPoint);
    begin
         inherited;
         // Tu peux ajouter ce que tu veux si tu as besoin
    end;
    Tu pourras par la suite utiliser cette méthode...Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TForm1.BtnPosClick(Sender: TObject);
    var
       Position : TPoint;
    begin
         Position.Y := StrToInt(EdtLigne.Text);
         Position.X := StrToInt(EdtColonne.Text);
         SynMemo1.SetCaretXY(Position);
         SynMemo1.SetFocus;
    end;

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Et bien je suis bien content que tu ai profité du soleil, ca a du t'ouvrir l'esprit..... 8)

    j'ariv maintenant a positionner mon curseur à l'endroit voulu comme il faut !!!!
    Maintenant , le truc, c'est que je dois ensuite le texte qui suit , et le voulais a partir de la, utiliser le SelStart (quand ya pas de selection , SelStart vo la position du curseur normalement)...

    mais je viens d'essayer et SelStart ne suit pas le curseur ( alors qu'il est le curseur ?!?!) ....
    et là , je vois encore moins pourkoi !!!

    Rappel de l'aide Delphi
    Consultez la propriété SelStart pour déterminer la position du premier caractère sélectionné, 0 indiquant le premier caractère du texte. S'il n'y a pas de texte sélectionné, SelStart indique la position du curseur. Affectez une valeur à la propriété SelStart pour annuler la sélection en cours et positionner le curseur immédiatement avant le caractère spécifié.
    Donc, si quelqu'un à une autre suggestion .....
    enfin une suggestion complementaire car la première partie marche !!!

    merci d'av
    Et n'oubliez pas les tags et balises adaptés dans vos titres et posts...
    et merci @tous

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    attend 20 min et on va fumer une clope tous les 2
    ca va te calmer un bain de soleil!!!!

    et puis moi j'en est besoin car ca ne marche toujours pas

    aider le S'ils vous plaient car il me frappe apres!!

  8. #8
    Futur Membre du Club
    Inscrit en
    Avril 2002
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    L'aide de Delphi dont tu parles est sans doute celle qui fait référence au TEdit.

    Ici, le TSynEdit est dérivé du TCustomControl, il ne faut donc pas se fier aux homonymes employés qui ne correspondent pas forcément à la même "définition windows", et c'est ici le cas.

    Si le but est de sélectionner un bloc de code, il te faut affecter
    BlockBegin et BlockEnd --> 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
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
       PositionDepart,
       PositionFin : TPoint;
    begin
         PositionDepart.Y := 3;
         PositionDepart.X := 10;
         SynMemo1.SetCaretXY(PositionDepart);
     
         PositionFin.Y := PositionDepart.Y;
         PositionFin.X := 12;
     
         Synmemo1.BlockBegin := PositionDepart;
         Synmemo1.BlockEnd   := PositionFin;
    end;

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    oki j'essaie ca de suite....
    mais ma classe qui deriv de TSynMemo possède les attributs SelStart et SelEnd....

    m'enfin, j'essaie et te tiens au courant du reusltat !!!!
    Et n'oubliez pas les tags et balises adaptés dans vos titres et posts...
    et merci @tous

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 23
    Points
    23
    Par défaut





    C d'la balle !!!

    franchement Unusual_FL, t'as d'la chance d'etre a distance sinon je t'aurais fait la biz !!!

    ca marche nikel de chez nikel !!!
    Merci et encore merci !!!

    PS : si qlq 1 est interesse par le code , ne pas hesitez a me contacter !!!

    @++
    Et n'oubliez pas les tags et balises adaptés dans vos titres et posts...
    et merci @tous

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

Discussions similaires

  1. Merger cellules identiques par colonne et par ligne
    Par chrystobale dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 25/10/2011, 18h46
  2. Réponses: 13
    Dernier message: 30/06/2011, 17h33
  3. Mise en page PHP/MySQL - 3 colonnes par ligne
    Par reedbedroom dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 08/04/2011, 13h24
  4. Somme de 2 colonnes ligne par ligne
    Par jerome71300 dans le forum Windows Forms
    Réponses: 9
    Dernier message: 25/10/2007, 15h02
  5. connecter deux colonnes lignes par ligne
    Par ApolloCrid dans le forum Excel
    Réponses: 3
    Dernier message: 01/10/2007, 20h27

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