Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   JVHIDControllerClass Eventpipe (https://www.delphipraxis.net/156986-jvhidcontrollerclass-eventpipe.html)

kehrenberger 23. Dez 2010 08:25

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ß

himitsu 23. Dez 2010 08:32

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 HID-Klasse ist leider auch noch nicht ganz fertig und es wird auch noch etwas dauern, da Anderes etwas Vorrang hat.
(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: )

kehrenberger 23. Dez 2010 12:04

AW: JVHIDControllerClass Eventpipe
 
Tja, hab ich gehört, traurig.
Sample wird gemacht. Danke für die schnelle Antwort!

kehrenberger 23. Dez 2010 21:59

AW: JVHIDControllerClass Eventpipe
 
Habe Sample-Projekt in den Projekt-Folder gepostet. Name: Beispiel für JvHIDDeviceController Komponente

himitsu 23. Dez 2010 22:27

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.

kehrenberger 23. Dez 2010 23:05

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 12:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz