| Autor |
Beitrag |
j-a-n@gmx.de
      
Beiträge: 84
Delphi 7
|
Verfasst: Di 04.07.06 17:25
kann mir jemand sagen, warum folgendes nicht funktioniert?
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.inArtikelKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_DIVIDE then begin findPositionen(); sendmessage(application.Handle, WM_KEYDOWN, VK_BACK, 0); sendmessage(application.Handle, WM_KEYUP, VK_BACK, 0); end; end; |
inArtikel ist ein TEdit und inArtikelKeyDown entsprechend im OnKeyDown-Ereignis angebunden.
ich möchte mit der Geteilt-Taste des Nummernblocks eine prozedur ausführen, das /-Zeichen soll aber nicht im Feld eingetragen werden....
ich habe auch probiert:
sendmessage(inArtikel.Handle, WM_KEYDOWN, VK_BACK, 0);
inArtikel.process(WM_KEYDOWN, VK_BACK, 0);
aber keins tut...
_________________ --
Dieses Werk ist unter einer Creative Commons 3.0 Lizenz lizenziert und darf unter Namensnennung kopiert, weitergegeben, veröffentlicht und verändert werden.
|
|
Horschdware
      
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: Di 04.07.06 17:30
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.inArtikelKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_DIVIDE then begin findPositionen(); Key := #0; end; end; |
_________________ Delphi: XE - OS: Windows 7 Professional x64
|
|
j-a-n@gmx.de 
      
Beiträge: 84
Delphi 7
|
Verfasst: Mi 05.07.06 09:54
hmm...
das _var_ hatte ich auch schon gesehen, aber keinen erfolg gehabt.
key ist ein WORD, also ein INTEGER und #0 ein CHAR. Klappt also nicht. Probiert habe ich es von 0 bis 65535, über VK_BACK, VK_NONAME und VK_CLEAR. nichts: das zeichen kommt im Feld!.
_________________ --
Dieses Werk ist unter einer Creative Commons 3.0 Lizenz lizenziert und darf unter Namensnennung kopiert, weitergegeben, veröffentlicht und verändert werden.
|
|
crowley
      
Beiträge: 406
Win XP, Win Vista, Mandriva, Ubuntu
Delphi 4-8, Delphi 2006, Delphi 2007
|
Verfasst: Mi 05.07.06 10:15
na... auf basis des oben schon genannten:
- Ord() -> liefert dir zu einem Char den gesuchten KeyCode
- Statt OnKeyDown besser OnKeyPress verwenden... da hast du als Key einen Char und kein Word
|
|
j-a-n@gmx.de 
      
Beiträge: 84
Delphi 7
|
Verfasst: Mi 05.07.06 10:17
crowley hat folgendes geschrieben: | na... auf basis des oben schon genannten:
- Ord() -> liefert dir zu einem Char den gesuchten KeyCode
- Statt OnKeyDown besser OnKeyPress verwenden... da hast du als Key einen Char und kein Word
|
ja schon, weiss ich.
aber ich brauch das WORD um die Tasten des nummernblocks zu erkennen.
_________________ --
Dieses Werk ist unter einer Creative Commons 3.0 Lizenz lizenziert und darf unter Namensnennung kopiert, weitergegeben, veröffentlicht und verändert werden.
|
|
j-a-n@gmx.de 
      
Beiträge: 84
Delphi 7
|
Verfasst: Mi 05.07.06 10:25
hab jetzt im "keyup" auch noch key:=0 gesetzt; kein erfolg.
_________________ --
Dieses Werk ist unter einer Creative Commons 3.0 Lizenz lizenziert und darf unter Namensnennung kopiert, weitergegeben, veröffentlicht und verändert werden.
|
|
ReDoX
Hält's aus hier
Beiträge: 14
WinXP & Linux [VM]
Delphi 7 Professional
|
Verfasst: Mi 05.07.06 11:15
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var Msg: TMsg; begin if Key = VK_DIVIDE then begin Key := 0; PeekMessage(Msg, 0, WM_CHAR, WM_CHAR, PM_REMOVE); showmessage('foo'); end; end; |
|
|
j-a-n@gmx.de 
      
Beiträge: 84
Delphi 7
|
Verfasst: Mi 05.07.06 14:22
ReDoX hat folgendes geschrieben: | Delphi-Quelltext 1:
| PeekMessage(Msg, 0, WM_CHAR, WM_CHAR, PM_REMOVE); | |
danke, das funktioniert jetzt.
was macht der Befehl eigendlich? hab in der hilfe nix gefunden...
_________________ --
Dieses Werk ist unter einer Creative Commons 3.0 Lizenz lizenziert und darf unter Namensnennung kopiert, weitergegeben, veröffentlicht und verändert werden.
|
|
ReDoX
Hält's aus hier
Beiträge: 14
WinXP & Linux [VM]
Delphi 7 Professional
|
Verfasst: Mi 05.07.06 14:33
|
|