delphi – TForm.TipMode属性是什么?

什么是 TForm.TipMode的财产?

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

解决方法

TTipMode在Controls.pas中定义,用于跟踪ITextInputPanel界面中TabTip.exe提供的文本输入面板的状态(打开或关闭).
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,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指出这一点.我已编辑过包含该信息.)

相关文章

 从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都...
  从网上看到《Delphi API HOOK完全说明》这篇文章,基本上...
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c+&#x...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和ED...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的...