Einzelnen Beitrag anzeigen

mcbain

Registriert seit: 18. Mai 2011
50 Beiträge
 
#1

Virtuelle Tastatur ohne Focus

  Alt 16. Nov 2011, 11:48
Hallo,

ich möchte auf Knopfdruck eine virtuelle Tastatur einblenden. Hierfür verwende ich die Tastatur-Komponente in Delphi2010.
Allerdings darf die Form auf der die Tastatur-Komponente liegt natürlich nie den Focus erhalten sobald ich eine Taste darauf mit der Maus anklicke. Ich verwende bisher folgenden Code:

Code:


procedure TForm3.CreateParams(var Params: TCreateParams);      //Kein Focus für die Tastatur-Form
begin
  inherited;
  Params.ExStyle := Params.ExStyle + WS_EX_NOACTIVATE;
end;



procedure TForm3.FormCreate(Sender: TObject);
var i: Integer;
begin
  SetWindowLong(Handle, GWL_STYLE, (GetWindowLong(Handle, GWL_STYLE) and not WS_Caption));
  ClientHeight := Height;
  Refresh;

  Top := Screen.Height - ClientHeight - 50;
  Left := (Screen.Width div 2) - (Width div 2);
  FormStyle := fsStayOnTop;

end;
Dieser Code funktioniert auch, aber nur, wenn ich es in einem externen Programm auslagere. Sprich der obige Code ist in der Tastatur.exe und ich rufe mit Createprocess aus einer anderen Anwendung die Tastatur.exe auf.
Ich möchte aber kein externes Programm aufrufen, sondern direkt aus meiner Anwendung eine Form mit der Tastatur-Komponente darauf anzeigen.
Leider funktioniert es dann nicht mehr. Die aufrufende Mainform verliert den Focus an die form mit der Tastatur-Komponente darauf, sobald ich auf die Tasten der Tastatur klicke. Und somit werden natürlich die Eingaben auf der Tastatur nicht in meine Edit-Felder auf der aufrufenden Mainform geschrieben.

Wäre nett, wenn mir jemand kurz weiterhelfen könnte.
Vielen Dank.
Gruß
mc
  Mit Zitat antworten Zitat