Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi On Key Press (https://www.delphipraxis.net/183983-key-press.html)

blondervolker 17. Feb 2015 20:29

On Key Press
 
Hab in meiner Form ein Pagecontrol1 und ein TabSheet2 und ein AdvSmoothTabPager3(von TMS)

In meiner Form :

TImmo.FormKeyPressOnKeyPress hab ich eingefügt:
Delphi-Quellcode:
procedure TImmo.FormKeyPress(Sender: TObject; var Key: Char);
begin
   if Key = #13 then begin
         Key := #0;
          PostMessage(Handle, WM_NextDlgCtl, 0, 0);
       end;
end;
Bei DBRichEdit1,kloppe ich auf die "Enter-Taste" und wollte nur eine Leerzeile bei DBRichEdit1 einfügen.

Wie kann man dies unterdrücken, dass bei Eingabe der Entertaste in ein anderes DBEdit weiterspringt?:shock:

Aviator 17. Feb 2015 20:49

AW: On Key Press
 
Oft wird bei Programmen, bei denen man mit Enter in das nächste Feld springt, die STRG Taste mit abgefragt. [Edit]Wenn es sich um ein RichEdit handelt.[/Edit] Nur wenn STRG+Enter gedrückt wurde, wird eine neue Zeile eingefügt. Vielleicht solltest du darüber nachdenken, ob du dein Programm an die (allseits bekannte) Funktionalität anlehnst.

himitsu 17. Feb 2015 20:58

AW: On Key Press
 
Zitat:

Zitat von blondervolker (Beitrag 1290267)
Wie kann man dies unterdrücken, dass bei Eingabe der Entertaste in ein anderes DBEdit weiterspringt?:shock:

Indem du den Code nicht ausführst, wenn der Fokus in diesem Edit liegt. :roll:

BadenPower 17. Feb 2015 21:02

AW: On Key Press
 
Zitat:

Zitat von blondervolker (Beitrag 1290267)
Wie kann man dies unterdrücken, dass bei Eingabe der Entertaste in ein anderes DBEdit weiterspringt?:shock:

Du hast doch selbst in der OnKeyPress-Prozedure festgelegt, dass, wenn die Enter-Taste gedrückt wird, der Fokus auf das nächste Element gelegt wird.

Wenn Du dieses Verhalten nun doch nicht möchtest, dann lösche die Prozedure wieder.

Zitat:

Zitat von himitsu (Beitrag 1290274)
Indem du den Code nicht ausführst, wenn der Fokus in diesem Edit liegt. :roll:

Das wäre aber auch irreführend, wenn einmal mit Enter der Fokus weitergeleitet wird und in einem anderen Eingabefeld dann wieder nicht.

Entweder immer oder eben gar nicht.


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