Ok. Fuer so etwas kommt natuerlich die Bildschirmtastatur von Windows nicht in Frage.
Ich habe mal die Software fuer die Claw
http://www.claw.com.au entwickelt. Die hat 10 Tasten.
Fuer die Konfiguration habe ich ein Foto genommen. Die Tasten habe ich mit einem Grafikprogramm ausgeschnitten und als separate Images nochmals auf dem Foto platziert. Das war noetig weil die Rechtecke der Button-Images sich teilweise ueberlagern.
Dann habe ich eine TImage-Ableitung geschrieben, die nur auf Klicks auf nicht transparente Pixel reagiert.
Delphi-Quellcode:
procedure TMouseImage.CMHitTest(var Msg: TWMMouse);
begin
inherited;
if Assigned(Picture) and Assigned(Picture.Bitmap) and Transparent and
(Msg.XPos < Picture.Bitmap.Width) and (Msg.YPos < Picture.Bitmap.Height) and
(Picture.Bitmap.Canvas.Pixels[Msg.XPos, Msg.YPos] = (Picture.Bitmap.TransparentColor and $FFFFFF)) then
Msg.Result := 0;
end;
Das ist die entscheidende Funktion. Der Test, ob die Maus die Komponente getroffen hat, wird manipuliert.
Eine Tastatur verzerrungsfrei zu fotografieren, koennte schwierig werden.