Что не так с передачей меня в качестве параметра в функции CallbyName под vb6?
Я хочу передать исходную форму, из которой я использую функцию CallByName. Почему-то это не работает так, как я размещаю там.
Private Sub Command1_Click()
'CallByName Form1, "TestFkt", VbMethod, Nothing, Command1 '<--- works
CallByName Form1, "TestFkt", VbMethod, Me, Command1 '<--- Problem
End Sub
Public Function TestFkt(ParamArray myParams())
Dim oForm As Object
Set oForm = myParams(0)
' ...
End Function
Ошибка, сообщаемая из vb6, - это ошибка времени выполнения 450: "Falsche Anzahl a Argumenten oder ungültige Zuweisung zu einer Eigenschaft". Я думаю, что первая причина не в проблеме, потому что вышеприведенная строка работает. Больше похоже, что проблема связана с ключевым словом me.
Есть идеи?
1 ответ
Решение
Это не CallByName
:
TestFkt Form1, Me
Также не действует, так как вы не можете пройти Me
при использовании ParamArray
, Это особенность Me
что-то особенное.
Временное решение:
Dim fMe As VB.Form: Set fMe = Me
CallByName Form1, "TestFkt", VbMethod, fMe, Command1