![]() |
Enter abfangen
Wenn ich in einem edit oder memous fenster etwas schreibe möchte ich, dass wenn ich auf enter drücke eine Prozedur ausgelöst wir. Wie mache ich das am besten
|
Re: Enter abfangen
Hiermit sollte es gehen.
Delphi-Quellcode:
[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin case key of Vk_Retun: begin (* Quelltext *) end; end; end; |
Re: Enter abfangen
Hi!
Oder du nimmst OnKeyPressed. Dort kannst du sogar einen anderen Code weitergeben. Daß z.B. ein Stern auftaucht. 8-) Dafür einfach If Key=#13 Then Key:='*'; einsetzen. |
Re: Enter abfangen
Um Nebeneffekte (ausführen des Defaultbutton) zu vermeiden sollte man noch die Nachricht WM_GETDLGCODE (DLGC_WANTALLKEYS zurückgeben) abfangen (in Windows).
|
Re: Enter abfangen
was ist das für ne nachricht? und wie fängt man sie ab? - bekommt man dadurch das komische geräusch weg? das ausgelöst wird wenn ich das enter in einem memo abfange
|
Re: Enter abfangen
Damit unterdrückst Du das Soundevent (steht in der Code Library oder so)
Delphi-Quellcode:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var mgsTemp: TMsg; begin if Key = VK_RETURN then PeekMessage(mgsTemp, 0, WM_CHAR, WM_CHAR, PM_REMOVE) end; |
Re: Enter abfangen
Hi,
ich weise dem Key in KeyDown 0 und in KeyPress #0 zu u.a. um die weitere Bearbeitung zu verhindern. Für das Ping macht es auch einen Unterschied was für ein Key abgefragt wird in KeyDown kommen es im Gegensatz zu KeyPress aber nie. Grüße Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:31 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