Hallo!
Ich habe lange gegoogelt, aber immer noch keine vollständige Lösung zu meinem Problem gefunden:
Ich habe in einem HauptactiveX-Steuerelement ein SSTab und auf dessen Tabs weitere externe UnteractiveX-Steuerelemente aus anderen ocx-en gekapselt, aus denen ich auch Events hochreiche. Das soll so sein.
Jedesmal wenn ich an einer Unterocx etwas ändere, muss ich die Unter- und die Hauptocx neu kompilieren und registrieren und ausserdem jedesmal das alte Steuerelement aus der Hauptocx löschen und das neue neu einfügen.
Das ist sehr umständlich. Daher wollte ich das in Zukunft dynamisch, d.h. zur Laufzeit über den Quelltext machen. Da dieses Vorgehen an sich das normalste der Welt ist, wenn man es statisch macht (jedesmal wenn ich einen Button oder ähnliches einfüge, gehe ich ja genauso vor) dürfte es eigentlich kein Problem geben, das auch dynamisch zu machen. Ich komme dabei aber nicht weiter, bzw weiss nicht, wie ich das umsetzen soll. Ich schreibe in der Hauptocx:
Private Unterobjekt As Object
[…]
LoadLibrary(App.Path & „\UnterOcx.ocx“)
Unterobjekt = CreateObjekt(„Projektname.Steuerelementname“)
Das funktioniert.
Allerdings weiss ich nicht, was für ein Objekt ich erzeugt habe. Bzw habe ich es anscheinend falsch erzeugt. Es hat keine Eigenschaften, bzw. jedesmal wenn ich auf Eigenschaften zugreifen will, erhalte ich eine Fehlermeldung. Dabei würde ich dieses Objekt dann gerne auf einem Tab einfügen, weiss aber nicht wie das geht. Auf einem Formular kann ich Forms.Add() schreiben, wie das in einem ActiveX-Steuerelement geht, weiss ich nicht.
SSTab1.Tab = 3
Unterobjekt.Container = SSTab1
Unterobjekt.Top = xx
Unterobjekt.Left = xx
Unterobjekt.Height = xx
Unterobjekt.Width = xx#
[…]
Das alles geht jedenfalls nicht.
Später müßte ich dann mit WithEvents die Ereignisse durchreichen. Aber wie das genau geht, weiss ich noch nicht.
Was mache ich bitte falsch? Bzw. wie geht das? Ich wäre für eine Antwort wirklich sehr dankbar. Ich bin schon unendlich lange am googlen, um zumindest so weit zu kommen, aber ich finde nichts und das ist sehr nervend. Irgendein Erfolgserlebnis muss man doch dabei haben…