![]() |
Edit-Text markieren (nix funzt!)
Hi!
Sobald ein Edit-Feld angeklickt wird, soll der Text darin markiert werden. Ich krieg es nicht gebacken. Die procedure steht im onEnter des Edits. Weder SelStart und SelLength noch SetFocus funktioniert. :( Kann mir jemand helfen? |
Re: Edit-Text markieren (nix funzt!)
Delphi-Quellcode:
So vielleicht?
procedure TForm1.Edit1Click(Sender: TObject);
begin Edit1.SelectAll; end; MfG freak |
Re: Edit-Text markieren (nix funzt!)
Damit du besser SelLength etc. verstehen kannst:
Delphi-Quellcode:
procedure TForm1.Edit1Click(Sender: TObject);
begin with Edit1 do begin SelStart := 0; // von SelLength := Length(Edit1.Text); // bis + markieren end; end; |
Re: Edit-Text markieren (nix funzt!)
Oder versuch mal vorher dem Edit den Focus zu geben mit "Edit.SetFocus" und danach mit "Edit.SelectAll" den Text zu markieren.
Florian |
Re: Edit-Text markieren (nix funzt!)
Wenn der Code im OnClick steht, funktioniert es. Ich will aber nicht, dass immer, wenn man ins Edit klickt, der Edit-Text markiert wird, sondern nur, wenn vor dem Klick der Cursor noch nicht im Edit war. Deswegen muss der Code ins OnEnter. Da funktioniert er aber dann nicht mehr.
|
Re: Edit-Text markieren (nix funzt!)
Hallo,
wenn die Eigenschaft AutoSelect des Edit-Controls auf True gesetzt wurde (default), dann ist das gewünschte Verhalten das Standardverhalten. Grüße vom marabu |
Re: Edit-Text markieren (nix funzt!)
Zitat:
|
Re: Edit-Text markieren (nix funzt!)
Hallo,
irgendwie widersprichst du dich: Zitat:
Zitat:
Also wenn ich nun ein Edit auf die Form leg und "AutoSelect" ist true, dann wird das Edit, wenn es den Focus erhält" markiert (genauer gesagt der Text im Edit). Getestet hab ich es, indem ich einfach einen Button und das Edit auf eine Form gelegt hab und zwischen diesen zwei Controls mit der Tab-Taste den Focus hin und her springen hab lassen. Wenn du aber noch im OnClick des Edit das "SelectAll" einfügt, dann hast du eigentlich genau das, was du willst (jedenfalls das, was du in deinem oben genannten 2. Zitat willst) |
Re: Edit-Text markieren (nix funzt!)
Ich hab es in einem Testprogramm auch so, dass ich ein Edit hab und einen Button, damit ich dem Edit den Focus wieder nehmen kann. Wenn ich die Tab-Taste drücke, wird der Edit-Text auch markiert, so wie es auch sein soll. Der Edit-Text soll aber auch markiert werden, wenn ich das Edit nicht über Tab, sondern durch Klick anwähle.
Wenn der Cursor sich bereits im Edit-Feld befindet und dann noch auf's Edit-Feld geklickt wird, soll der Text darin nicht markiert werden. Wenn aber der Focus gerade auf dem Button liegt und dann auf das Edit geklickt wird, soll sein Text erstmal markiert werden. |
Re: Edit-Text markieren (nix funzt!)
Meinst du das:
Delphi-Quellcode:
Wird dem Edit der Focus durch das "reinspringen" mit der Tabtaste gegeben, dann wird markiert. Wird danach reingeklickt, wird der Cursor an den Anfang des Textes gesetzt und dadurch die Markierung aufgehoben.
procedure TForm1.Edit1Click(Sender: TObject);
begin with Edit1 do begin If Focused then SelStart := 0 else SelectAll; end; end; [edit] hab das noch etwas erweitert, weil man sonst doppelklicken müsste, wenn man direkt reinklickt.
Delphi-Quellcode:
Vielleicht noch im OnCreate der Form die Variable "Edit_Focus" auf false setzen
private
{ Private-Deklarationen } Edit_Focus: Boolean; { ... } procedure TForm1.Edit1Click(Sender: TObject); begin with Edit1 do begin If Focused and not Edit_Focus then begin SelStart := 0; Edit_Focus := true; end else begin SelectAll; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 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