Objekte in Variablen festlegen

beno123

Grünschnabel
Hallo Leute
Ich habe die frage ob man bei vb statt z.b. den Namen eines Shapes zu nutzen irgendwie eine Variable nutzen kann.
Ungefähr so:
Code:
...
select case label
case i = 1  
x = label1
case i = 2
x = label2
case i = 3
x = label3
end select
...
private sub command1_click()
x.visible = false
end sub
 
ja. Mit Set

Visual Basic:
Dim lbl AS Label
Set lbl = myForm.Label1
...
lbl.visible = false
 
vielen dank yaslaw

könnte einer von euch mir noch kurz den fehler in meinem code nennen
Code:
 If Shape2.Visible = True Then
   Set lbl = Shape2
  ElseIf Shape2.Visible = False Then
   Set lbl = Shape4
  ElseIf Shape4.Visible = False Then 'ab hier geht es nicht weiter
   Set lbl = Shape5
   Print "hallo"
   ElseIf Shape5.Visible = False Then
   Set lbl = Shape6
  End If
 
Also erstens würde ich mal die Variable "lbl" mit DIM als entsprechendes Steuerelement dimensionieren (siehe Beispiel von yaslaw) und dann denke ich das du die erste IF-Anweisung beenden und eine neue beginnen musst.

Code:
Dim lbl AsLabel
If Shape2.Visible = True Then
    Set lbl = Shape2
ElseIf Shape2.Visible = False Then
    Set lbl = Shape4
End If

If Shape4.Visible = False Then
    Set lbl = Shape5
    Print "hallo"
End If

If Shape5.Visible = False Then
    Set lbl = Shape6
End If

Wenn es das nicht ist, müsstest du mal beschreiben was genau passiert. "es geht nicht weiter" ist ein bisschen schwach.

Gruß Thomas
 
Wenn man wüsste wie sich der Fehler zeigt und wenn es eine Fehlermeldung ist, was da steht, dann hätten wir ev. das Wissen dir helfen zu können.
 
Gibt es vielleicht auch eine Möglichkeit zu programmieren, dass z.b. mit shape 2 bis 4 etwas passiert wie
das sie unsichtbar werden. Ungefähr so:
Code:
 shape(2-4).visible = false
 
Visual Basic:
for i = 2 to i = 4
 Me("shape" & i).visible = false
next i

Ob die for-Schlaufe so richtig ist weiss ich grad nicht mehr auswendig (programmiere schon lang kein VB/VBA mehr)
 
ich habe noch mal ne frage und zwar in meinem programm sollen sich zwei kreise über den bildschirm bewegen, doch sie tun gat nichts
For i = 11 To i = 12
If Me("Shape" & i).Left + Me("Shape" & i).Width >= Shape10.Left + Shape10.Width Then
q = -q
End If
If Me("Shape" & i).Top + Me("Shape" & i).Height >= Shape10.Top + Shape10.Height Then
q = -q
End If
If Me("Shape" & i).Left <= Shape10.Left Then
q = -q
End If
If Me("Shape" & i).Top <= Shape10.Top Then
q = -q
End If


If t = 1 Then
Me("Shape" & i).Left = Me("Shape" & i).Left - q
ElseIf t = 2 Then
Me("Shape" & i).Left = Me("Shape" & i) + q
ElseIf t = 3 Then
Me("Shape" & i).Top = Me("Shape" & i) + q
ElseIf t = 4 Then
Me("Shape" & i).Top = Me("Shape" & i).Top - q
End If
Next i
 
Bitte den Code formatiert in [code=vb]mein Code[/code] setzen.
So wie er jetzt da steht kann man das Ding kaum lesen
 
Zurück