什么是
TForm.TipMode
的财产?
解决方法
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指出这一点.我已编辑过包含该信息.)