Interssant
da sagt mir das Hint aber was anderes
Dann werd ich die Lösung von gestern nochmal posten müssen..
@TiGü
Ja stimmt, das war in Release compiliert, mit Debug kommt auch nicht so viel mehr raus...
Es ist so das GetTouchInputInfo mag aus irgendeinem Grund den Message Typ "tagMSG" nicht (kommt vom TApplicationEvents bzw
Application.OnMessage). Wenn ich nun eine Prozedur direkt mit dem WM_TOUCH verknüpfe bekomm ich den Message Typ "TMessage".
Diesen frisst die GetTouchInputInfo Funktion...
Code:
procedure wmTouch(var msg : TMessage); message WM_TOUCH;
//..
//..
procedure TfrmMain.wmTouch(var Msg: TMessage);
function tptp(const TouchPoint: TTouchInput): TPoint;
begin
Result := Point(TouchPoint.X div 100, TouchPoint.Y div 100);
PhysicalToLogicalPoint(self.Handle, Result);
end;
var
TouchInputs: array of TTouchInput;
counter: Integer;
Handled: Boolean;
P: TPoint;
begin
Handled := False;
SetLength(TouchInputs, Msg.WParam);
GetTouchInputInfo(Msg.LParam, Msg.WParam, @TouchInputs[0], SizeOf(TTouchInput));
try
frmMainDisp.Memo1.clear;
for counter := 0 to Length(TouchInputs)-1 do
begin
P := tptp(Touchinputs[counter]);
frmMainDisp.Memo1.Lines.Add('X'+ IntToStr(counter) + ': ' +IntToStr(p.x));
frmMainDisp.Memo1.Lines.Add('Y'+ IntToStr(counter) + ': ' +IntToStr(p.y));
end;
Handled := True;
finally
if Handled then
CloseTouchInputHandle(Msg.LParam)
else
inherited;
end;
end;
Das ist im Prinzip genau dasselbe wie "ich2" vor 9 Jahren.
Nur das ich die falschen Messages erhalten habe..
Gruß Hofes