Ich schrieb ja das ich diese funktion noch nicht kenne, leider ist meine hilfe nicht so umfangreich und enthält keine beispiele wie man es anwendet.
Nach ein wenig herumprobieren bin ich hier gelandet:
Delphi-Quellcode:
procedure TForm1.aplctnvnts1ShortCut(var Msg: TWMKey;
var Handled: Boolean);
begin
(*
TWMKey = packed record
Msg: Cardinal;
CharCode: Word;
Unused: Word;
KeyData: Longint;
Result: Longint;
end;
*)
{
MessageDlg('Msg: '+IntToStr(Msg.Msg)+#13#13+
'CharCode: '+IntToStr(Msg.CharCode)+#13#13+
'Unused: '+IntToStr(Msg.Unused)+#13#13+
'KeyData: '+IntToStr(Msg.KeyData)+#13#13+
'Result: '+IntToStr(Msg.Result)
, mtInformation, [mbOk], 0);
}
// CharCode 13 = VK.Return
if Msg.CharCode = Windows.VK_RETURN then
begin
//Msg.CharCode := Windows.VK_SPACE;
Msg.Result := 1;
ZeigeWas;
end;
end;
Wenn Msg.Result <> 0 dann schluckt der die taste.
Ein Msg.CharCode := Windows.VK_SPACE funktioniert nicht (ich versuchte die taste return auf taste space umzulegen)
Diese Funktion ist auf jedenfall eine möglichkeit das "normale" windows verhalten zu umgehen, super tipp, danke!
Jetzt meine Frage, ruf ich es so richtig auf oder mach ich da was falsch?
Ich würd gerne von euch lernen!
Grüße
edit ps:
aplctnvnts1: TApplicationEvents;
<- so in der Deklaration
edit2: nun hab ich Result := 1 mit Handled := True ersetzt, scheint die bessere lösung aber ob's richtig ist... hmmm...