2010-06-28 103 views
0

我想爲一些Subs做一個CallByName,但我不能讓它去。VB6 CallByName woes

一切順利,直到執行到達CallByName,那麼我有問題:

  • 每當我用Me,它抱怨編譯錯誤
  • 如果我用frmMyServer,它說:「對象或方法不支持「

問題:我該怎麼做?

這是我有:

我的 'modHandleData'

Private Sub HandleRequestScriptedNPC(...) 
    ' ... 
    NPCMethod = "Scripted_Npc_" & NpcNum 
    CallByName Me, NPCMethod, VbMethod, NpcNum, Index 
End Sub 

我的 'modScriptedNPC'

Public Sub Scripted_Npc_9(ByVal NpcNum As Long, PlayerNum As Long) 
    SendOneOptionMsg PlayerNum, "NPC 9", "NPC 9 talks." & vbCrLf & "Then gives you a clue" 

End Sub 

回答

4

你調用一個模塊代碼,所以沒有Me實例(只存在於類中,包括表單)。我的VB6有點生疏,但我相信你不能模塊使用CallByName調用方法,因爲你需要一個對象。

+0

+1確實如此,您無法使用CallByName調用模塊中的方法。如果你準備變得非常鐵桿,還有其他方法可以做到,但我不推薦他們。 http://stackoverflow.com/questions/609894/is-there-a-callbyname-equivalent-for-global-functions/609926#609926 – MarkJ 2010-06-28 17:01:21