[VB6] Objekte dynamisch ansprechen

Nossi

Captain
Registriert
Okt. 2002
Beiträge
3.893
Ahoi alle miteinander, es geht mal wieder um Monopoly ;)

Ich habe eine ganze Reihe von Pictureboxen, die ich durchnummeriert habe (Feld1 , Feld2, Feld3...). Ich möchte anhand der aktuellen spielerposition, welche ich in dem Array intspielerpos(intspieleramzug) gespeichert habe genau das Feld ansprechen, auf dem sich der aktuelle Spieler derzeit befindet, damit ich es einfärben kann. Normalerweise würde ich bei sowas eine Select Case anweisung benutzen, allerdings dreht sich mir der Magen um, wenn ich an den Quellcode denke, den ich brauche um 40 dieser Felder anzusprechen. Da muss es doch mit sicherheit eine effektivere Methode geben, um das ganze dynamisch zu gestalten, in etwa so ähnlich wie ein Array.

So in etwa in Pseudocode

Code:
 Feld(intspielerpos(intspieleramzug)).color = color(intspieleramzug)

Ich hoffe es hat jemand eine Anregung für mich, wie ich das geregelt bekomme.

Gruß Nossi
 
Ich bin mir jetzt nicht sicher, ob ich das Problem richtig verstanden habe. Kleines Beispiel: Spieler 2 ist auf Feld 8, also ist "intspielerpos(2) = 8", oder? Und somit willst du Feld 8 einfärben? Falls das so ist, ist das wirklich relativ unproblematisch.

Du musst aber die Felder umbenennen. Also sodass sie nicht Feld1, Feld2, Feld3 etc. heissen, sondern Feld1(0), Feld1(1)... Das erreichst du, indem du alle Felder Feld1 nennst und von jedem den Index hochzählst (0, 1, 2...).

Na ja, und dann sagst einfach Feld1(intspielerpos(intspieleramzug)).color = vbgreen oder so...

Ich hoffe, das hilft weiter, sonst einfach weiterfragen...;-)
 
Hey cool, das ist genau das, was ich meinte :)
Werds gleich mal ausprobieren...

Edit: Wunderbär hat 1a geklappt *karmavergeb*
 
Zuletzt bearbeitet:
Zurück
Oben