AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TTouchkeyboard in verschiedenen Forms

Ein Thema von TomyN · begonnen am 15. Nov 2024 · letzter Beitrag vom 16. Nov 2024
Antwort Antwort
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
252 Beiträge
 
Delphi 10.3 Rio
 
#1

TTouchkeyboard in verschiedenen Forms

  Alt 15. Nov 2024, 17:52
Hallo,

Ich habe hier eine Anwendung, für die ich ein Touchkeyboard verwenden will.
Das funktioniert im Prinzip auch gut, allerdings hab ich folgende Frage:
Ich habe einige (Unter-) Forms, die aus der Mainform aufgerufen werden. Aktuell schaffe ich es nicht, dass ich den Input von einem, im Mainform definiertem, Touchkeyboard, in die jeweils fokusierte Form (bzw. die dort focusierte Control) bringe.
Gibt es da einen Trick, damit ich nicht in jede Form ein TTouchkeyboard einbinden muss?

Vielen Dank
Tomy
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.960 Beiträge
 
Delphi 12 Athens
 
#2

AW: TTouchkeyboard in verschiedenen Forms

  Alt 15. Nov 2024, 21:40
m.W. leider nein!
Wirst da glabe ich nicht drum herum zu kommen.
Tastatureingabe dieses TouchKeyboards geht soweit mir bekannt immer
ins fokussierte Steuerelement des Festers auf dem die ist.
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: TTouchkeyboard in verschiedenen Forms

  Alt 15. Nov 2024, 22:53
Da beim Anklicken das Fenster den Fokus bekommt, kann die Eingabe auch nur in diesem Fenster landen.

Selbst wenn man jetzt die Eingabe abfangen würde, dann wüsste dieses Keyboard / dein Code aber auch nicht mehr, dass vorher ein anderes Fenster den Fokus hatte.


Keyboard auf eine eigene Form, welche beim Klick in den Clientbereich nie den Fokus bekommen darf.
Oder das Keyboard vom Windows nutzen.
C:\Windows\System32\osk.exe

SW_SHOWNOACTIVATE, WS_POPUPWINDOW und irgendwie sowas.


Delphi-Quellcode:
uses Winapi.ShellAPI;

procedure TForm2.Button1Click(Sender: TObject);
begin
  // Lässt sich so aber nicht aus einen Win32-Programm aufrufen ... nur Win64,
  // oder du fängst an bissl zu pfuschen.
  ShellExecute(Self.Handle, nil, {'C:\Windows\System32\osk.exe'}'osk.exe', nil, nil, SW_SHOW);
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
  keybd_event(VK_LWIN, 0, 0, 0);
  keybd_event(VK_OEM_PERIOD, 0, 0, 0);
  keybd_event(VK_OEM_PERIOD, 0, KEYEVENTF_KEYUP, 0);
  keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
end;
Liegt aber nicht am Delphi.
https://stackoverflow.com/questions/...ton-in-c-sharp
https://www.delphipraxis.net/215802-...dows-11-a.html

Und selbst die uralte virtuelle Tastatur 'TapTip.exe' ist nur noch im Win64 verfügbar.
$2B or not $2B

Geändert von himitsu (15. Nov 2024 um 23:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#4

AW: TTouchkeyboard in verschiedenen Forms

  Alt 16. Nov 2024, 00:52
Keyboard auf eine eigene Form, welche beim Klick in den Clientbereich nie den Fokus bekommen darf.
So habe ich das vor einiger Zeit auch mal gelöst. Ist aber schon ein gewisser Aufwand das zu implementieren. Ich habe die Unit mal angehängt. Vcl-Styles sollten funktionieren, aber High-DPI gabs damals noch nicht - könnte aber trotzdem gehen. Da ich das Ding aber schon eine Weile nicht mehr benutzt habe gibt es keine Garantie. Auch der Programmierstil ist vielleicht nicht mehr auf dem neuesten Stand.
Angehängte Dateien
Dateityp: zip Vcl.Touch.Keyboard.Form.zip (2,5 KB, 11x aufgerufen)
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming

Geändert von Uwe Raabe (16. Nov 2024 um 00:55 Uhr)
  Mit Zitat antworten Zitat
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
252 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: TTouchkeyboard in verschiedenen Forms

  Alt 16. Nov 2024, 10:35
Vielen Dank für die Antworten und Ideen. Da es um ein 'privates' Projekt geht, muss ich mich mit dem Kunden (also mit mir) einig werden, welche Lösung Sinn macht. Da das nur auf 64Bit laufen wird, wäre das windows-keyboard vielleicht auch eine Idee.

@Uwe: Mein Programmierstil ist noch etwas älter als der in Deinem Beispiel. Ich habe das Programmieren stark strukturiert erlernt
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  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 04:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz