AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TEdit komplett markieren bei Mausklick

Ein Thema von ralfiii · begonnen am 22. Dez 2008 · letzter Beitrag vom 27. Dez 2008
Antwort Antwort
Seite 2 von 3     12 3      
Micha88
(Gast)

n/a Beiträge
 
#11

Re: TEdit komplett markieren bei Mausklick

  Alt 25. Dez 2008, 01:17
Wieso nicht ganz einfach so:

Delphi-Quellcode:
procedure TForm1.Edit1Click(Sender: TObject);
begin
 Edit1.SelectAll;
end;
Edit: hatte mir das Problem nicht richtig durchgelesen ..
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#12

Re: TEdit komplett markieren bei Mausklick

  Alt 25. Dez 2008, 01:20
Zitat von MichaelLinden:
Wieso nicht ganz einfach so:

Delphi-Quellcode:
procedure TForm1.Edit1Click(Sender: TObject);
begin
 Edit1.SelectAll;
end;
Weil man auch über die Tab-Taste das Edit fokussieren kann.
  Mit Zitat antworten Zitat
Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: TEdit komplett markieren bei Mausklick

  Alt 25. Dez 2008, 01:21
Das klappt wunderbar.
Mit der Tabulatortaste wird wie gehabt alles markiert.
  Mit Zitat antworten Zitat
Benutzerbild von TonyR
TonyR

Registriert seit: 17. Jun 2006
Ort: Bautzen
503 Beiträge
 
FreePascal / Lazarus
 
#14

Re: TEdit komplett markieren bei Mausklick

  Alt 25. Dez 2008, 01:25
Michael Linden, dabei benötigt man extra noch wieder eine Variable, die man andauernd umschalten muss, weil das Markieren ja nur beim ersten Klicken aufs Edit stattfinden soll, also immer nur wenns den Fokus bekommt.
Es ist unmöglich, witzig zu sein ohne ein bisschen Bosheit. Die Bosheit eines guten Witzes ist der Widerhaken, der ihn haften lässt. - Georg Christoph Lichtenberg
  Mit Zitat antworten Zitat
Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: TEdit komplett markieren bei Mausklick

  Alt 25. Dez 2008, 01:55
Ok. Lesen bildet.

Aber beim Firefox verhält es sich (scheinbar) so, dass nach kompletter Markierung der Adresse der Fokus aus dem Edit verschwindet. Zumindest blinkt da nix mehr.


Nun, wie Tony schon schrieb, nimm ein paar Variablen und setze sie in den Ereignissen OnEnter, OnKlick und OnMausDaun.
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#16

Re: TEdit komplett markieren bei Mausklick

  Alt 25. Dez 2008, 08:36
Zitat von himitsu:
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
Bei welcher Delphi Version ist das so?
Bei mir wird nur alles markiert, wenn mit Tab navigiert wird, jedoch wird bei einfachem Klick auf das Edit
nicht alles markiert bei AutoSelect := True.
Das dürfte bei allen Delphi Versionen so sein.
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: TEdit komplett markieren bei Mausklick

  Alt 25. Dez 2008, 08:56
Versteh gerade euer Problem nicht!

Denn:

Zitat von ralfiii:
Ein
     PostMessage(Edit1.handle, EM_SETSEL, 0, -1); in den OnEnter-Event uns alles ist gut.
geht bei mir genauso gut!

Edit:
Auch mit Tabulator!
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#18

Re: TEdit komplett markieren bei Mausklick

  Alt 25. Dez 2008, 09:00
Ja, das PostMessage() funktioniert hervorragend. SelectAll im OnClick und Setzen des AutoSelect := True funktinieren hingegen nicht. Man kann das ja mal selber ausprobieren, bevor so was als Lösung präsentiert wird.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#19

Re: TEdit komplett markieren bei Mausklick

  Alt 26. Dez 2008, 17:43
komisch, ar mir garnicht so aufgefallen, aber es stimm, wenn man es mit der Maus anklickt, wird die Marierung nicht so gesetzt, wie gedacht
(ich arbeite wohl wirlich zuviel mit der Tastatur, anstatt mit der Maus)

hab aber grad nochma in der OH nachgeschaut und da klingt es auch anders, als es ist
Zitat:
Die Eigenschaft AutoSelect bestimmt, ob der gesamte Text im Eingabefeld automatisch markiert wird, wenn das Steuerelement den Fokus erhält.
schon komisch, was ein not (csLButtonDown in ControlState) in CM_ENTER so alles verändert

PS: da EM_SETSEL eine Nachricht mit Rückgabewert ist, wäre SendMessage (statt PostMessage) richtiger,
oder direkt .SelectAll

Und dann wolltest du es doch nur beim ersten Klick markiert haben, also .OnEnter, statt .OnClick
hmmm OnClick wird nach OnEnter ausgeführt und irgendwie wird da der Cursor nochmal neu gesetzt


Aber ein Problem hast du dennoch ... du wolltest doch nicht mehr alles markiert haben, wenn du nochmals Klickst und das geht im OnClick nicht.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#20

Re: TEdit komplett markieren bei Mausklick

  Alt 26. Dez 2008, 20:27
Zitat von himitsu:
Aber ein Problem hast du dennoch ... du wolltest doch nicht mehr alles markiert haben, wenn du nochmals Klickst und das geht im OnClick nicht.
Darum einfach ein .SelectAll im OnEnter. Das PostMessage / SendMessage ist unnötig, da ein .SelectAll
dies aufruft:
 SendMessage(Handle, EM_SETSEL, 0, -1);
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 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