TEdit und der Cursor
-
Hallo!
Ich habe folgendes Problem:
Ich benutze auf einer Form ein normales TEdit Feld. Darin möchte ich die momentane Position des Schreibcursors bestimmen und diesen bei Bedarf dann um eine/zwei Position verschieben.
Also nicht mit SelStart und SelLength, sondern nur diesen Blinkenden Cursor verschieben!
Gibt es da irgendwelche Möglichkeiten dieses zu realisieren?
Danke schon mal im Voraus!
-
warum nicht mit SelStart und SelLength?
funktioniert doch beides wunderbar, sowohl beim OnChange vom Edit, oder bei nem Buttonclick, du mußt dem Edit nur im richtigen Moment den Focus geben
-
Mit Selstart habe ich es schon versucht, nur bei OnChange bekomme ich das nicht wirklich gebacken. Der Curor bewegt sich dann mit der Eingabe, aber nicht mehr.
Scheint das ihr hier etwas mit dem Focus falsch mache
-
die Frage ist: zu welchem Zeitpunkt willst du dass der Cursor die Position verändert? wenn der Nutzer was eingibt? wenn er das Edit-Feld verläßt? wenn der Nutzer einen Button betätigt?
hier mal meine Version bei Änderungen am Edit-Inhalt
void __fastcall TForm1::Edit1Change(TObject *Sender) { Edit1->SelStart = Edit1->SelStart + 2; Edit1->SelLength = 0; }d.h. sobald man einen Buchstaben im Text einfügt springt der Cursor um 2 weiter, aber natürlich nur maximal bis Textende
[Edit:] der Focus spielt dann eine Rolle, wenn du z:b. einen Button klickst um die Cursorpositionierung zu ändern
void __fastcall TForm1::Button1Click(TObject *Sender) { int sel = Edit1->SelStart + 2; Edit1->SetFocus(); Edit1->SelStart = sel; Edit1->SelLength = 0; }
-
Danke hat funktioniert
