![]() |
Auf RETURN-drücken im Edit reagieren
Hi ihrs...
weiß jemand von euch was die WM ist, die gesendet wird, wenn in einem Edit eine Taste gedrückt wird? (Ich will anstelle dem "DING" welches man beim drücken der enter-taste hört, eine andere Aktion durchführen) Vielen Dank... |
Re: Auf RETURN-drücken im Edit reagieren
Beim Edit-OnKeyDown-Ereignis:
if key = 13 then {13 ist der ASCII für Return...} begin //Aktion die du durchführen willst end; (damit bekommst du dann "Pling" leider auch nicht weg :( ) |
Re: Auf RETURN-drücken im Edit reagieren
Es funktioniert schon ;)
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin if Key = #13 then Key := #0; end; |
Re: Auf RETURN-drücken im Edit reagieren
Hi,
Du kannst auch das OnKeyPress Ereignis des Edits verwenden. Das sähe dann z.B. so aus
Delphi-Quellcode:
Wobei das Key := #0; dafür sorgt, dass kein Beep-Ton beim Drücken der Enter-Taste erzeugt wird.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin if Key = #13 then begin // Aktion ... Key := #0; end; end; Und, wie bereits erwähnt, steht das #13 für das ASCII Zeichen Nr. 13 (= CR = Carriage Return) und wird gesendet, falls die Enter-Taste gedrückt wurde. mfG mirage228 |
Re: Auf RETURN-drücken im Edit reagieren
Ich suchte eigendlich eine NonVCL-Lösung (WinAPI)...
Weiß dafür jemand eine Lösung? |
Re: Auf RETURN-drücken im Edit reagieren
Hi,
das müsste dann die WM_CHAR Message sein, auf die Du reagieren musst. mfG mirage228 |
Re: Auf RETURN-drücken im Edit reagieren
![]() |
Re: Auf RETURN-drücken im Edit reagieren
Genau das hatte ich mir zuerst auch gedacht...
aber wenn das Edit oder ein anderes Control breits den Focus hat dann passiert bei einer Eingabe nichts mehr... |
Re: Auf RETURN-drücken im Edit reagieren
also der Code unten tut's bei mir jedenfalls. Damit unterbleibt einmal dieses "DING" und andere Aktionen könntest du da ebenfalls noch auszuführen.
Delphi-Quellcode:
...oder wie meintest du das genauer mit dem Focus?
var
Form1: TForm1; OldWndProc : cardinal; implementation {$R *.dfm} function Edit1WndProc(hWnd1: hWnd; uMsg: UInt; wP: WParam; lP : LParam) : LResult; stdcall; begin case uMsg of // ... wm_Char : if wP = 13 then begin wp := 0; // und eine sonstige Aktion! end; end; { of case } Result := CallWindowProc(Pointer(OldWndProc), hWnd1, uMsg, wP, lP); end; procedure TForm1.FormCreate(Sender: TObject); begin OldWndProc := SetWindowLong(TWinControl(Edit1).Handle,GWL_WndProc,integer(@Edit1WndProc)); end; |
Re: Auf RETURN-drücken im Edit reagieren
So gehts tatsächlich...
vielen Dank... ich dachte man könnte das alles in der WndProc der Form erledigen und wusste nicht, dass man noch eine eigene fürs edit erstellen muss/kann. :oops: thx... :love: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz