Position du Curseur dans un TEdit [Résolu]

tichau4 27 Messages postés dimanche 14 novembre 2004Date d'inscription 14 février 2006 Dernière intervention - 17 juil. 2005 à 17:40 - Dernière réponse : tichau4 27 Messages postés dimanche 14 novembre 2004Date d'inscription 14 février 2006 Dernière intervention
- 19 juil. 2005 à 19:17
Bonjour,



Est-il possible de connaitre la position du curseur dans un composant
TEdit, et de la changer, si non existe t-il un composant capable de
faire ce genre de chose.



Merci d'avance.
Afficher la suite 

8 réponses

Répondre au sujet
cs_Kenavo 759 Messages postés vendredi 21 mars 2003Date d'inscription 1 octobre 2009 Dernière intervention - 18 juil. 2005 à 16:07
+3
Utile
Salut,



Si c'est la position du curseur d'édition du TEdit que tu veux connaîte, utilise SelStart :




SelStart, propriété (TCustomEdit)



Représente la position du premier caractère sélectionné dans le texte.



Syntaxe Delphi :

property SelStart: Integer;

Syntaxe C++ :

__property int SelStart = {read=GetSelStart, write=SetSelStart, nodefault};



Description



Utilisez SelStart pour déterminer la position du premier caractère
sélectionné, où 0 représente le premier caractère. Si aucun texte n'est
sélectionné, SelStart indique la position du curseur. Affectez une
valeur à SelStart pour retirer la sélection en cours et positionner le
curseur immédiatement avant le caractère indiqué.



Pour sélectionner une portion de texte particulière, affectez d'abord
une valeur à SelStart pour positionner le curseur, puis affectez une
valeur à SelLength pour étendre la sélection.



Ken@vo

<hr size ="2" width="100%">Code, Code, Codec !

[%3C/body ]
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Kenavo
alexis2015 73 Messages postés mardi 8 avril 2003Date d'inscription 24 juillet 2005 Dernière intervention - 18 juil. 2005 à 07:30
0
Utile
Slt,

Voilà ce ke je te propose sur un Tbutton;



procedure TForm1.Button1Click(Sender: TObject);

var cPos : TPoint;

begin

cPos:= Mouse.CursorPos; // Tu récolte sa position

edit1.text:=inttostr(MPos.X)+' - '+inttostr(mpos.y); // Et tu l'écrit dans un TEdit

end ;



Sur un TEDit c encore + simple !



procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

edit1.text: =inttostr(X)+' - '+inttostr(y);

// Ici, j'utilise X et Y car ce sont des variable fournie par la procedure et qui renvoie directement la position du curseur

end;



Maintenant si tu vx positioner ton curseur à un endroit préci :

(de nouveau sur un TButton)



procedure TForm1.Button2Click(Sender: TObject);

var cPos : TPoint;

begin

cpos.X:=200; // Tu attribues tes coordonées

cpos.Y:=200;

Mouse.CursorPos:=cPos; // et tu les aplliquent au curseur

end;



J'épère que ca rep à ta question.

Si oui, valide la réponse



Alexis
Commenter la réponse de alexis2015
alexis2015 73 Messages postés mardi 8 avril 2003Date d'inscription 24 juillet 2005 Dernière intervention - 18 juil. 2005 à 07:35
0
Utile
Oups, Une petite erreur c'est glissée dans la première source :



Il faut remplacer les "MPos.X" et "MPos.y" par la variable déclarée à savoir "cPos" et pas "MPos".



Donc ca donne :



edit1.text:=inttostr(cPos.X)+' - '+inttostr(cPos.y);



Déso
Commenter la réponse de alexis2015
cs_grandvizir 1237 Messages postés samedi 8 novembre 2003Date d'inscription 3 septembre 2006 Dernière intervention - 18 juil. 2005 à 12:26
0
Utile
var P, PositionDansEdit : TPoint;
begin
GetCursorPos(P);
PositionDansEdit:=Edit1.ScreenToClient(P);
end;

Et inversement:

var P : TPoint;
begin
P:=Edit1.ClientToScreen(Point(X,Y));
SetCursorPos(P);
end;

C'est une autre manière (aux imperfections live près)...
Commenter la réponse de cs_grandvizir
alexis2015 73 Messages postés mardi 8 avril 2003Date d'inscription 24 juillet 2005 Dernière intervention - 18 juil. 2005 à 13:05
0
Utile
Je ne connaissais pas cette méthode, très très intéressant



Alexis
Commenter la réponse de alexis2015
tichau4 27 Messages postés dimanche 14 novembre 2004Date d'inscription 14 février 2006 Dernière intervention - 19 juil. 2005 à 00:53
0
Utile
désolé alexis2015, je me suis mal exprimer le curseur dont je parlai était celui de l'Edit, pas le curseur de la souris.

Merci kan meme.

Pour SelStart quand j'affecte une valeur :

Edit1.SelStart:=2;

rien ne se passe ? prk?

Je voudrai kan je clique sur un bouton, le curseur de l'edit se mette a un endroit précis par exemple avant le 3eme cractère.
Commenter la réponse de tichau4
tichau4 27 Messages postés dimanche 14 novembre 2004Date d'inscription 14 février 2006 Dernière intervention - 19 juil. 2005 à 19:17
0
Utile
OK

Merci beaucoup ca marche.
Commenter la réponse de tichau4
cs_Kenavo 759 Messages postés vendredi 21 mars 2003Date d'inscription 1 octobre 2009 Dernière intervention - 19 juil. 2005 à 10:31
-2
Utile
Il ne se passe rien car c'est ton bouton qui détient le focus. Il faut écrire :



Edit1.SetFocus;

Edit1.SelStart := 2;



Ken@vo
Code, Code, Codec !

[%3C/body ]
Commenter la réponse de cs_Kenavo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.