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

 Delphi Discussion :

Récupérer la position (ligne / colonne) du curseur dans un TMemo


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 13
    Points
    13
    Par défaut Récupérer la position (ligne / colonne) du curseur dans un TMemo
    Bonjourn

    Suite à la discussion suivante, connaitre la position de mon curseur dans un memo la méthode décrite ne marche pas pour moi ???

    Voici le code :

    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
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ComCtrls, StdCtrls;
     
    type
      TForm1 = class(TForm)
        Memo1: TMemo;
        StatusBar1: TStatusBar;
        procedure Memo1KeyDown(Sender: TObject; var Key: Word;
          Shift: TShiftState);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    var Line, Column : integer;
    begin
    With Memo1 do begin
       Line := Perform(EM_LINEFROMCHAR,SelStart, 0) ;
       Column := SelStart - Perform(EM_LINEINDEX, Line, 0) ;
    end;
    StatusBar1.Panels.Items[0].Text:=inttostr(line);
     
    end;
     
    end.
    Merci de bien vouloir m'aider

  2. #2
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 666
    Points : 643
    Points
    643
    Par défaut
    bonjour à toutes et à tous,
    @h4mz4: pour que ça marche: dans la propriété "Panels" du StatusBar ajoute une nouvelle "StatutPanel" et puis ajoute le code dans l'événement "onKeyDown" du "memo1".

    bonne journée.

    NABIL74

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    ok merci ca fonctionne tres bien

  4. #4
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Un petit ?

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    merci , bonne nuit

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    @ H4mz4, j'avais fait ceci pour récupérer la ligne et la colonne au bon endroit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
      var line,col :integer;
      begin
      line:=sendMessage(memo1.Handle,EM_LineFromChar,memo1.SelStart,0);
      col:=memo1.Selstart-sendMessage(memo1.Handle,EM_LineIndex,line,0)+1;
      panel1.caption:='Ligne n°: '+inttostr(line+1)+'    Colonne n°: '+inttostr(col);
    end;
    @ Nabil74,

    et puis ajoute le code dans l'événement "onKeyDown" du "memo1".
    pour moi c'est dans l'évenement "OnMouseDown".

    @+,

    Cincap

  7. #7
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 666
    Points : 643
    Points
    643
    Par défaut
    salut,
    @cincap:
    pour moi c'est dans l'évenement "OnMouseDown".
    mais quand tu saisis un texte dans le Memo avec ton clavier sans utiliser la souris, ta procédure n'indiquera pas le numéro de ligne!
    donc pour bien contrôler la saisie, on va ajouter mon code déjà cité dans
    le topic:http://www.developpez.net/forums/d73...urseur-memo/ca
    les deux événements:"OnKeyDown" et "OnMouseDown".comme ça, le numéro de ligne sera toujours indiqué.

    bonne journée.

    NABIL74

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    @ NABIL74, autant pour moi mais le code que je suggère permet de mieux préciser la colonne, pour la ligne c'est ok les deux codes.

    Maintenant c'est à voir d'ou on se place pour le comptage.

    @+,

    Cincap

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

Discussions similaires

  1. [XL-2010] VBA - Récupérer position (ligne/colonne) d'une checkbox dans une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/03/2012, 15h52
  2. Connaitre la position ligne/colonne dans un TMemo
    Par bubulemaster dans le forum Débuter
    Réponses: 4
    Dernier message: 05/04/2008, 21h15
  3. Position en pixel du curseur dans un TextBox
    Par nihaoma dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/02/2007, 13h51
  4. Réponses: 1
    Dernier message: 15/05/2006, 15h49
  5. Position du curseur dans un TMemo
    Par yokito dans le forum Composants VCL
    Réponses: 3
    Dernier message: 28/08/2003, 16h35

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