![]() |
JVHIDControllerClass Eventpipe
Ich benutze seit kurzem die JVHIDControllerClass von Robert Marquardt aus dem Jedi Projekt. Das Auschecken eines HID-Devices und das Lesen davon funktioniert wunderbar. Jedoch habe ich ein Problem mit der Eventbehandlungsroutine Eventpipe, die anscheinend dafür zuständig ist, Events abzufangen, um neu angeschlossene oder entfernte HID Devices zu erkennen und die Deviceliste des HID-Controllers upzudaten.
Wird z.B. irgendwo auf der Form, auf der der HID-Controller verwendet wird, showmessage aufgerufen, wird durch das Öffnen des showmessage Fensters ein Event erzeugt, der von Eventpipe sofort abgearbeitet wird. Das showmessage Fenster wird zwar generiert und angezeigt, aber die Applikation wartet nicht wie üblich auf die Bestätigung des Benutzers bis weitergearbeitet wird.... Hat jemand ein ähnliches Problem und schon eine Lösung gefunden oder eine Anregung, wie man das lösen könnte? Gruß |
AW: JVHIDControllerClass Eventpipe
Robert kann man ja leider nicht mehr fragen. :cry:
Könntest du da mal ein kleines Demoprojekt erstellen, so mit allen nötigen Dateien (auch die von den Jedi) im Projektverzeichnis? Wenn ja, dann kann ich die nächsten Tage mal versuchen reinzusehn. Meine eigene ![]() (Speziell beim Erkennen neuer Geräte hatte sich leider irgendwo ein Fehler eingeschließen, als ich da Einiges umgebaut hatte, und den fand ich noch nicht :wall: ) |
AW: JVHIDControllerClass Eventpipe
Tja, hab ich gehört, traurig.
Sample wird gemacht. Danke für die schnelle Antwort! |
AW: JVHIDControllerClass Eventpipe
Habe Sample-Projekt in den Projekt-Folder gepostet. Name: Beispiel für JvHIDDeviceController Komponente
|
AW: JVHIDControllerClass Eventpipe
Liste der Anhänge anzeigen (Anzahl: 1)
Schön, daß man Demos bekommt, wo vieles fehlt oder nicht funktioniert. :stupid:
ich hab halt grad kein JEDI installiert ... komplett siehe Anhang (mal so zum Vergleich) Nja, aber ich glaub ich hab dich eh mißverstanden. Ja, es ist normal, daß Timer und andere Messages verarbeitet, wärend ein Dialog angezeigt wird. Wärend der Anzeige wird quasi Application.ProcessMessages ausgeführt, worüber der Timer behandelt wird. Es liegt also nicht an der Komponente, sondern am Dialog. PS: Ein neuer Thread hätte dafür nicht sein müssen. |
AW: JVHIDControllerClass Eventpipe
sorry, die hab ich wohl vergessen... Danke für Deine schnelle Antwort.
Also, wenn ich Dich richtig verstehe, läuft der Timer bei einem aktiven, offenen showmessage Dialog trotzdem weiter...das werde ich mir noch ansehen. Aber lassen wir den Timer mal weg. Warum springt, sobald der showmessage Dialog aktiv ist, das Programm auf EventPipe? Eigentlich sollten doch nur DeviceChange Ereignissen abgefangen und nach EventPipe gesprungen werden, oder? Habe dies gefunden in JvHidDeviceController.pas:
Delphi-Quellcode:
if IsHidLoaded then
begin HidD_GetHidGuid(FHidGuid); // only hook messages if there is a HID DLL FHWnd := AllocateHWnd(EventPipe); // this one executes after Create completed which ensures // that all global elements like Application.MainForm are initialized PostMessage(FHWnd, WM_DEVICECHANGE, DBT_DEVNODES_CHANGED, -1); end |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 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 by Thomas Breitkreuz