Birim testler eklemeye çalıştığım eski bir VB6 projem var. Nesnelerle alay ederek sınıfta bağımlılıkları kırıyordum. Olayları arttıran bazı bağımlılıklar bulana kadar her şey yolunda gidiyordu ve şimdi bir duvara çarptım.VB6 Implements & events
İşte o DOESNT'İŞ yapmaya çalışıyorum şeyin kısa bir örnek:
ITab.cls:
Option Explicit
Public Event Click(tabNumber As Integer)
Public Sub SomeOtherFunction()
End Sub
clsRealTab.cls:
Option Explicit
Implements ITab
Public Event Click(tabNumber As Integer)
Public Sub ITab_SomeOtherFunction()
'code here'
End Sub
FrmMain. frm:
Option Explicit
Private WithEvents mTab as ITab
Public Sub Main()
Set mTab = New clsRealTab 'gives "Object or class does not support the set of events" error'
End Sub
Doe Bu işi yapmanın bir yolu ya da bu durumu ele almak için başka bir yol olup olmadığını bilen var mı?
ITabEventsHandler
'u aradığım bir geri çağırma arabirimini uygulamıyorum. Bu şuna benzer:
Option Explicit
Public Sub Click(intPreviousTab As Integer, objSSTab As Object)
End Sub
Sonra benim forma
Implements ITabEventsHandler
eklendi ve benim clsTab başlatıcısı bir
ITabEventsHandler
parametre olarak formu geçmektedir. Özel bir
Click(...)
etkinliğini yükseltmek yerine,
mTabEventsHandler.Click(...)
numaralı telefonu arayabilirim.
Öneri için teşekkürler!
Bir geri arama arayüzü yapma konusunda düşünce ve bu çalışacaktır gibi görünüyor. –
Saniye. VB6'da bununla baş etmenin en zarif yolu, ham olaylar yerine bir geri arama arabirimi kullanmaktır. Typelib hacking, wqw'nin dediği gibi çabucak kötü olacak. –
+1. VB6 kılavuzu, Implements'ın buradaki etkinlikleri desteklemediğini söyler: http://msdn.microsoft.com/en-us/library/aa262327(VS.60).aspx – MarkJ