AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Automatische Anzeige der virt. Tastatur unterdrücken
Thema durchsuchen
Ansicht
Themen-Optionen

Automatische Anzeige der virt. Tastatur unterdrücken

Ein Thema von hotrs02 · begonnen am 25. Jul 2022 · letzter Beitrag vom 16. Aug 2022
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#1

AW: Automatische Anzeige der virt. Tastatur unterdrücken

  Alt 26. Jul 2022, 13:21
DevExpress sagt "seit XE3"
Zitat:
Delphi-Quellcode:
  {$IFDEF DELPHIXE3}
    property TipMode;
  {$ENDIF}
Ahhhhhh, an der Form war es, wo Delphi es auf published stellt und man es da im OI sieht.
Und bei TCustomEdit's auf tipOpen gesetzt.


Hab mal kurz reingesehn, was sie da machen:
Zitat:
Delphi-Quellcode:
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;

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;

// das Kompilieren der Vcl.Controls.pas muß aber viele "wurde deklariert, aber wird nicht verwendet"-Warnungen werfen
Ursprünglich hatten sie damit scheinbar "selber" die Tastatur angezeigt.
Der alte Code zu TabTip.exe / OSK.exe haben sie noch drin,
aber jetzt nutzen sie auch ITextInputPanel.SetInPlaceVisibility .

[add]
Das Ganze scheint aber nur bei TApplication.IsMetropolisUI aktiv zu sein, aber ich kann nirgendwo sehen, wo IsMetropolisUI/UseMetropolisUI aktiviert wird. (klingt nach Windows8-Zeugs)

Zitat:
Delphi-Quellcode:
procedure TWinControl.CreateWnd;
...
  if (Touch.GestureEngine <> nil) and (csGestures in ControlStyle) then
    Touch.GestureEngine.Active := True;
  if Application.IsMetropolisUI and (WindowHandle <> 0) and
    not (csDesigning in ComponentState) then
  begin
    FTIPIntf := nil;
    if Succeeded(CoCreateInstance(CLASS_TextInputPanel, nil,
        CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER, IUnknown, FTIPIntf)) then
    begin
      if Supports(FTIPIntf, ITextInputPanel) then
        (FTIPIntf as ITextInputPanel).Set_AttachedEditWindow(WindowHandle);
    end;
  end;
end;
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (26. Jul 2022 um 14:03 Uhr)
  Mit Zitat antworten Zitat
hotrs02

Registriert seit: 7. Apr 2022
41 Beiträge
 
#2

AW: Automatische Anzeige der virt. Tastatur unterdrücken

  Alt 26. Jul 2022, 13:52
Über die Eigenschaft TipMode war ich letztendlich auf die ITextInputPanel Schnittstelle aufmerksam geworden. Aber wie bereits oben geschrieben, funktioniert die Schnittstelle aktuell nicht mehr wie gewünscht.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz