struct in VB?

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/struct_in_vb_108975/page_1 - zur Vollversion wechseln!


Jedi schrieb am 06.03.2004 um 20:03

gibts eine Möglichkeit in Visual Basic einen Struct (wie in c/c++) zu machen?


mat schrieb am 07.03.2004 um 04:36

Code:
Type FORGETITVBSUCKS
   bIWontCodeVBAnymore As Boolean
End Type


Jedi schrieb am 07.03.2004 um 08:31

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 :rolleyes:
lieber drinnen sitzen als draußen Brücken auf- und abbaun :D


Jedi schrieb am 07.03.2004 um 09:31

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" :rolleyes: 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?


Jedi schrieb am 08.03.2004 um 17:53

Weiß wirklich keiner Rat?

:/


Jedi schrieb am 13.03.2004 um 12:42

*nach oben schieb*


Ringding schrieb am 13.03.2004 um 13:11

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.


Jedi schrieb am 13.03.2004 um 14:28

Bei mir gibts gleich am Anfang eine Fehlermeldung mit (ein Bild sagt bekanntlich mehr als 1000 Worte)click to enlarge

sry wegen quali - hab 56k Modem ;)


Ringding schrieb am 13.03.2004 um 14:50

Da fehlt ein dim


Jedi schrieb am 13.03.2004 um 15:05

autsch ...

danke


nachtrag: wenn du mir noch sagst, wie man in VB einen Cast macht, hat sich der Thread erledigt :)


mat schrieb am 13.03.2004 um 18:46

was willst casten? (gibts das wort?)


Jedi schrieb am 14.03.2004 um 19:39

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 :D ;) )

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 schrieb am 15.03.2004 um 03:42

na ja.. germanism :p

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 schrieb am 15.03.2004 um 04:47

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 :D )



btw: edlen Postzeitpunkt hast du ;)


ICE3D schrieb am 18.03.2004 um 16:30

dürft zwar schon erledigt sein, aber wennst ein objekt einem anderen zuweisen willst musst das mit "set" machen also

Code:
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




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025