Что не так с передачей меня в качестве параметра в функции 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
Другие вопросы по тегам