标签: otapi

如何使用ToolsApi将键绑定Shift + Ctrl + HX添加到Delphi IDE?

将新的ShortCut添加到Delphi IDE并不困难,因为Open Tools API为此提供了一项服务.我正在尝试一些显然更复杂的东西:像其他ShortCut一样添加Wordstar:

我想在用户按下时发生一些事情

Shift + Ctrl + H后跟单键X.

无论Shift键的状态如何,X都应该工作.

这是我的代码:

procedure TGxKeyboardBinding.BindKeyboard(const BindingServices: IOTAKeyBindingServices);
const
  DefaultKeyBindingsFlag = kfImplicitShift + kfImplicitModifier + kfImplicitKeypad;
var
  GExpertsShortcut: Byte;
  ShiftState: TShiftState;
  FirstShortCut: TShortCut;
  SecondShortCut: TShortCut;
begin
  GExpertsShortcut := Ord('H');
  ShiftState := [ssShift, ssCtrl];
  FirstShortCut := ShortCut(GExpertsShortcut, ShiftState);
  SecondShortCut := ShortCut(Ord('X'), []);
  BindingServices.AddKeyBinding([FirstShortCut, SecondShortCut],
    TwoKeyBindingHandler, nil,
    DefaultKeyBindingsFlag, '', '');
end;
Run Code Online (Sandbox Code Playgroud)

所以,如果我设置ShiftState:= [ssCtrl]按

按Ctrl + HX

调用我的TwoKeyBindingHandler方法.

但是用ShiftState:= [ssShift,ssCtrl]按下

SHIFT + CTRL + HX

什么也没做.

奇怪的是,当指定ShiftState:= [ssShift,ssCtrl](这应该只影响第一个键)时按

Shift + Ctrl + H Shift + …

delphi otapi

5
推荐指数
1
解决办法
480
查看次数

如何使用Delphi 10.2中的ToolsAPI获取当前项目的版本号

在Delphi 2007中,我可以使用以下ToolsAPI调用轻松获取当前项目的版本信息:

procedure Test;
var
  ProjectOptions: IOTAProjectOptions;
  Project: IOTAProject;
  Major: Variant;
  Minor: Variant;
  Release: Variant;
  Build: Variant;
begin
  // GxOtaGetCurrentProject is a function in GExpert's GX_OTAUtils unit that returns the current IOTAProject
  Project := GxOtaGetCurrentProject;
  if Assigned(Project) then begin
    ProjectOptions := Project.ProjectOptions;
    if Assigned(ProjectOptions) then begin
      Major := ProjectOptions.Values['MajorVersion'];
      Minor := ProjectOptions.Values['MinorVersion'];
      Release := ProjectOptions.Values['Release'];
      Build := ProjectOptions.Values['Build'];
    end;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

在Delphi 10.2.3中,无论实际版本号如何,它都将始终返回版本1.0.0.0.这是"简单"的案例:VCL应用程序.

我还尝试了"Keys"值,它返回一个TStrings指针.在那里我也得到了FileVersion字符串,但它总是"1.0.0.0".

我想这与各种平台和配置的支持有关,但我找不到任何关于它现在应该如何工作的文档.我还搜索了ToolsAPI.pas中的"版本"和"发布",但没有出现任何可疑的内容.

有关如何在Delphi 10.2中获取版本信息的任何提示?

delphi toolsapi otapi delphi-10.2-tokyo

4
推荐指数
1
解决办法
897
查看次数

标签 统计

delphi ×2

otapi ×2

delphi-10.2-tokyo ×1

toolsapi ×1