Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Alternative zu SetFocus (https://www.delphipraxis.net/65523-alternative-zu-setfocus.html)

qb-tim 17. Mär 2006 14:47


Alternative zu SetFocus
 
Hi,

in meinem Vokabeltrainerprogramm habe ich Knöpfe erstellt um Sonderzeichen, die es nicht auf regelmäßigen Tastaturen gibt, in ein Edit einzufügen.
In der procedure des Knopfes habe ich die Zeile
Delphi-Quellcode:
Edit1.SetFocus;
benutzt. Wenn ich jetzt mein Programm laufen lasse, ein paar Buchstaben ins Edit eingebe und anschließend den Sonderzeichenknopf drück markiert SetFocus den ganzen Text!

Was muss ich an SetFocus ändern um den Cursor am Ende des Edit zu schicken?

shmia 17. Mär 2006 15:53

Re: Alternative zu SetFocus
 
Wenn du TSpeedButton verwendest (auf seite "Zusätzlich") brauchst du Setfocus gar nicht
verwenden.

dataspider 17. Mär 2006 15:55

Re: Alternative zu SetFocus
 
Ansonsten ein Beispiel, wo ein Zeichen an der Cursorposition eingefügt wird:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var
  AltAutoSelect : Boolean;
begin
  Edit1.SelText := 'ö';
  AltAutoSelect := Edit1.AutoSelect;
  Edit1.AutoSelect := False;
  Edit1.SetFocus;
  Edit1.AutoSelect := AltAutoSelect;
end;
Cu, Frank

qb-tim 17. Mär 2006 16:05

Re: Alternative zu SetFocus
 
:wiejetzt:

konda 17. Mär 2006 16:07

Re: Alternative zu SetFocus
 
Was verstehts du nicht? :?:

qb-tim 17. Mär 2006 16:10

Re: Alternative zu SetFocus
 
Zitat:

Zitat von dataspider
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var
  AltAutoSelect : Boolean;
begin
  Edit1.SelText := 'ö';
  AltAutoSelect := Edit1.AutoSelect;
  Edit1.AutoSelect := False;
  Edit1.SetFocus;
  Edit1.AutoSelect := AltAutoSelect;
end;

Was machen die einzelnen Befehle. (I mag es nicht Sachen anzuwenden, die ich nicht selbst erklären kann)

dataspider 17. Mär 2006 16:24

Re: Alternative zu SetFocus
 
Also, ein weiteres Beispiel:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  // Cursor hinter letztes Zeichen
  Edit1.SelStart := Length(Edit1.Text);
  // ein kleines 'ö' an Position schreiben
  Edit1.SelText := 'ö';
  // Focus setzten
  Edit1.SetFocus;
  // Markierung aufheben
  Edit1.SelStart := Length(Edit1.Text);
end;
Für weitere Hilfe bitte F1 in der Delphi IDE...

Cu, Frank

himitsu 17. Mär 2006 16:34

Re: Alternative zu SetFocus
 
Oder

Delphi-Quellcode:
i := Edit1.SelStart;
Edit1.SelText := 'ö';
Edit1.SetFocus;
Edit1.SelStart := i + 1; // ein Zeichen weiter hinten einfügen, also hinter das ö
Ein Tipp:
Die OH bringt wirklich viel zum Vorschein, wenn man etwas zu bestimmten Befehlen wissen will.
Und falls die doch mal etwas nicht wissen sollte ... die Suche in der DP, Google, MSDN und wer weiß wo noch verrät oftmals auch noch massig :shock:

qb-tim 17. Mär 2006 19:22

Re: Alternative zu SetFocus
 
OK. Danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:44 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