Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TEdit komplett markieren bei Mausklick (https://www.delphipraxis.net/126295-tedit-komplett-markieren-bei-mausklick.html)

ralfiii 22. Dez 2008 10:53


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

lbccaleb 22. Dez 2008 11:03

Re: TEdit komplett markieren bei Mausklick
 
Delphi-Quellcode:
SendMessage(Edit1.handle, EM_SETSEL, 0, -1);
Hoffe das hilft??

toms 22. Dez 2008 11:05

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;

ralfiii 22. Dez 2008 11:18

Re: TEdit komplett markieren bei Mausklick
 
Danke!

Ein
Delphi-Quellcode:
     PostMessage(Edit1.handle, EM_SETSEL, 0, -1);
in den OnEnter-Event uns alles ist gut.

himitsu 24. Dez 2008 11:09

Re: TEdit komplett markieren bei Mausklick
 
Wie wäre es einfach mit .AutoSelect auf True setzen und alles is Gut? :stupid:

API 24. Dez 2008 12:01

Re: TEdit komplett markieren bei Mausklick
 
Zitat:

Zitat von himitsu
Wie wäre es einfach mit .AutoSelect auf True setzen und alles is Gut? :stupid:

Zitat:

Zitat von ralfiii
Ich hätte gerne, dass ein TEdit-Feld erstmal alles markiert wenn der User draufclickt.

Geht das bei dir tatsächlich?

himitsu 24. Dez 2008 13:37

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:

Zitat von ralfiii
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


ts230 24. Dez 2008 18:44

Re: TEdit komplett markieren bei Mausklick
 
Delphi-Quellcode:
Edit1.SelectAll;

Michael Habbe 25. Dez 2008 00:07

Re: TEdit komplett markieren bei Mausklick
 
Es gibt noch 'ne Möglichkeit:

Delphi-Quellcode:
procedure btnXYClick(Sender: TObject);
begin
  edt.SetFocus;
  edt.SelStart := 0;
  edt.SelLength := Length(edt.Text);
end;
Ich weiss nicht, obs auch mit OnEnter klappt. Ausprobieren.
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.

TonyR 25. Dez 2008 00:16

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 18:14 Uhr.
Seite 1 von 3  1 23      

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