Einzelnen Beitrag anzeigen

Fukiszo
(Gast)

n/a Beiträge
 
#22

AW: Key wird nicht gelöscht, warum?

  Alt 31. Jan 2018, 12:15
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...

Geändert von Fukiszo (31. Jan 2018 um 13:13 Uhr)
  Mit Zitat antworten Zitat