AGB  ·  Datenschutz  ·  Impressum  







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

WM_TOUCH und GetTouchInputInfo

Ein Thema von Hofes · begonnen am 11. Apr 2019 · letzter Beitrag vom 12. Apr 2019
Antwort Antwort
Seite 1 von 2  1 2      
Hofes

Registriert seit: 11. Apr 2019
10 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: WM_TOUCH und GetTouchInputInfo

  Alt 11. Apr 2019, 12:39
Code:
procedure TForm1.FormActivate(Sender: TObject);
begin
  RegisterTouchWindow(GetActiveWindow, 0 );
end;
du meinst wohl so oder? (Hat aber auch nichts geändert )

Sollte eigentlich keine Rolle spielen. Wie gesagt, wenn das Window nicht für den Touch registriert wurde, dann würde garkeine
WM_TOUCH Message kommen.

Zu dem Link: Ich hab ein Beispiel von C# getestet. Das Programm benutzt ja genau die selbe Funktion
https://docs.microsoft.com/en-us/win...hpadwmtouchcs-
Und das funktioniert auf dem TouchPanel.

Kann es sein dass die Message zwischenzeitlich schon wo anderst verwertet wird, und der Handle dadurch invalid wird?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: WM_TOUCH und GetTouchInputInfo

  Alt 11. Apr 2019, 12:44
Ich kenne das Programm nicht daher kann ich nur Vermutungen anstellen. Sorry.
Du kannst Touch für deine Form registrieren was ist aber wenn anschließend die Memo dein aktives Window ist? bsp. wenn es den Focus hat?

Und dann? Wie gesagt eine Vermutung.

gruss
  Mit Zitat antworten Zitat
Hofes

Registriert seit: 11. Apr 2019
10 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: WM_TOUCH und GetTouchInputInfo

  Alt 11. Apr 2019, 12:51
Kann ich mir nicht vorstellen, habe auch schon ohne dem Memo getestet und
die Werte einfach in die Caption eines Labels geschrieben - Macht keinen unterschied
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: WM_TOUCH und GetTouchInputInfo

  Alt 11. Apr 2019, 12:57
Kann ich mir nicht vorstellen, habe auch schon ohne dem Memo getestet und
die Werte einfach in die Caption eines Labels geschrieben - Macht keinen unterschied
OK dann bin ich raus.
Ich frage mich nur noch eins wenn ich auf einem Button klicke welche Message wird dann gesendet die deiner Form oder die des Button.
Und welche Winproc ist dann dafür zuständig die des Button(Fenster) oder die deiner Form(Fenster).
Beides sind Fenster welches ist dann das Aktive?

gruss
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: WM_TOUCH und GetTouchInputInfo

  Alt 11. Apr 2019, 13:07
Kann es sein dass die Message zwischenzeitlich schon wo anderst verwertet wird, und der Handle dadurch invalid wird?
Wie sieht denn dein Callstack aus, wenn du im AppMessage anhälst?
  Mit Zitat antworten Zitat
Hofes

Registriert seit: 11. Apr 2019
10 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: WM_TOUCH und GetTouchInputInfo

  Alt 11. Apr 2019, 13:33
Das ist schwierig. Auf meinem Rechner habe ich kein TouchDisplay und auf der Siemens Kiste mit Multitouch ist kein Delphi installiert ...
Wie könnte ich das noch nachschauen ?
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: WM_TOUCH und GetTouchInputInfo

  Alt 11. Apr 2019, 13:47
Probiere doch mal das:
https://stackoverflow.com/a/2337111
  Mit Zitat antworten Zitat
Hofes

Registriert seit: 11. Apr 2019
10 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: WM_TOUCH und GetTouchInputInfo

  Alt 11. Apr 2019, 14:13
Ich hoffe das ist das was du meintest.
Bekomme beim touchen dann genau das hier raus:


(0021DB2D){MultiTouch.exe} [0061EB2D] Unknown function at TMethodImplementationIntercept + $1583FD
(0021BD1F){MultiTouch.exe} [0061CD1F] Unknown function at TMethodImplementationIntercept + $1565EF
(0021DB38){MultiTouch.exe} [0061EB38] Unknown function at TMethodImplementationIntercept + $158408
//hier wird gettouchinputinfo() ausgeführt
(0021DB2D){MultiTouch.exe} [0061EB2D] Unknown function at TMethodImplementationIntercept + $1583FD
(0021BD1F){MultiTouch.exe} [0061CD1F] Unknown function at TMethodImplementationIntercept + $1565EF
(0021DB38){MultiTouch.exe} [0061EB38] Unknown function at TMethodImplementationIntercept + $158408

Der Vorgang wurde erfolgreich beendet



Code:
procedure TForm1.AppMessage(var Msg: tagMSG; var Handled: Boolean);
var
  le: DWORD;
  i: integer;
  lp: HTOUCHINPUT;
begin
  if Msg.message = WM_TOUCH then
  begin
    Handled := false;
    lp := Msg.lParam;
    SetLength(touchinput, Msg.wParam);
    Memo1.Clear;
    SetLastError(0);
    Memo1.Lines.Add(GetCurrentStack);
    succes := GetTouchInputInfo(lp, UINT(Msg.wParam), @touchinput[0], SizeOf(TTouchinput));
    Memo1.Lines.Add(GetCurrentStack);
    if succes then
    begin
      Memo1.Lines.Add('suceeded: ' + BoolToStr(succes));
      Memo1.Lines.Add('msg.wparam: ' + IntToStr(Msg.wParam));
      Memo1.Lines.Add('msg.lparam: ' + IntToStr(Msg.lParam));
      Memo1.Lines.Add('msg.lparam: ' + IntToStr(lp));
      Memo1.Lines.Add('msg.hwnd: ' + IntToStr(Msg.hwnd));

      for i := 0 to Msg.wParam - 1 do
      begin
        Memo1.Lines.Add(IntToStr(touchinput[i].cxContact));
        Memo1.Lines.Add(IntToStr(touchinput[i].cyContact));
      end;
      Handled := true;
    end
    else
    begin
      Memo1.Lines.Add(SysErrorMessage(GetLastError));
    end;

    if Handled then
    begin
      CloseTouchInputHandle(lp);
    end;
  end;
end;
  Mit Zitat antworten Zitat
Hofes

Registriert seit: 11. Apr 2019
10 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: WM_TOUCH und GetTouchInputInfo

  Alt 11. Apr 2019, 14:45
Ich hoffes das ist das was du meintest

Code:
(0021DB2D){MultiTouch.exe} [0061EB2D] Unknown function at TMethodImplementationIntercept + $1583FD
(0021BD1F){MultiTouch.exe} [0061CD1F] Unknown function at TMethodImplementationIntercept + $1565EF
(0021DB38){MultiTouch.exe} [0061EB38] Unknown function at TMethodImplementationIntercept + $158408
//hier wird gettouchinputinfo ausgeführt
(0021DB2D){MultiTouch.exe} [0061EB2D] Unknown function at TMethodImplementationIntercept + $1583FD
(0021BD1F){MultiTouch.exe} [0061CD1F] Unknown function at TMethodImplementationIntercept + $1565EF
(0021DB38){MultiTouch.exe} [0061EB38] Unknown function at TMethodImplementationIntercept + $158408

Der Vorgang wurde erfolgreich beendet

Code:
procedure TForm1.AppMessage(var Msg: tagMSG; var Handled: Boolean);
var
  le: DWORD;
  i: integer;
  lp: HTOUCHINPUT;
begin
  if Msg.message = WM_TOUCH then
  begin
    Handled := false;
    lp := Msg.lParam;
    SetLength(touchinput, Msg.wParam);
    Memo1.Clear;
    SetLastError(0);
    Memo1.Lines.Add(GetCurrentStack);
    succes := GetTouchInputInfo(lp, UINT(Msg.wParam), @touchinput[0], SizeOf(TTouchinput));
    Memo1.Lines.Add(GetCurrentStack);
    if succes then
    begin
      Memo1.Lines.Add('suceeded: ' + BoolToStr(succes));
      Memo1.Lines.Add('msg.wparam: ' + IntToStr(Msg.wParam));
      Memo1.Lines.Add('msg.lparam: ' + IntToStr(Msg.lParam));
      Memo1.Lines.Add('msg.lparam: ' + IntToStr(lp));
      Memo1.Lines.Add('msg.hwnd: ' + IntToStr(Msg.hwnd));

      for i := 0 to Msg.wParam - 1 do
      begin
        Memo1.Lines.Add(IntToStr(touchinput[i].cxContact));
        Memo1.Lines.Add(IntToStr(touchinput[i].cyContact));
      end;
      Handled := true;
    end
    else
    begin
      Memo1.Lines.Add(SysErrorMessage(GetLastError) );
    end;

    if Handled then
    begin
      CloseTouchInputHandle(lp);
    end;
  end;
end;
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: WM_TOUCH und GetTouchInputInfo

  Alt 11. Apr 2019, 15:10
Das ist ein bisschen nichtssagend. Hast du einen Debug-Build oder ein Release-Build rüberkopiert?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

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 05:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz