Ich habe ein Formular mit mehreren TEdit und möchte mit Enter von einem ins andere Springen. Weiß jemand wie das geht? Viele Grüße Peter
Announcement
Collapse
No announcement yet.
Mit Enter in nächste TEDIT
Collapse
X
-
Hallo, ich möchte auch meinen Senf zu der Mit-Enter-Ins-Nächste-Feld-Hüpfen-Geschichte dazugeben:<p>
Am besten hat es sich bewährt, wenn man die Eigenschaft <b>KeyPreview</b> des Formulars auf True setzt, und dann im Form.OnKeyDown-Ereignis folgenden Code schreibt:<p>
<pre>
if Key = VK_RETURN then PostMessage(Handle, WM_NEXTDLGCTL, 0, 0);
</pre><p>
Gruß,<br>
Bernhar
Comment
-
Hai ihr alle
Die beste Lösung, meiner Meinung nach, ist diese hier.
Am besten hat es sich bewährt, wenn man die Eigenschaft KeyPreview des Formulars auf True setzt, und dann im Form.OnKeyDown-Ereignis folgenden Code schreibt:
if Key = #13 then
begin
self.Perform(WM_NEXTDLGCTL, 0, 0);
Key := #0;
end;
Dies hat den Vorteil das es sofort gemacht wird und nicht wie bei Sendmessage oder PostMessage irgendwo in der Message-Queue landet
Comment
-
Hm, sagt mal, klappt das denn tatsächlich mit dem Abschalten des Pieptons mit der Anweisung "Key := #0"???<p>
Ich habe diesen Tip zwar jetzt schon in zig Büchern gelesen, aber er hilft bei mir nichts, der Piep-Ton bleibt trotzdem beim Enter. Das selbe Problem hatte ich schon immer in Visual Basic... ?!
Comment
-
Hallo Bernhard,
um das Piepsen zu unterdrücken, muß Du neben dem Ereignis OnKeyDown auch das Ereignis <b>OnKeyPress</b> verarbeiten (wobei das Ereignis OnKeyDown nur bei den sogenannten Funktions/Systemtasten verwendet werden muß -> ansonsten reicht auch das Reagieren auf das Ereignis OnKeyPress).
<b>if key = #13 then key := #0;</b>
Tschüß
Torste
Comment
Comment