/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
VB6: Events i interfaces.
Fra : Mads


Dato : 03-02-04 16:02

Hej

Jeg forsøger at lave et interface til en samling objekter som andre klasser
i mit VB6 projekt skal bruge.
Alle implementerende klasser skal indeholder nogle metoder, nogle properties
og nogle events fra interfacet.
Koden til mit projekt er:

Mit interface - clsInterface:
Option Explicit

Public Event Noget(ByVal strTest as String)

Public Sub Metode1()
End Sub

En implementerende klasse - clsImplementation1:
Option Explicit

Implements clsInterface

Private Sub clsInterface_Metode1()
RaiseEvent Noget("hej")
End Sub

Men når jeg forsøger at oprette et object vha.:
Private WithEvents minTing As clsInterface

...

Set minTing = New clsImplementation1

Så får jeg fejl 459: "Object or class does not support the set of events."

Hvorledes kan jeg rejse events i en implementerende klasse. Og samtidig
modtage event'en fra objekter det kun har en reference til clsInterface??

Venlig Hilsen
Mads



 
 
Tomas Christiansen (04-02-2004)
Kommentar
Fra : Tomas Christiansen


Dato : 04-02-04 10:00

Mads skrev:
> Mit interface - clsInterface:
> Public Event Noget(ByVal strTest as String)
> Public Sub Metode1()

> En implementerende klasse - clsImplementation1:
> Implements clsInterface
> Private Sub clsInterface_Metode1()
> RaiseEvent Noget("hej")

> Men når jeg forsøger at oprette et object vha.:
> Private WithEvents minTing As clsInterface
> Set minTing = New clsImplementation1

> Så får jeg fejl 459: "Object or class does not support the set of events."

Den kode du har vist kan ikke give den fejl, som du her angiver.

Mon ikke at du _også_ har indsat en
Public Event Noget(ByVal strTest as String)
i din clsImplementation1?

> Hvorledes kan jeg rejse events i en implementerende klasse. Og samtidig
> modtage event'en fra objekter det kun har en reference til clsInterface??

Tja. Der står i hjælpen til fejl 459 at: "Although you might think you could
sink the events from the implemented object, that isn't automatically the
case. Implements only implements an interface for methods and properties."

Det ser ud til at du ikke får nogen hjælp får fra VB's side...

-------
Tomas


Mads (06-02-2004)
Kommentar
Fra : Mads


Dato : 06-02-04 12:46

"Tomas Christiansen" <toc-01-nospam@blikroer.dk> wrote in message
news:bvqccp$agc$1@news.cybercity.dk...
>
> Den kode du har vist kan ikke give den fejl, som du her angiver.
>
Jeg havde selvfølgelig også en handler til de events der opstod. Men det var
trivielt, så indkluderede det ikke.

> Mon ikke at du _også_ har indsat en
> Public Event Noget(ByVal strTest as String)
> i din clsImplementation1?
>
Nej.

> > Hvorledes kan jeg rejse events i en implementerende klasse. Og samtidig
> > modtage event'en fra objekter det kun har en reference til
clsInterface??
>
> Tja. Der står i hjælpen til fejl 459 at: "Although you might think you
could
> sink the events from the implemented object, that isn't automatically the
> case. Implements only implements an interface for methods and properties."
>
> Det ser ud til at du ikke får nogen hjælp får fra VB's side...
>
Næh, jeg må vist implementere et observer pattern vha. håndkraft.

Hilsen
Mads



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408921
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste