PDA

View Full Version : ActiveX Event



mac_hasi
28-Jun-2012, 09:16 AM
Hallo,

langsam mache ich immer größere Fortschritte in VisualDataFlex, was mich sehr freut, aber wie soll es anders sein, bin ich wieder mal auf ein Problem gestoßen.

Ich hab in mein Programm eine ActiveX-Komponente eingebunden. Das war noch kein Problem und auch das Ansprechen war kein Problem.
Noch ein paar Details zu meiner Komponente. Ich kann mit dieser Komponente, einen COM-Port ansprechen und dort Daten auslesen. Sobald ich in VDF den Start-Befehl sende, startet die Maschine mit der Datenbestimmung und das dauert ca. 1 Minute. Während dieser Minute, sendet das Gerät immer wieder den aktuellen Status zurück.
Bevor der Status nicht einen gewissen Wert erreicht hat, kann ich die Daten nicht einlesen.

Jetzt schaffe ich es aber nicht den Status auszulesen. In C# gibt es ja einen Eventkatalog, wo ich mir einfach das richtige Event raussuche und dort meinen Code platziere.
In VDF gibts auch Events wie OnClick, OnCreate usw., aber ich finde nirgends einen Katalog wie im Visual Studio von Microsoft. Jetzt stehe ich vor dem Problem, dass ich nicht weiß ob es einen Eventkatalog gibt, wo ich mir nur das richtige Event raussuchen muss, oder wenn es den nicht gibt, wie ich herausfinde, wie das Event heißt, welches ich benötige.

Ich hoffe ich habe mein Problem einigermaßen verständlich erklärt. ;) Danke für jede Antwort.

Herbert Lewandoske
29-Jun-2012, 03:55 AM
Das OCX müsste doch den Event generieren. Schau doch mal in das Pkg, das VDF von deinem OCX generiert hat. Dort solltest du die Events finden.

Grüße Herbert

mac_hasi
2-Jul-2012, 08:40 AM
Ok jetzt habe ich es soweit, dass ich die Daten empfangen kann, aber ich habe jetzt noch ein Problem. In der PKG-Datei gibt es das gesuchte Event



// method TraceEvent
{ MethodType=Event }
Procedure OnComTraceEvent Short llEventNo String llEventText
End_Procedure


Wie bekomme ich am besten von meinem Programm aus die Werte die llEventNo bekommt. Die Procedure wird jedes mal aufgerufen, wenn das Gerät etwas sendet.

Herbert Lewandoske
3-Jul-2012, 03:41 AM
Entweder stehen die Daten im String LLEventText, oder sie werden mit einem weiteren Event (OnComDataArrived oder ähnlich) übergeben. Hast Du keine Dokumentation für das OCX ?

Herbert

mac_hasi
5-Jul-2012, 09:22 AM
Nein Dokumentation gibt es leider keine, aber ich habe es nun geschafft.

Ich habe die aus der ActiveX erstellte PKG-Datei ein bisschen umschreiben müssen und dort über das TraceEvent eine Procedure aufgerufen, mit der ich dann die Daten abarbeite.

Vielen Dank für eure Hilfe.