|
"Auf die Eigenschaften eines Steuerelements in einer OCX-Komponente haben Sie Zugriff, sobald es geladen ist." Diese Aussage mag Ihnen zunächst banal vorkommen. Doch Sie zeigt ein kleines Dilemma auf. Wenn Sie nämlich vorab Informationen aus der Komponente oder über dieselbe benötigen, etwa eine interne Versions-Information, um diese schon beim Start Ihrer Anwendung prüfen zu können, bevor auch nur irgend ein Form geladen ist, sind sie zunächst einmal aufgeschmissen. Denn wie gesagt, "Auf die Eigenschaften eines Steuerelements..."
Seit Visual Basic 6 gibt es einen einfachen Ausweg aus diesem Dilemma. Sie brauchen lediglich eine zusätzliche öffentliche Klasse in das Projekt der Komponente einzufügen und mit entsprechenden Eigenschaften zu versehen. Setzen die Instancing-Eigenschaft der Klasse auf "5 - MultiUse", können Sie jederzeit und unabhängig von den Steuerelementen, die die Komponente zur Verfügung stellt, eine Instanz dieser Klasse anlegen und auf sie zugreifen. Setzen Sie die Instancing-Eigenschaft sogar auf "6 - GlobalMultiUse", brauchen Sie noch nicht einmal extra eine Instanz anzulegen - der Zugriff auf eine Eigenschaft oder der Aufruf einer Methode der Klasse reicht vollauf.
Versehen Sie diese Klasse etwa mit der nur lesbaren Eigenschaft "TestOCXVerInfo", können Sie eine Versionsinformation vorab abrufen. Der Name der Klasse selbst ist unbedeutend. Doch der Name der Eigenschaft sollte hingegen einigermaßen eindeutig sein, damit konfliktfrei auf sie zugegriffen werden kann, falls sich mehrere mit einer solchen Informationsmöglichkeit versehene Komponenten in einem Projekt befinden sollten.
Public Property Get TestOCXVerInfo() As String
With App
TestOCXVerInfo = .Major & "." & .Minor & "." & .Revision
End With
End Property
Und vor dem Laden eines ersten Forms erfolgt der Zugriff beispielsweise in der Sub Main-Prozedur Ihrer Anwendung:
Public Sub Main()
MsgBox TestOCXVerInfo
frmTest.Show
End Sub
|