DELPHI的组合键CRTL+SAPCE在哪里设置?找不到,要想改成其它的。谢!(50分)

  • 主题发起人 主题发起人 abc_xp
  • 开始时间 开始时间
A

abc_xp

Unregistered / Unconfirmed
GUEST, unregistred user!
DELPHI的组合键CRTL+SAPCE在哪里设置?找不到,要想改成其它的。谢!
 
Sorry!帮你顶!
 
哈哈,楼上的兄弟误解了我的意思

我是说DELPHI的IDE默认有这样一个组合键,我想改成其它的
 
CRTL+SAPCE是操作系統輸入法的開關鍵,
把操作系統輸入法的開關鍵改成別的就可以了
 
对,关闭输入法的Ctrl+Space
这样Delphi中就可以用了!
 
楼上说的对,CRTL+SAPCE是英文和默认中文输入法的切换键。
 
转贴一个:

众所周知中文输入法的英汉切换热键默认是Ctrl+Space,很方便。但是正是由于该热键使
很多中国程序员不知道Delphi的Code Completion的热键也是Ctrl+Space。
有很多人是通过修改输入法的热键来实现的,固然这样做可以随时使用
Code Completion的功能了,但是和大多数人的使用习惯有冲突,可不可以在Delphi中设置
修改热键呢?
DelphiIDE本身是没有该功能的。但是难不倒我们程序员,Delphi不是提供了一个OpenToolsAPI
作为IDE本身扩充的接口么。我们可以在这个上动脑筋。ToolsAPI提供了一个“键盘绑定”
IOTAKeyboardBinding。
{ *************************************************************************** }
{ }
{ Delphi 的IDE代码自动完成快捷键替换程序 }
{ }
{ wr960204(王锐) 2002-2-20 }
{ }
{ *************************************************************************** }

unit UnitNewKeyMap;

interface

uses Windows, Classes, SysUtils, Menus, ToolsAPI, Controls;

procedure Register;

implementation

type //把类写到implementation中免得不必要的访问
TBufferList = class(TNotifierObject, IUnknown, IOTANotifier,
IOTAKeyboardBinding)
function GetBindingType: TBindingType;
function GetDisplayName: string;
function GetName: string;
procedure BindKeyboard(const BindingServices: IOTAKeyBindingServices);
protected
procedure CodeCompletion(const Context: IOTAKeyContext; KeyCode: TShortcut;
var BindingResult: TKeyBindingResult);
end;

procedure Register;
begin
(BorlandIDEServices as
IOTAKeyBoardServices).AddKeyboardBinding(TBufferList.Create);
end;

procedure TBufferList.BindKeyboard(const BindingServices:
IOTAKeyBindingServices);
begin
BindingServices.AddKeyBinding([ShortCut(VK_SPACE, [ssAlt])],
CodeCompletion, Pointer(csCodeList or csManual));
end;

procedure TBufferList.CodeCompletion(const Context: IOTAKeyContext;
KeyCode: TShortcut; var BindingResult: TKeyBindingResult);
begin
(Context.EditBuffer.TopView as
IOTAEditActions).CodeCompletion(Byte(Context.Context));
BindingResult := krHandled;
end;

function TBufferList.GetBindingType: TBindingType;
begin
Result := btPartial;
end;

function TBufferList.GetDisplayName: string;
begin
Result := '代码自动完成解决方案';
end;

function TBufferList.GetName: string;
begin
Result := 'NewKeyMap';
end;

end.
好了把它加入到一个包中,编译并安装。
切换到代码编辑,按以下Alt+Space看看有什么效果。再也不用修改系统输入法的热键了
 
高手就是高手啊!
 
多人接受答案了。
 

Similar threads

回复
0
查看
804
不得闲
回复
0
查看
863
不得闲
D
回复
0
查看
867
DelphiTeacher的专栏
D
后退
顶部