AGB  ·  Datenschutz  ·  Impressum  







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

Edit-Text markieren (nix funzt!)

Ein Thema von Cöster · begonnen am 6. Sep 2006 · letzter Beitrag vom 7. Sep 2006
Antwort Antwort
Seite 1 von 2  1 2      
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#1

Edit-Text markieren (nix funzt!)

  Alt 6. Sep 2006, 15:01
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?
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Edit-Text markieren (nix funzt!)

  Alt 6. Sep 2006, 15:16
Delphi-Quellcode:
procedure TForm1.Edit1Click(Sender: TObject);
begin
  Edit1.SelectAll;
end;
So vielleicht?

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#3

Re: Edit-Text markieren (nix funzt!)

  Alt 6. Sep 2006, 15:35
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;
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: Edit-Text markieren (nix funzt!)

  Alt 6. Sep 2006, 15:54
Oder versuch mal vorher dem Edit den Focus zu geben mit "Edit.SetFocus" und danach mit "Edit.SelectAll" den Text zu markieren.

Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Edit-Text markieren (nix funzt!)

  Alt 6. Sep 2006, 17:20
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 antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Edit-Text markieren (nix funzt!)

  Alt 6. Sep 2006, 17:41
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
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Edit-Text markieren (nix funzt!)

  Alt 6. Sep 2006, 18:47
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.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Edit-Text markieren (nix funzt!)

  Alt 6. Sep 2006, 19:01
Hallo,

irgendwie widersprichst du dich:
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 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)
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Edit-Text markieren (nix funzt!)

  Alt 6. Sep 2006, 19:18
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.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#10

Re: Edit-Text markieren (nix funzt!)

  Alt 6. Sep 2006, 19:27
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
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:26 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