* As New *; oder wie anders instanzieren

06/04/2011 - 12:50 von Heinz-Mario Frühbeis | Report spam
Hallo!

Ich habe lange überlegt und nun möchte ich mal fragen, ob jemand da
etwas mehr Wissen hat.

Mein Problem ist das "As New".
Mit "As New" kann ich nur Komponenten innerhalb der VB-Umgebung
auswàhlen. Ich brauche es aber um eine Klasse innerhalb eines
User-Projekts instanzieren zu können; ich möchte allerdings auch, das
ich das in meinem Projekt generieren kann *ohne* dafür einen Verweis zu
setzen. (Ich hoffe ihr könnt meine Ausführung dazu verstehen.)

Der User kommt einfach derzeit nicht drum herum *selbst* in *seinem*
Projekt meinem Projekt mitzuteilen "hier kommt KlasseXY As New Klasse1"
-> mach was draus.

Ich könnte zwar den Editor dafür "anwerfen", aber ... (irgendwie finde
ich das -"nicht gut genug"-)
Eventuell kann man, so glaube ich, auch fragen: Wie kann ich innerhalb
eines Projektes eine Klasse durch eine andere Klasse eines anderen
Projektes instanzieren?


Vielleicht möchte ja jemand eine Anregung dazu mitteilen?

Mit Gruß
Heinz-Mario Frühbeis
 

Lesen sie die antworten

#1 Armin Zingler
06/04/2011 - 14:26 | Warnen spam
Am 06.04.2011 12:50, schrieb Heinz-Mario Frühbeis:
Hallo!

Ich habe lange überlegt und nun möchte ich mal fragen, ob jemand da
etwas mehr Wissen hat.

Mein Problem ist das "As New".
Mit "As New" kann ich nur Komponenten innerhalb der VB-Umgebung
auswàhlen. Ich brauche es aber um eine Klasse innerhalb eines
User-Projekts instanzieren zu können; ich möchte allerdings auch, das
ich das in meinem Projekt generieren kann *ohne* dafür einen Verweis zu
setzen. (Ich hoffe ihr könnt meine Ausführung dazu verstehen.)



Wenn dem Compiler der Klassenname nicht bekannt ist, musst du auf
CreateObject setzen. Dafür benötigst du die ProgID.

Der User kommt einfach derzeit nicht drum herum *selbst* in *seinem*
Projekt meinem Projekt mitzuteilen "hier kommt KlasseXY As New Klasse1"
-> mach was draus.



Ist dein Projekt eine Dll oder ein Exe? Was meinst du mit "mitteilen"?
Von welchem Zeitpunkt sprichst du; Entwurfszeit oder Laufzeit? Benötigst
du den Klassennamen zur Entwurfszeit oder zur Laufzeit, oder die ProgID
zur Entwurfszeit oder zur Laufzeit, oder soll deiner Dll(?) ein Objekt
übergeben werden? Für letzteres gibst du entweder den Typ an oder verwendest
As Object und dann entweder late-binding oder, falls möglich, nach Zuweisung
zu einer Variablen bekannten Typs early-binding.
Um zur Laufzeit etwas mitzuteilen, gibt es die Möglichkeit von Events und
Callbacks oder Methodenaufrufe in die andere Richtung.

Ich könnte zwar den Editor dafür "anwerfen", aber ... (irgendwie finde
ich das -"nicht gut genug"-)
Eventuell kann man, so glaube ich, auch fragen: Wie kann ich innerhalb
eines Projektes eine Klasse durch eine andere Klasse eines anderen
Projektes instanzieren?



s.o./s.u.
Mit anderen Worten: Ich verstehe die Frage nicht.

Vielleicht möchte ja jemand eine Anregung dazu mitteilen?



Etwas schwierig. Du fragst nach einer Lösung für ein unbekanntes Szenario.
Mit deiner abstrakten Beschreibung, die ja teilweise mehr Lösungsansatz als
Aufgabenbeschreibung ist, habe ich meine Probleme.


Armin

Ähnliche fragen