keyPress事件求助

knife_s 2007-06-28 10:09:57
想将按F1输入¢

应该如何写?
...全文
153 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongqi162 2007-06-28
  • 打赏
  • 举报
回复
form1.KeyPreview:=true;
//
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = vk_f1 then
Edit1.Text:=Edit1.Text+'¢';
end;
knife_s 2007-06-28
  • 打赏
  • 举报
回复
谢谢!
ysai 2007-06-28
  • 打赏
  • 举报
回复
procedure Sendkeys(focushld: HWND; sSend: string);
var
i:integer;
ch: byte;
begin
i := 1;
SendMessage(focushld, WM_IME_SELECT, WPARAM(true), 255);
while i <= Length(sSend) do
begin
ch := byte(sSend[i]);
if Windows.IsDBCSLeadByte(ch) then
begin
Inc(i);
SendMessage(focushld, WM_IME_CHAR, MakeWord(byte(sSend[i]), ch), 0);
end
else
SendMessage(focushld, WM_IME_CHAR, word(ch), 0);
Inc(i);
end;
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = 'a' then
begin
key := #0;
Sendkeys(ActiveControl.Handle, '¢');
end;
end;
knife_s 2007-06-28
  • 打赏
  • 举报
回复
keyDown中,我知道了

不截获控制键,按A输入也可以
doni 2007-06-28
  • 打赏
  • 举报
回复
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=$70 then
Edit1.Text:=Edit1.Text+'¢';

end;
ysai 2007-06-28
  • 打赏
  • 举报
回复
OnKeyPress事件并不能截获控制键,所以这个事件办不到
knife_s 2007-06-28
  • 打赏
  • 举报
回复
PS:必须是将KeyPress中的Key替换

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧