Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
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.
Ü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.
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
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