| Autor |
Beitrag |
sunspeed
      
Beiträge: 99
Win 95, Win 98,WinME,W2k Win XP
Delphi 4 Pers,Delphi 7 Prof, Delphi 2005 Arch, VS 2003, VS 2005, C#
|
Verfasst: Di 04.10.05 14:52
Guten Tag liebe DF´ler
ich möchte mit meiner Anwendung darauf reagieren, wenn jemand die Taste
ESC drückt. Jede andere Taste is mir egal, mir gehts nur um die Escape Taste.
Ich hab in der Windowsdoku eine Message gefunden die wie ich glaube dafür geeignet wäre.
Delphi-Quelltext 1:
| procedure wmKeyUp(var m:TWMKeyUp); message WM_KEYUP; |
Allerdings, kann ich mir da einen Wolf auf der Tastatur drücken, es entsteht keine
reaktion auf das Drücken von Esc.
Weiß da jemand von euch was ich hier falsch mache?
Gruß Sunspeed Moderiert von Gausi: Topic aus Windows API verschoben am Mi 05.10.2005 um 08:53
_________________ Tiefe Brunnen muss man graben, wenn man klares Wasser will.
Tiefe Wasser sind nicht still!
|
|
digi_c
      
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: Di 04.10.05 15:36
Das Problem ist glaube ich der Fokus, da die meisten Steuerelemente diese Tasten bereits filtern.
Wieso klinktst du dich nicht in das KeyPress des Forms ein?
|
|
sunspeed 
      
Beiträge: 99
Win 95, Win 98,WinME,W2k Win XP
Delphi 4 Pers,Delphi 7 Prof, Delphi 2005 Arch, VS 2003, VS 2005, C#
|
Verfasst: Mi 05.10.05 07:19
Das Problem das ich dabei hatte war, wenn ich in ein Edit auf dem Form klicke,
dann hat das Mainform den focus verloren und er liegt auf dem Edit.
D.h. ich müsste für jede Komponente auf dem Formular ein onKeyPress ereignis erzeugen.
Tja, es scheint mir so, als ob das keine leichte Sache ist.
Ich hab bei Google nix gefunden, in der Delphi bzw. Microsoft SDK Hilfe nix,
ausser auf die WM_KEYUP Message, aber auf die reagiert mein Programm nicht.
_________________ Tiefe Brunnen muss man graben, wenn man klares Wasser will.
Tiefe Wasser sind nicht still!
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 05.10.05 07:51
Stell mal in der Form KeyPreview auf True, und nimm das OnKeyPress Event der Form. Dann klappts
Und das hat dann ja auch nix mehr mit WinApi zu tun, oder? *veschieb*
_________________ We are, we were and will not be.
|
|
sunspeed 
      
Beiträge: 99
Win 95, Win 98,WinME,W2k Win XP
Delphi 4 Pers,Delphi 7 Prof, Delphi 2005 Arch, VS 2003, VS 2005, C#
|
Verfasst: Mi 05.10.05 07:56
Ok, bin voll damit einverstanden den Topic zu verschieben.
Vielen dank, das funktioniert einwandfrei.
Gruß Sunspeed
_________________ Tiefe Brunnen muss man graben, wenn man klares Wasser will.
Tiefe Wasser sind nicht still!
|
|
digi_c
      
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: Mi 05.10.05 12:13
Auch wenn es sich schon erledigt hat, du müsstest nciht so viele Przeduren schreiben, es würde reichen eine Prozedur ztu schreiben und diese allen Komponenten zu verklickern 
|
|
sunspeed 
      
Beiträge: 99
Win 95, Win 98,WinME,W2k Win XP
Delphi 4 Pers,Delphi 7 Prof, Delphi 2005 Arch, VS 2003, VS 2005, C#
|
Verfasst: Mi 05.10.05 12:17
Klar, möglich wär das alles mit sicherheit, aber naja, ich halte nix davon. Meiner Meinung nach wäre das keine saubere Programmierweise. Wie es andere Programmierer machen weiß ich nicht, aber mir wiederstrebt die Art, solch ein Problem auf diese Art zu lösen.
Wie man sieht, gibts für jedes Problem auch eine einfache(re) Lösung.
Trotzdem Danke.
mfg
Sunspeed
_________________ Tiefe Brunnen muss man graben, wenn man klares Wasser will.
Tiefe Wasser sind nicht still!
|
|
|