struct in VB?
Jedi 06.03.2004 - 20:03 1107 18
Jedi
PROGrAMmER
|
gibts eine Möglichkeit in Visual Basic einen Struct (wie in c/c++) zu machen?
|
mat
AdministratorLegends never die
|
Type FORGETITVBSUCKS
bIWontCodeVBAnymore As Boolean
End Type
|
Jedi
PROGrAMmER
|
thx ich mag VB auch ned - habs seit über 3 Jahren nimma angerührt  allerdings will mein Kompanie Kommandant unbedingt, dass das Projekterl in VB (bei Exceltabelle) realisiert wird. ich hab eh 2 meiner Meinung nach schönere und bessere Lösungen vorgeschlagen ... was solls  lieber drinnen sitzen als draußen Brücken auf- und abbaun
|
Jedi
PROGrAMmER
|
noch was: Type TreeNode ID as Integer Next as TreeNode End Type gibt mir die Meldung: Microsoft Excel kann das Makro 'KleinerTest.xls!Modul1.Berechnung' nicht finden Jetzt das ganze etwas detailierter: Es soll ein "programm"  für Excel erstellt werden, dass Eingaben in Spalten auswertet und ergänzt z.b. in Spalte B stehen ein haufen Namen, die eingelesen werden und daneben in Spalte C, D, ... was dazu kommt ich bin es mal so heran gegangen, dass ich im Menü einen neuen Button gemacht und dem ein Makro zugewiesen hab. In diesem Makro mach ich dann alles. Im Code Editor gibts beim Projekt eine Auflistung von Microsoft Excel Objekten und Modulen. Bei Excel Objekten ist die aktuelle Arbeitsmappe und die Tabelle(n) aufgelistet (bei mir eben "Tabelle1 (KleinerTest") Bei den Modulen dürften dann z.b. die ganzen Makros aufgelistet sein - bei mir halt "Modul1" Wenn ich nun den Typ definiere Type TreeNode ID as Integer Next as Integer End Type funktionierts soweit ganz gut - nur dass ich dann alles in einer Liste halten und selbst verwalten muss. Schöner würds sein, wenn ich Type TreeNode ID as Integer Next as TreeNode End Type machen könnte. Allerdings funktioniert das nicht. Es wird dann das Macro nicht mehr gefunden. Ich bin schon drauf gekommen, dass vor der Funktion keine ausführbaren Bereiche stehen dürfen, damit die Funktion gefunden wird - aber beim Struct erstellen dürfte doch nichts ausgeführt werden ... Woran kann es liegen?
Bearbeitet von Jedi am 07.03.2004, 09:34
|
Jedi
PROGrAMmER
|
Weiß wirklich keiner Rat?
:/
|
Jedi
PROGrAMmER
|
*nach oben schieb*
|
Ringding
Pilot
|
Du darfst das Ding jedenfalls nicht "Next" nennen, weil das ein Schlüsselwort von VB ist. Eine richtige Lösung hab ich aber jetzt auch noch nicht gefunden.
EDIT: Hmm, das Next beeindruckt ihn gar nicht. Geht anscheinend doch.
Bei mir sagt er jedenfalls "Circular dependencies between modules"
EDIT2: Ich fürchte, man muss den Next-Pointer als Object deklarieren und dann immer casten, wenn man ihn braucht.
Bearbeitet von Ringding am 13.03.2004, 13:13
|
Jedi
PROGrAMmER
|
Bei mir gibts gleich am Anfang eine Fehlermeldung mit (ein Bild sagt bekanntlich mehr als 1000 Worte) sry wegen quali - hab 56k Modem
Bearbeitet von Jedi am 13.03.2004, 14:31
|
Ringding
Pilot
|
Da fehlt ein dim
|
Jedi
PROGrAMmER
|
autsch ... danke nachtrag: wenn du mir noch sagst, wie man in VB einen Cast macht, hat sich der Thread erledigt
Bearbeitet von Jedi am 13.03.2004, 15:09
|
mat
AdministratorLegends never die
|
was willst casten? (gibts das wort?)
|
Jedi
PROGrAMmER
|
einer Object-Variable einfach einen eigenen Typ zuweisen. z.B. wie in Java: Object bla = new Object(); MyClass asdf = new MyClass(); bla = (Object)MyClass(); oder so ähnlich - ich komm grad vom Chargendienst zurück und steh grad a bissl daneben (durchmachen is da nix gutes  ) btw: "casten" hat mein ehemaliger Programmierlehrer zu Hauf im Unterricht verwendet - und er war ein alter C++ und Java Guru ... da muss es das wort doch fast geben
|
mat
AdministratorLegends never die
|
na ja.. germanism  vba is nicht wirklich oop.. soll heissen, wenn du keine vererbung hast, wieso willst du dann casten? würd eher eine convert funktion machen die danach eine "konvertierte" klasse, struct (type dings halt) ausspuckt. besser gehts wahrscheinlich nicht.
|
Jedi
PROGrAMmER
|
ich glaub ich pfeif einfach drauf und verwalte das Ganze selbst in einer Liste eines weiß ich schon sicher: das wird definitiv mein letztes VB Projekt(chen) sein (hab ich mir beim letzten Projekt vor über 4 Jahren auch schon gesagt - fällt mir grad wieder ein  ) btw: edlen Postzeitpunkt hast du
Bearbeitet von Jedi am 15.03.2004, 04:52
|
ICE3D
Addicted
|
dürft zwar schon erledigt sein, aber wennst ein objekt einem anderen zuweisen willst musst das mit "set" machen also dim testnode as TestNode2
set testnode = new TestNode2
set testnode = nothing
if testnode is nothing then
msgbox "testnode = nothing"
end if
...so in der art
Bearbeitet von ICE3D am 18.03.2004, 16:32
|