![]() |
TEdit komplett markieren bei Mausklick
Hallo!
Ich hätte gerne, dass ein TEdit-Feld erstmal alles markiert wenn der User draufclickt. (So dass man drauflosschreiben kann um den Inhalt zu überschreiben und nicht erst alles markieren muss) Erst wenn das Edit schon den Fokus hat und mann nochmal klickt soll nur der Mauscursor zu sehen sein. (so verhält sich z.B. die Addressleiste beim Firefox) Wie mach ist das? (SelectAll in OnEnter aufrufen tut's beispielsweise nicht) Danke! Ralf |
Re: TEdit komplett markieren bei Mausklick
Delphi-Quellcode:
Hoffe das hilft??
SendMessage(Edit1.handle, EM_SETSEL, 0, -1);
|
Re: TEdit komplett markieren bei Mausklick
Delphi-Quellcode:
procedure TForm1.Edit1Click(Sender: TObject);
begin with (Sender as TEdit) do begin if Tag = 0 then begin Perform(EM_SETSEL, 0, -1); Tag := 1; end; end; end; procedure TForm1.Edit1Exit(Sender: TObject); begin (Sender as TEdit).Tag := 0; end; |
Re: TEdit komplett markieren bei Mausklick
Danke!
Ein
Delphi-Quellcode:
in den OnEnter-Event uns alles ist gut.
PostMessage(Edit1.handle, EM_SETSEL, 0, -1);
|
Re: TEdit komplett markieren bei Mausklick
Wie wäre es einfach mit .AutoSelect auf True setzen und alles is Gut? :stupid:
|
Re: TEdit komplett markieren bei Mausklick
Zitat:
Zitat:
|
Re: TEdit komplett markieren bei Mausklick
es wird alles markiert, sobald das Edit den Focus bekommt und bei einem weiteren Klicken passiert nichts mehr,
also genauso wie er es möchte Zitat:
|
Re: TEdit komplett markieren bei Mausklick
Delphi-Quellcode:
Edit1.SelectAll;
|
Re: TEdit komplett markieren bei Mausklick
Es gibt noch 'ne Möglichkeit:
Delphi-Quellcode:
Ich weiss nicht, obs auch mit OnEnter klappt. Ausprobieren.
procedure btnXYClick(Sender: TObject);
begin edt.SetFocus; edt.SelStart := 0; edt.SelLength := Length(edt.Text); end; btnXY ist bei mir ein Defaultbutton. Könnte aber sein, dass auch dieses nicht beim Klick funktioniert. Ich vermute, dass die Reihenfolge der Ereignisse erst den OnFocus auslöst und dann das Klick den Focus an die Position der Maus setzt und damit die Selektion aufhebt. Dann könntest Du aber das OnClick-Ereignis mal testen, obs in der Routine funktioniert. |
Re: TEdit komplett markieren bei Mausklick
Also bei meinen Edits, die ich hier produzieren kann, ist AUTOSELECT:=true STANDARD!
Und dabei wird im Edit zwar beim Enterereignis über Tastatur alles markiert, bei der Maus wird bei einfach Klick nichts markiert, bei Doppelklick funktioniert das dann erst wieder. Somit ist der allererste Vorschlag wohl am effizientesten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz