Klassenmodule verstehen
25.03.2019 21:22:42
Marc
ich versuche gerade die Funktionsweise eines Skriptes zu verstehen, dass mit Hilfe eines Klassenmoduls eine API Verbindung zur Trader Workstation von Interactive Brokers herstellt. Da ich mit Klassenmodulen noch nicht vertraut bin erschließt sich mir die Funktionsweise des Codes noch nicht ganz.
Folgende Schritte habe ich als wesentliche Schritte identifiziert um die Verbindung zwischen VBA und der Desktop Version der Trader Workstation herzustellen:
(Den ganzen Code zu posten würde den Rahmen sprengen.)
1. Erzeugen einer Instanz des Klassenmoduls cTWSControl aus einem einfachen Modul heraus.
Sub InitTWSControl()
Set objTWSControl = New cTWSControl
End Sub
Innerhalb des Klassenmoduls cTWSControl befindet sich unter anderem die folgende Prozedur:Private Sub Class_Initialize()
Set m_TWSControl = New TWSLib.Tws
End Sub
2. Aus dem Code eines Worksheets heraus wird dann durch Klicken eines Buttons die folgende Prozedur ausgelöst, die die beiden zuvor instanzierten Objekte bzw. deren Methoden dazu nutzt die Verbindung herzustellen:Private Sub ConnectToTWS_Click()
Call objTWSControl.m_TWSControl.Connect(connectionHost, connectionPort, clientId, False)
End Sub
Folgender Sachverhalte ist mir dabei unklar:Durch die Instanzierung wurde die Prozedur Private Sub Class_Initialize() doch noch gar nicht ausgeführt oder? Wie ist es also möglich, dass im letzten Schritt durch den Call die Connect Methode des Objekts m_TWSControl genutzt wird?
Ich bin gespannt auf eure Antworten.
Beste Grüße,
Marc