Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Editfeld - Cursor ans Ende setzen oder ausblenden (https://www.delphipraxis.net/140932-editfeld-cursor-ans-ende-setzen-oder-ausblenden.html)

Major1337 29. Sep 2009 09:29


Editfeld - Cursor ans Ende setzen oder ausblenden
 
Hey,

ich habe diese Frage schon als Post in meinem letzten Thread geschrieben, aber keine hilfreiche Antwort bekommen, deshalb mach ich mal einen neuen Thread auf der sich nur diesem Problem widmet. Ich habe einen Button, der nach jedem Klick einen String an Edit schickt. Das funktioniert auch wunderbar und er setzt den zweiten String auch hinter den ersten, aber mein Problem ist es nun, dass der Cursor immer an der ersten Position stehen bleibt. Mir wurde schon empfohlen es mit der Selstar Eigenschaft zu lösen.

VirtKeyBoardEdit.SetFocus;
VirtKeyboardEdit.SelStart := Length(VirtKeyBoardEdit.Text);

Der Cursor springt in diesem Falle ans Ende, aber jedes mal wenn ich den Buttonklicke springt er zuerst noch an den Anfang und dann ans Ende. Er soll aber Konstant immer am Ende stehen.
Wenn es möglich sein sollte, kann er auch ganz ausgeblendet sein ^^



Lg

himitsu 29. Sep 2009 09:38

Re: Editfeld - Cursor ans Ende setzen oder ausblenden
 
Wenn du Edit.Text einen Wert zuweißt, wird nunmal unweigerlich der Cursor von Windows an den Anfang gesetzt.

Delphi-Quellcode:
VirtKeyBoardEdit.SetFocus;
VirtKeyboardEdit.SelStart := -1;
VirtKeyboardEdit.SelText := 'a'; // 'a' hinten dranhängen
VirtKeyboardEdit.SelStart := -1;
Der einzige Weg, wo der Cursor nicht erst nach vorne springt, wäre nur die Selection zu ändern.

Major1337 29. Sep 2009 09:42

Re: Editfeld - Cursor ans Ende setzen oder ausblenden
 
...ist das Selection ändern etwas aufwendiges? Und die Variante den Cursor auszublenden? :)

EDIT: Die Variante von dir klappt doch.. o.O. DANKE!

Major1337 29. Sep 2009 09:52

Re: Editfeld - Cursor ans Ende setzen oder ausblenden
 
Jetzt kommen aber die Probleme wenn ich den Sring wieder löschen will, dann springt er wieder ganz an den Anfang -.-


VirtKeyBoardEdit.SetFocus;
VirtKeyboardEdit.SelStart := -1;
virtKeyboardEdit.Text := Copy(virtKeyboardEdit.Text, 1, Length(virtKeyboardEdit.Text) - Length('Teststring') );
VirtKeyboardEdit.SelStart := -1;

himitsu 29. Sep 2009 10:03

Re: Editfeld - Cursor ans Ende setzen oder ausblenden
 
Delphi-Quellcode:
Edit1.SelStart := Length(Edit1.Text) - 3;
Edit1.SelLength := 3;
Edit1.SelText := '';
löscht die letzen 3 Zeichen


Text einfügen/anhängen
Delphi-Quellcode:
Edit1.SelStart := i;
// diese Zeile kann weg, da SelLength durch SelStart auf eh 0 steht
//Edit1.SelLength := 0;
Edit1.SelText := Text;
Text ersetzen
Delphi-Quellcode:
Edit1.SelStart := i;
Edit1.SelLength := Len;
Edit1.SelText := Text;
Edit1.SelStart := i + Length(Text);
Text löschen
Delphi-Quellcode:
Edit1.SelStart := i;
Edit1.SelLength := Len;
Edit1.SelText := '';
Edit1.SelStart := i + Length(Text);

Major1337 29. Sep 2009 10:07

Re: Editfeld - Cursor ans Ende setzen oder ausblenden
 
klappt! Wunderbar ^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz