Mozes da na formi property KeyPreview postvis na true, pa napravis recimo ovakav kood za OnKeyDown/OnKeyPress:
Code:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
bNum := false;
case key of
VK_NUMPAD0, VK_NUMPAD1, VK_NUMPAD2,
VK_NUMPAD3, VK_NUMPAD4, VK_NUMPAD5,
VK_NUMPAD6, VK_NUMPAD7, VK_NUMPAD8,
VK_NUMPAD9, VK_RETURN:
bnum := true;
end;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not bNum then key := chr(0);
end;
jasno, bNum je boolean promenjiva deklarisana 'negde gore'.
u idealnom svetu bi trebalo da radi i ovo:
Code:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
bNum := false;
case key of
VK_NUMPAD0, VK_NUMPAD1, VK_NUMPAD2,
VK_NUMPAD3, VK_NUMPAD4, VK_NUMPAD5,
VK_NUMPAD6, VK_NUMPAD7, VK_NUMPAD8,
VK_NUMPAD9, VK_RETURN:
key := 0;
end;
end;
...ali iz nekog razloga ne radi (bar ne kod mene).
ss.