Do czego służy właściwość TForm.TipMode
?Do czego służy właściwość TForm.TipMode?
Został dodany w Delphi XE3, ale dokumentacja nie mówi nic o tej właściwości.
Do czego służy właściwość TForm.TipMode
?Do czego służy właściwość TForm.TipMode?
Został dodany w Delphi XE3, ale dokumentacja nie mówi nic o tej właściwości.
TTipMode
jest zdefiniowane w pliku Controls.pas i służy do śledzenia stanu (otwartego lub zamkniętego) panelu wprowadzania tekstu dostępnego pod adresem TabTip.exe
, który znajduje się w interfejsie 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;
Oto procedura SetTextInputPanelStatus
że nazywa się od tej metody:
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;
To pokazuje, że jeśli końcowy parametr (OpenTip
) jest True
, otwiera panel wprowadzania tekstu z linii poleceń do program (wykonane w OpenTip
). Jeśli parametr jest False
, zamyka to okno. Możesz zobaczyć okno wprowadzania tekstu, uruchamiając aplikację w lokalizacji określonej przez DefaultTabTipPath
.
(Należy pamiętać, że kod dla InvokeTabTip
, który zawiera tę stałą, uwzględnione powyżej, nigdy nie jest wykonywany, wywołanie do niego jest komentowane. Dzięki @SertacAkyuz za wskazanie tego. Zmontowałem, aby uwzględnić te informacje.)
Czy to jest kod VCL? Twarda zakodowana ścieżka? Spodziewam się, że przynajmniej kod zajrzy do 'HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ App Paths \ TabTip.exe'. Nawet sam klucz nie jest tak mocno zakodowany: '% CommonProgramFiles% \ microsoft shared \ ink \ TabTip.exe' –
@Sertac: Tak, obawiam się, że jest, prosto z VCL.Controls.Pas, około linii 13360, w XE6. –
Wygląda na to, że i tak jest to martwy kod. –
Przestałem być zaskoczony nieudokumentowanymi funkcjami w nowej pomocy Delphi. Teraz jestem zdumiony, że znalazłem funkcję, która jest udokumentowana. – Ampere