我想在 Memo控件上 截获快捷键 然后自己进行处理 小弟现在 做一个程序 需要在 类似Memo的文本框中 截获快捷键进行处理例如 我按下 Ctrl+K 那么我就在Memo中加入'你好' 请问 各位大人如何实现 谢谢 我会多给分的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin case Key of Ord('K'): if ssCtrl in Shift then TMemo(Sender).SelText := '你好'; Ord('L'): if ssCtrl in Shift then TMemo(Sender).SelText := '结帖'; end;end; 谢谢 你的 代码 可能我没有说明白 我是在ini文件里放了 有一些已经些好的 快捷键 例如'F12' 'Ctrl+A'等然后程序运行 先将快捷键 加载 再做判断 如果 用您的代码 那就很麻烦了 不知道 还能不能给各 指点 分一定给的 谢谢 道理是一样的,只不过你读完INI后要用个CASE语句把读到字符串转换成ASCII码然后再象伴水写的那样做判断! //参考,自己动手 Menus.TextToShortCut(); // 先把文本转换成ShortCut Menus.ShortCutToKey(); // 再把ShortCut转换成Key和Shift判断 unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } aatom:atom; procedure hotkey(var msg:tmessage);message wm_hotkey; public { Public declarations } end;var Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);begin aatom:=globaladdatom('hot key'); RegisterHotKey(handle,aatom,MOD_ALT,vk_f12);end;procedure TForm1.hotkey(var msg:tmessage);begin if (msg.LParamHi=VK_F12) and (msg.LParamLo=MOD_ALT) then SetForegroundWindow(handle);end;procedure TForm1.FormDestroy(Sender: TObject);begin globalDeleteatom(aatom);end;end. SockerConnection和DComConnection SQL 有没有直接计算百分比的语句? 有关TDXTimer问题 Delphi 中的语法 intraweb问题,动态新建iwlabel时,不显示! 关于模态窗口的返回值,想获得两个字符串 eveybody Try it ! ^-^ 关于大数据量的负载均衡算法问题,请高手不吝赐教 TIdSchedulerOfThreadPool是做什么的?和TIDTCPServer结合有什么用? 急救!需要隐藏SERVER的方法 如何绘制类似仓库的平面位置图 寻求可以分组的类似TListView的控件
Shift: TShiftState);
begin
case Key of
Ord('K'): if ssCtrl in Shift then TMemo(Sender).SelText := '你好';
Ord('L'): if ssCtrl in Shift then TMemo(Sender).SelText := '结帖';
end;
end;
我是在ini文件里放了 有一些已经些好的 快捷键 例如'F12' 'Ctrl+A'等
然后程序运行 先将快捷键 加载 再做判断 如果 用您的代码 那就很麻烦了
不知道 还能不能给各 指点 分一定给的 谢谢
然后再象伴水写的那样做判断!
Menus.TextToShortCut(); // 先把文本转换成ShortCut
Menus.ShortCutToKey(); // 再把ShortCut转换成Key和Shift判断
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } aatom:atom; procedure hotkey(var msg:tmessage);message wm_hotkey; public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);begin aatom:=globaladdatom('hot key'); RegisterHotKey(handle,aatom,MOD_ALT,vk_f12);end;
procedure TForm1.hotkey(var msg:tmessage);begin if (msg.LParamHi=VK_F12) and (msg.LParamLo=MOD_ALT) then SetForegroundWindow(handle);end;
procedure TForm1.FormDestroy(Sender: TObject);begin globalDeleteatom(aatom);end;
end.