Hallo allerseits, ich hoffe, ich bin im richtigen Forum unterwegs mit meiner Frage.
Ich habe
in diesem Beitrag gelesen, wie die Steuerung der Windows-Touch-Tastatur (oder auch TextInputPanel) möglich sein soll.
Ich hab mich also frisch ans Werk gemacht, die Typenbibliothek PenInputPanelLib_TLB importiert, in einem kleinen Testprogrämmchen ein TextInputPanel erzeugt und möchte diesem mitteilen, dass es sich nicht automatisch öffnen soll, wenn man auf Edit1 tippt.
Soweit ich verstanden habe, sind dazu folgende Schritte notwendig:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
TIP: TextInputPanel;
begin
TIP := CoTextInputPanel.Create; // TextInputPanel erzeugen
TIP.Set_AttachedEditWindow(Edit1.Handle); // Ziel-Komponente zuweisen
TIP.Set_InPlaceVisibleOnFocus(Integer(FALSE)); // TIP bleibt unsichtbar, wenn Ziel-Komponente fokussiert wird
end;
Allerdings sieht die Deklaration von Set_AttachedEditWindow so aus:
function Set_AttachedEditWindow(var AttachedEditWindow: _RemotableHandle): HResult; stdcall;
Was bitte ist ein _RemotableHandle und wie kann ich der Funktion das
Handle meines Edit1 übergeben?
Da die ganze TLB für mich noch fremd ist und eher nach Voodoo aussieht, wäre ich sehr dankbar, wenn mir jemand helfen könnte oder allgemeine Hinweise zum Gebrauch der PenInputPanelLib_TLB geben könnte.
(Der Hintergrund des Ganzen ist übrigens: unsere Software war bisher nur für den Betrieb auf Desktop-PCs mit Touch-Monitor ausgelegt, wo höchstwahrscheinlich eine Hardware-Tastatur verfügbar ist. Es ist also in
fast allen Dialogen ein programminternes TouchKeyboard vorhanden ... aber nur in fast allen. Mit dem Durchbruch der Tablet-PCs soll unsere Software auch da benutzt werden können. Nun ist es meine Aufgabe, das automatische Aufpoppen des Windows TouchKeyboards in den Dialogen mit eigenem Keyboard zu verhindern und in allen anderen zuzulassen
)