Hallo!
Ich habe ein kompliziertes Problem: weil ich Buttons anklicken, aber trozdem Labels und eine Progressbar ändern möchte, muss ich threadübergreifend programmieren. Das hab ich auch mithilfe der Funktion geschafft:
Beispiel für die Progressbar:
[highlight=vbnet]Private Sub GetProgbarValue()
If ProgressBar.InvokeRequired Then
Dim ParArray(0) As String
ParArray(0) = Text
Dim myDelegate As New SetCallBack(AddressOf GetProgbarValue)
Me.Invoke(myDelegate, ParArray)
Else
Return ProgressBar.Value
End If
End Sub[/highlight]
Wenn ich in einer neuen Sub dann schreibe:
[highlight=vbnet]MsgBox(GetProgbarValue())[/highlight]
funktioniert das auch.
Wenn ich aber jetzt ein Objekt zurückgeben möchte (damit ich nicht für jeden Button, Label,... eine eigene Funktion brauche), kann ich dann mit
[highlight=vbnet]MsgBox(GetObjekt(ProgressBar).Value)[/highlight]
den Wert der Progressbar herausfinden möchte, geht das nicht. Es kommt folgender Fehler:
Wie kann ich das Problem am besten lösen?
mfg, davidp
Ich habe ein kompliziertes Problem: weil ich Buttons anklicken, aber trozdem Labels und eine Progressbar ändern möchte, muss ich threadübergreifend programmieren. Das hab ich auch mithilfe der Funktion geschafft:
Beispiel für die Progressbar:
[highlight=vbnet]Private Sub GetProgbarValue()
If ProgressBar.InvokeRequired Then
Dim ParArray(0) As String
ParArray(0) = Text
Dim myDelegate As New SetCallBack(AddressOf GetProgbarValue)
Me.Invoke(myDelegate, ParArray)
Else
Return ProgressBar.Value
End If
End Sub[/highlight]
Wenn ich in einer neuen Sub dann schreibe:
[highlight=vbnet]MsgBox(GetProgbarValue())[/highlight]
funktioniert das auch.
Wenn ich aber jetzt ein Objekt zurückgeben möchte (damit ich nicht für jeden Button, Label,... eine eigene Funktion brauche), kann ich dann mit
[highlight=vbnet]MsgBox(GetObjekt(ProgressBar).Value)[/highlight]
den Wert der Progressbar herausfinden möchte, geht das nicht. Es kommt folgender Fehler:
Die Objektvariable oder die With-Blockvariable wurde nicht festgelegt.
mfg, davidp
Comment