![]() |
Frage an XE4 Besitzer: WM_POINTER*** API enthalten
Servus,
eine Frage an die XE4 Besitzer: sind in XE4 die Header der Windows POINTER API enthalten? (Also WM_POINTERDOWN Message, GetPointerID, ... vorhanden?) Danke, Uli |
AW: Frage an XE4 Besitzer: WM_POINTER*** API enthalten
Nein, aber WM_TOUCH wird über den TouchManager in VCL und FMX verarbeitet. Leider wurde das ja jetzt von MS als veraltet erklärt :(
|
AW: Frage an XE4 Besitzer: WM_POINTER*** API enthalten
WM_TOUCH hilft mir leider nichts. Ich bräuchte wirklich die W8 WM_POINTER** Geschichte.
Aber Danke für's nachschauen. Uli |
AW: Frage an XE4 Besitzer: WM_POINTER*** API enthalten
Ich hab mir mal die Mühe gemacht und die Pointer API nach Delphi
![]() |
AW: Frage an XE4 Besitzer: WM_POINTER*** API enthalten
Vielen, vielen Dank! :thumb:
Grüße, Uli |
AW: Frage an XE4 Besitzer: WM_POINTER*** API enthalten
Jetzt muß ich hier doch noch mal nachhaken: Soweit hab ich schon ein paar erste Tests mit der WM_POINTERXXX API gemacht und es läuft auch. Nun gibt es ja die Möglichkeit, mit EnabeMouseInPointer(True) auch die Maus via WM_POINTERXXX zu verarbeiten. Nur schlägt bei mir der Aufruf dieser Funktion immer fehl:
Delphi-Quellcode:
liefert mir immer 'Failed to enable MiP: Falscher Parameter' (Fehlercode 87)
uses
..., WinApi.WMPointer, ... procedure TfrmMain.FormShow(Sender: TObject); var nLastError: Cardinal; begin // register mouse events for Pointer if IsMouseInPointerEnabled then memDebug.Lines.Add('MouseInPointer already enabled') else if EnableMouseInPointer(True) then begin memDebug.Lines.Add('tried to enable MouseInPointer'); if not IsMouseInPointerEnabled then memDebug.Lines.Add('Failed to enable MouseInPointer') end else begin nLastError := GetLastError; memDebug.Lines.Add(Format('Failed to enable MiP: %s', [SysErrorMessage(nLastError)])); end; end; Könnte das mal bitte jemand ausprobieren? Was bitte schön kann an diesem Aufruf einen falschen Parameter liefern? Definiert ist die Funktion als
Delphi-Quellcode:
und das stimmt auch mit der Beschreibung im MSDN überein.
function EnableMouseInPointer(
{_In_} fEnable: BOOL): BOOL; stdcall; {$EXTERNALSYM EnableMouseInPointer} Gibt es eigentlich sonst noch jemand, der diese API benutzt? Danke, Uli |
AW: Frage an XE4 Besitzer: WM_POINTER*** API enthalten
Du hast den Abschnitt unter Remarks aber auch gelesen und beherzigt?
![]() |
AW: Frage an XE4 Besitzer: WM_POINTER*** API enthalten
Schon, drum frag ich zuerst den aktuellen Status ab. Nur wenn das nicht aktiviert ist, dann ruf ich die Funktion auf.
Auch wenn man das Ergebnis jetzt mal komplett ignoriert: Mauseingaben werden dann definitiv nicht beachtet: Z.B. WM_POINTERDOWN Messages werden nur für Finger und Stift empfangen, nicht aber, wenn ich mit der Maus klicke. |
AW: Frage an XE4 Besitzer: WM_POINTER*** API enthalten
Du hast Recht, selbst bei einer Konsolenanwendung darf man nie auf True stellen, da protestiert er schon als hätte man schon einmal am Wert gedreht. Komisch.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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