ActiveX in FIX 4.2.0

Mit der neuen FIX Version 4.2.0 unterstützt FIX/Win das Einbinden von ActiveX Controls. Damit geht FIX einen weiteren großen Schritt in Richtung Windowskonformität.

Der Markt bietet eine große Anzahl an ActiveX Controls für verschiedene Verwendungszwecke. Welche ActiveX Controls zum Einsatz kommen, hängt von der eigentlichen Anwendung ab.

Denkbar ist beispielsweise ein HTML Browser zur Darstellung von Hilfetexten (hier kann der Internet-Explorer verwendet werden, der auf jedem System bereits als ActiveX Control zur Verfügung steht) oder ein Editor mit Syntaxhervorhebung zum Erfassen von längeren Texten in einer Maske. Den Einsatzmöglichkeiten sind keine Grenzen gesetzt.

 

Wie funktioniert das Einbinden eines Controls?

Der erste Schritt besteht darin, die Maske, in die das Control eingebettet wird, zu überarbeiten um so Platz für das Control zu schaffen. Dann wird über einen Funktionsaufruf in der Anwendung dieser Platz für das Control reserviert, mit einer bestimmten ID verknüpft und an ein Feld gebunden. FIX kümmert sich dann um die Darstellung des Controls in dem definierten Bereich. Dabei werden Überlappungen mit anderen FIX-Objekten berücksichtigt.

Im nächsten Schritt muss das ActiveX Control erzeugt werden. Dieser Code ist in der eigenen Benutzerbibliothek zu programmieren. FIX sendet dazu die ID, die als Erkennungsmerkmal gilt an FIX/Win und FIX/Win ruft die Funktion der Benutzerbibliothek damit auf. Der Code der hier zu erstellen ist, besteht aus einem einfachen CreateWindow() Aufruf, der das Control anhand der bereitgestellten Parameter erzeugt.

Damit ist das ActiveX Control sichtbar und wird von FIX aktiviert, sobald das Feld betreten wird, an das es gebunden wurde. Was jetzt noch fehlt, ist das Übertragen von Daten. Hierzu bietet FIX eine Funktion an, mit der Daten in textueller oder binärer Form sowohl synchron als auch asynchron übertragen werden können. Da das Lesen und Schreiben von Eigenschaften bei jedem ActiveX Control anders funktioniert, ist in der Benutzerbibliothek jeweils der notwendige Code dafür zu implementieren. Dieser Code muss die von der FIX-Anwendung gesendeten Daten interpretieren und daraufhin die entsprechenden Funktionen am ActiveX Control aufrufen. Bei einer Leseanforderung muss er die Eigenschaften des Controls auslesen und an die FIX-Anwendung senden.

Beispiele

Die folgenden Beispiele stammen aus dem Softwarepröbchen, das mit FIX ausgeliefert wird und in der Version 4.2.0 überarbeitet wurde.

 

Internet-Explorer -ActiveX-Control zur Darstellung von Hilfetexten

 

Hier wird der Internet-Explorer als ActiveX Control eingebettet, um Hilfetexte darzustellen. Die Hilfetexte des Softwarepröbchens wurden dazu in HTML umgewandelt. Die Buttons am unteren Rand des Fensters stammen nicht vom Internet-Explorer. Hier handelt es sich um Paintareas vom Typ Button. Die Steuerung des ActiveX Controls geht damit über FIX und FIX/Win.

 

Eigenes ActiveX Control zur Bestimmung eines Farbwertes

 

In diese Maske wird ein einfaches ActiveX Control eingebettet, über das eine Farbe eingestellt werden kann. Die Farbe kann entweder über die drei FIX Felder rot, grün und blau eingestellt werden oder direkt im ActiveX Control über die Tasten r, g, b. Beim Verlassen des Controls oder eines der Felder passen sich jeweils die anderen Teile an.

 

Editor-ActiveX Control als SQL-Editor mit Syntax-Highlighting

 

Zur Erfassung von SQL-Statements wird ein Editor mit Syntaxhervorhebung als ActiveX Control in eine FIX-Maske eingebettet. Die Texte werden von der FIX-Anwendung in der Datenbank abgelegt. Dazu wird eine Spalte vom Typ CLOB verwendet.

 

Grid-Control zur Anzeige von Treffermengen

 

Statt das Ergebnis des SQL-Statements in einer FIX-Tabelle darzustellen, wird ein ActiveX Control verwendet. Einer der Vorteile ist, das die Breite der Spalten zur Laufzeit vom Benutzer verändert werden kann.