Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi KeyDown - Problem (https://www.delphipraxis.net/104172-keydown-problem.html)

JB-1990 28. Nov 2007 16:13


KeyDown - Problem
 
Hey leuz,
hab da ein Problem mit diesem OnKeyDown.
Es sieht so aus, dass wenn z.B. alt + f4 gedrückt wird es nicht geht (inkompatible typen)
Ich will mein Programm dazu bringen, dass es eine Showmessage bringt, wenn alt + f4 gedrückt wird und es trotzdem am leben bleibt.

Delphi-Quellcode:
KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
das is ja soweit ganz klar aber:

Delphi-Quellcode:
 if (  ssAlt in Shift ) and ( Key = VK_F4 ) tthen Showmessage:='Schade.';
will irgendwie net, der schließt mir das Programm ohne das auszuführen hab schon einiges Probiert, wenn ich 'ctrl' noch dazu setze also

Delphi-Quellcode:
 if ( Shift+ [ssctrl ,ssAlt] = Shift ) and ( Key = VK_F4 ) tthen Showmessage:='Schade.';
klappt das prima, aber mit alt+f4 ni -.-
hat jemand nen Plan wie ich das machen kann?
THX

Progman 28. Nov 2007 16:33

Re: KeyDown - Problem
 
Alt+F4 beendet das Programm. Man kann aber in CloseQuery des Forms CanClose auf False setzen und den Dialog anzeigen.

freak4fun 28. Nov 2007 16:38

Re: KeyDown - Problem
 
Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose := MessageBox(0, 'Wirklich beenden', 'Beenden?', MB_YESNO) = ID_YES;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if((ssAlt in Shift) and (ssCtrl in Shift) and (Key = VK_F4))then
    begin
      ShowMessage('Alt Ctrl + + F4');
    end;
end;
:love:

JB-1990 28. Nov 2007 16:46

Re: KeyDown - Problem
 
THX euch beiden

das mit dem CanClose is echt HAMMER...

und das mit der MessageBox is auch ma nützlich *gg*

JB-1990 28. Nov 2007 16:58

Re: KeyDown - Problem
 
Nächstes Problem ist, wie kann ich jetzt
alt und einen buchstaben z.b. g miteinander verbinden?

Delphi-Quellcode:
 IF ((ssAlt in Shift) AND (Key = 'E')) THEN FScreen.AlphaBlendValue:=200
Inkompatible Typen... hat man ma n schönes Erfolgerlebnis und dann das -.-

DeddyH 28. Nov 2007 17:02

Re: KeyDown - Problem
 
Nimm mal $45 statt 'E'.

JB-1990 28. Nov 2007 17:07

Re: KeyDown - Problem
 
wo gibts so 'ne Tabelle für die Dinger?

DeddyH 28. Nov 2007 17:08

Re: KeyDown - Problem
 
Win32-SDK unter "virtual-key codes"

JB-1990 28. Nov 2007 17:12

Re: KeyDown - Problem
 
THX

Deep-Sea 29. Nov 2007 07:33

Re: KeyDown - Problem
 
Zitat:

Zitat von DeddyH
Nimm mal $45 statt 'E'.

Wie wäre es mit Ord('E') :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:11 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz