VisualBasic Name Einer Variable übergeben

Also, es geht definitiv nicht ohne die Schleife. Ich weiß ja nicht wie viele Buttons du auf dem Formular hast, aber ich wage zu bezweifeln, das die Schleife zu Lags führt (evntl. auf einem PII).
mfg Verata
 
Hmm...
Und im Falle wenn die Function noch den Text einer Variable übergeben müsse?
Wie lautet dann der Code?


Code:
Dim a1_btn_Status as String

Private Sub zusammenstellen(ByVal positionAbisC As String, ByVal position1bis3 As Byte)
        Dim bntname As String
        bntname = positionAbisC & CStr(position1bis3) & "_btn" 'Zusammenstellen des Namens
        For Each Button In Me.Controls 'Diese Schleife geht alle auf den Formular plazieren Butten durch
            If Button.name = bntname Then Button.text = "OK" 'und überprüft ob sie den richtigen Namen haben.
        Next
[U]→ Hier[/U]
    End Sub

→ Hier: Hier soll die Function der Variable a1_btn_Status den Inhalt des Textes des a1_btn - Knopfes übergeben. (Also "OK")

Das meinte ich mit Beitrag 20: muss die Schleife jede einzelne Variable des Programmes auf dessen Name durchklappern?
Das Kostet doch zu viel Performance, es muss auch anders gehen.
 
Zuletzt bearbeitet:
Über die Schleife denke ich nocheinmal nach.
für das andere Problem folgende Lösung:
Code:
Dim a1_btn_Status as String

Private Sub zusammenstellen(ByVal positionAbisC As String, ByVal position1bis3 As Byte, Inhalt as string)
        Dim bntname As String
        bntname = positionAbisC & CStr(position1bis3) & "_btn" 'Zusammenstellen des Namens
        For Each Button In Me.Controls 'Diese Schleife geht alle auf den Formular plazieren Butten durch
            If Button.name = bntname Then Button.text = Inhalt  'und überprüft ob sie den richtigen Namen haben.
        Next

    End Sub
 
In deiner Function wird der Text, der der Knopf beinhalten soll, in den Parameter mitgegeben.

Ich wollte aber dass die Function der Variable a1_btn_Status den Text "OK" übergibt.
Die Function soll die Variable nicht direkt ansprechen (a1_btn_Status = "OK" SO NICHT!!!)
sondern indem sie die in der parameter angegebenen positionen zusammensetzt (a1) und _btn_Status hinzufügt.
 
Zuletzt bearbeitet:
Es ist schön und gut, das du es gerne so hättest, aber das geht nicht. Weder in VB noch in C++ noch in sonst einer modernen Programmiersprache. der For each Befehl ist aufgrund der Stackoptimirung wesentlich schneller als jede VB Schleife und ich glaube kaum, das du so viele Buttons hast, das das zum Problem wird. Wenn du ein Laggen vermeiden möchtest müsstest du noch ein Do Events einsetzen. Im Übrigen war bis dato von Schaltflächen, also Klassen die Rede. Mit Variablen geht das sowieso nicht, weil sie wie bereits gesagt in einer exe keine Namen mehr haben. Des weiteren rate ich dir an Capslock und Ausrufungszeichen zu sparen, da meine Hilfsbereitschaft exponential zu ihrer Anzahl sinkt.
mfg Verata
 
Mit Variablen geht das sowieso nicht, weil sie wie bereits gesagt in einer exe keine Namen mehr haben
Hmm... jetzt wird mir klar warum es nicht klappt...

Des weiteren rate ich dir an Capslock und Ausrufungszeichen zu sparen, da meine Hilfsbereitschaft exponential zu ihrer Anzahl sinkt
Capslock habe ich noch nicht richtig benutzt, ein zeichen dafür, dass ich geduldig bin und dass ich selber weiß, dass ich meine Probleme immer eher schlecht ausdrücke.
Das was du am hinteren Ende meines Satzes vom Beitrag 24 wahrgenommen hast (SO NICHT!!) war nur gedacht, da ich kein durchgestrichenes "Ist Gleich" zu Verfügung habe/hatte.
Also ruhig Blut ... :)

Ich bedanke mich dass du mir das klargemacht hast,
NitroTurboRatte
 
Zuletzt bearbeitet:
Freut mich, wenn ich dir helfen konnte. Evntl. könntest du mit mehrdimensionalen Arrys improvisieren.
mfg Verata
 
Zurück
Oben