![]() |
Im OnKeyDown Taste abfangen
Hallo!
Im OnKeyPress kann man eine taste ja allgemein so abfangen:
Delphi-Quellcode:
da dort Key vom Typ Char ist. Im OnKeyDown ist es jedoch ein Word. Folgendes geht leider nicht:
Key := #0;
Delphi-Quellcode:
Da passiert einfach nichts, der Text wird normal eingefügt. Wie löse ich das Problem?
Key := 0;
|
Re: Im OnKeyDown Taste abfangen
Wenn Du in einer TForm die Verarbeitung von Tasten per OnKeyDown/Up abfangen willst, müsstest Du doch KeyPreview := True setzen, ansonsten wird der Event der TForm erst NACH der Abarbeitung durch das Client-Control aufgerufen.
|
Re: Im OnKeyDown Taste abfangen
Ich habe vergessen zu erwähnen, dass es um ein SynEdit geht, blöd von mir. Das müsste sich eigentlich verhalten wie ein Memo oder ähnliches.
|
Re: Im OnKeyDown Taste abfangen
Geht das gar nicht? :stupid:
|
Re: Im OnKeyDown Taste abfangen
Ord(#0) ?
..vielleicht so? nicht getestet |
Re: Im OnKeyDown Taste abfangen
Hallo Tyrael!
Danke, aber auch das geht nicht. Das seltsame ist, dass Key := 0; bei der Enter-Taste funktioniert:
Delphi-Quellcode:
if ssShift in Shift then
begin Case Key of //Geht ==> ' ' VK_RETURN: begin Form1.InsertAtCaret(' ', ActSynEdit.CaretX, ActSynEdit.CaretY); Key := 0; end; //geht nicht ==> ' ' (Leerzeichen am Ende) VK_SPACE : begin Form1.InsertAtCaret('', ActSynEdit.CaretX, ActSynEdit.CaretY); Key := Ord(#0); end; end; end; |
Re: Im OnKeyDown Taste abfangen
Hab mal grad die Virtual Key Codes angeguckt
1-254 ist deklariert, aber die Null nicht, einer würde ja noch fehlen und sollte ja dann die Null sein, aber in meiner Windows-Unit kann ich keinen VK-Code für Null finden... ..merkwürdig ist mir nie aufgefallen :gruebel: |
Re: Im OnKeyDown Taste abfangen
Bei mir steht in der Hilfe von Delphi 6 einiges unter "Virtual Key Codes":
Zitat:
Gruß ManuMF P.S.: Den roten Kasten hab ich gesehen, aber vielleicht findet sich doch was in der Liste. |
Re: Im OnKeyDown Taste abfangen
Das sind ja die normalen Key-Codes von 1-254, aber es müssten 255 sein, sprich einer fehlt und mit hoher wahrscheinlich eben die Null.....
|
Re: Im OnKeyDown Taste abfangen
Sowas würde gehen:
Delphi-Quellcode:
Aber auch nicht so die super Lösung. ;)
VK_SPACE : begin
Form1.InsertAtCaret(' ', ActSynEdit.CaretX, ActSynEdit.CaretY); Key := VK_BACK; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:22 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