Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Edit-Text markieren (nix funzt!) (https://www.delphipraxis.net/76577-edit-text-markieren-nix-funzt.html)

Cöster 6. Sep 2006 15:01


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?

freak4fun 6. Sep 2006 15:16

Re: Edit-Text markieren (nix funzt!)
 
Delphi-Quellcode:
procedure TForm1.Edit1Click(Sender: TObject);
begin
  Edit1.SelectAll;
end;
So vielleicht?

MfG
freak

Nils_13 6. Sep 2006 15:35

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;

Zacherl 6. Sep 2006 15:54

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

Cöster 6. Sep 2006 17:20

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.

marabu 6. Sep 2006 17:41

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

Cöster 6. Sep 2006 18:47

Re: Edit-Text markieren (nix funzt!)
 
Zitat:

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

Hm, AutoSelect des Edits ist True. Wenn ich aber in das Edit klicke, blinkt der Cursor einfach nur an der Stelle, wo ich geklickt hab. Es wird nicht der gesamte String im Edit markiert.

Helmi 6. Sep 2006 19:01

Re: Edit-Text markieren (nix funzt!)
 
Hallo,

irgendwie widersprichst du dich:
Zitat:

Zitat von Cöster
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.

mit:
Zitat:

Zitat von Cöster
Hm, AutoSelect des Edits ist True. Wenn ich aber in das Edit klicke, blinkt der Cursor einfach nur an der Stelle, wo ich geklickt hab. Es wird nicht der gesamte String im Edit markiert.


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)

Cöster 6. Sep 2006 19:18

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.

Helmi 6. Sep 2006 19:27

Re: Edit-Text markieren (nix funzt!)
 
Meinst du das:

Delphi-Quellcode:
procedure TForm1.Edit1Click(Sender: TObject);
begin
  with Edit1 do
    begin
      If Focused then
        SelStart := 0
      else
        SelectAll;
    end;
end;
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.

[edit]
hab das noch etwas erweitert, weil man sonst doppelklicken müsste, wenn man direkt reinklickt.
Delphi-Quellcode:
  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;
Vielleicht noch im OnCreate der Form die Variable "Edit_Focus" auf false setzen


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:23 Uhr.
Seite 1 von 2  1 2      

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