Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1900to1904
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Interface Implementierung

Interface Implementierung
06.10.2022 14:48:17
Ben
Hallo Zusammen,
habe in einem Projekt Interfaces implementiert und in Klassen ausimplementiert.
Von so einer Klasse habe ich dann ein Array erstellt.
Im Überwachungsfenster beim Debuggen sehe ich aber immer nur .
Prinzipiell funktioniert alles, würde aber gerne auch im Debugger alles überprüfen können.
Was kann ich tun?
Viele Grüße
Ben

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Bitte Aufgabenstellung präzisieren
06.10.2022 16:49:07
NoNet
Hallo Ben,
um ehrlich zu sein versteh ich aus Deiner Beschreibung nur "Bahnhof" und ich vermute, das geht anderen genauso.
Versuche doch bitte, das Problem bzw. die Aufgabenstellung konkreter bzw. präziser zu beschreiben - gerne auch unterstützt per Screenshots aus der VBE oder gar mit einer Beispieldatei.
Ich könnte mich auch irren, aber ich glaube mit dieser Beschreibung wirst Du kaum konkrete Hilfe bekommen.
Salut, NoNet
Bahnhof: +1 owT
06.10.2022 17:06:25
Yal
AW: Bahnhof: +1 owT
06.10.2022 17:31:25
Ben
Oh, tut mir leid, da wurde etwas beim Hochladen weggekürzt.
Es muss heißen: Im Überwachungsfenster beim Debuggen sehe ich aber immer nur "keine Variablen".
Also nochmal die Fragestellung.
Ich habe ein Interface L implementiert.
Dann habe ich Klassen z.B. L1 implementiert, die dieses Interface konkret machen.
Dann habe ich Arrays erstellt mit Dim Li() As L
Darauf habe ich das Array befüllt z.B. Set Li(0) = New L1
Wenn ich nun nachvollziehen will beim Debuggen, welche Werte z.B. Li(0) konkret hat, werden die Membervariablen nicht angezeigt. Die einzige Auskunft ist eben "keine Variablen"
Vielen Dank für die Hilfe!
Anzeige
AW: Bahnhof: +1 owT
06.10.2022 18:19:39
Luschi
Hallo Ben,
da es in Vba keine echte Vererbung gibt, sind Interfaces hier 1 Luxusproblem mit den von Dir beschriebenen fehlenden Debugger-Problemen. Da ich immer noch 'ne Menge mit C#-2019 mache, weiß ich um diese Problematik. Das selbe trifft immer dann zu, wenn man DOT.Net-Objekte in Vba einbindet, da gibt es auch keine Zwischeninfos.
Gruß von Luschi
aus klein-Paris
AW: Bahnhof: +1 owT
06.10.2022 19:00:34
Yal
Ach so.
wenn Du einen Array undimensioniert deklarierst, musst Du ihn dimensionieren, bevor Du ihn bevölkern kannst.
Wenn Du diese Schritt für Schritt ergänzen möchtest, musst Du den ReDim zusammen mit Preserve verwenden. Sonst verlierst Du Daten.
Anstatt "Interface" und "Klassen", verwende lieber:
_ "Klasse": die Definition der "Vorlage". Man verwendet dafür einen Klassen-Modul. Diese Definition belegt keine Speicherplatz. und
_ "Objekt": die Instanzierung, also das konkret exisitierende Speicherbelegung, wo Daten vorliegen.
Klassenmodule nenne ich meistens mit dem Präfix "cls". Dementsprechend werden die Objekt instanziert: New clsXxx.

Sub Test()
Dim Arr() As clsMeineKlasse
Arr = Array() 'Dummy-Dimensionierung: UBound(Arr) ist damit = -1. Ohne verursacht UBound(Arr) einen Fehler.
Do While(...)
ReDim Preserve Arr(UBound(Arr) + 1) 'aus -1 wird 0, aus 0, 1, usw
Set Arr(UBound(Arr)) = New clsMeineKlasse 'Objekt-Instanzierung aus der Klasse clsMeineKlasse
Arr(UBound(Arr)).MeineProperty1 = Range("..").Value
Arr(UBound(Arr)).MeineProperty2 = Range("..").Value
'Hier noch irgendwas, sodass irgendwann die While-Bedingung False wird. Sonst endlose Schleife.
'    Verbunden mit Speicher-Allokation durch Objekt-Instanzierung = Absturz
Loop
End Sub
VG
Yal
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige