什么是TForm.TipMode属性?

时间:2014-07-21 21:51:43

标签: delphi delphi-xe6

<{p>}的TForm.TipMode属性是什么?

它已在Delphi XE3中添加,但文档中没有提及此属性。

1 个答案:

答案 0 :(得分:10)

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

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过程:

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指出这一点。我编辑过包括那个信息。)