首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TForm.TipMode属性用于什么?

TForm.TipMode属性用于什么?
EN

Stack Overflow用户
提问于 2014-07-21 21:51:42
回答 1查看 1.8K关注 0票数 10

TForm.TipMode属性用于什么?

它是在Delphi XE3中添加的,但是文档中没有提到这个属性。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-21 22:13:27

TTipMode是在Controls.pas中定义的,用于跟踪ITextInputPanel接口中TabTip.exe中可用的文本输入面板的状态(打开或关闭)。

代码语言:javascript
复制
procedure TWinControl.UpdateTIPStatus;
begin
  if Assigned(FTIPIntf) then
  begin
    if TipMode = tipOpen then SetTextInputPanelStatus(Self, True)
    else if TipMode = tipClose then SetTextInputPanelStatus(Self, False);
  end;
end;

下面是从这个方法调用的SetTextInputPanelStatus过程:

代码语言:javascript
复制
procedure SetTextInputPanelStatus(Control: TWinControl; OpenTIP: Boolean);

  procedure InvokeTabTip;
  const
    DefaultTabTipPath = 'C:\Program Files\Common Files\microsoft shared\ink\TabTip.exe';
    DefaultOnScreenKeyboardPath = 'C:\Windows\System32\OSK.exe';
  var
    TabTipPath: string;
  begin
    TabTipPath := DefaultTabTipPath;
    ShellExecute(0, 'open', PChar(TabTipPath), nil, nil, SW_SHOWNOACTIVATE);
  end;

  procedure OPenTip2;
  begin
    (Control.FTIPIntf as ITextInputPanel).SetInPlaceVisibility(1); // True
  end;

  procedure CloseTip;
  begin
    (Control.FTIPIntf as ITextInputPanel).SetInPlaceVisibility(0); // False
  end;

begin
  if Assigned(Control.FTIPIntf) then
  begin
    if OpenTIP then OpenTip2 // InvokeTabTip
    else CloseTip;
  end;
end;

这表明,如果最后一个参数(OpenTip)是True,它将打开带有命令行的文本输入面板到程序(在OpenTip中完成)。如果参数为False,则关闭该窗口。通过在DefaultTabTipPath指定的位置执行应用程序,可以看到文本输入窗口。

(请注意,包含上述常量的InvokeTabTip代码从未执行;对它的调用将被注释掉。感谢@SertacAkyuz指出这一点。我已经编辑了这些信息。)

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24875468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档