Autor Beitrag
j-a-n@gmx.de
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 84


Delphi 7
BeitragVerfasst: Di 04.07.06 17:25 
kann mir jemand sagen, warum folgendes nicht funktioniert?

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 744
Erhaltene Danke: 54

Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
BeitragVerfasst: Di 04.07.06 17:30 
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 84


Delphi 7
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 406

Win XP, Win Vista, Mandriva, Ubuntu
Delphi 4-8, Delphi 2006, Delphi 2007
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 84


Delphi 7
BeitragVerfasst: Mi 05.07.06 10:17 
user profile iconcrowley 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 84


Delphi 7
BeitragVerfasst: 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
BeitragVerfasst: Mi 05.07.06 11:15 
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 84


Delphi 7
BeitragVerfasst: Mi 05.07.06 14:22 
user profile iconReDoX hat folgendes geschrieben:
ausblenden 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
BeitragVerfasst: Mi 05.07.06 14:33