Niet als je puur VB wilt blijven gebruiken, je zou natuurlijk altijd dingen als window messages, pipes, en dergelijke technieken kunnen gebruiken, maar da's een stuk ingewikkelder.
Zo krijg je wel snel een complexe onoverzichtelijkere structuur.. En de boel wordt zo wel afhankelijker omdat je dus alle events erin moet zetten.
Da's altijd 1 van mijn grote bezwaren tegen VB geweest, als je je programma wilt opzetten in "losse" componenten wordt het heel moeilijk een beetje onafhankelijk te houden.
Moet hier nieti nog meer bij? de functie doet niks? En hier komt ook nooit iets bij? Kan deze niet worden samengevoegd met een andere module?
Nee, het is een interface, die methode daar betekent alleen dat in een class die die interface implementeert, er een methode aanwezig dient te zijn die dezelfde signature heeft als deze en hij moet <InterfaceNaam>_<MethodeNaam> heten.
Ik heb het geprobeerd te maken maar krijg een fout bij "Implements IEventSource":
Compile error: Object Module needs to implement 'SetEventRelay' for interface 'IEventSource'
Zie hierboven, de class waar
Implements IEventSource instaat MOET de methode
IEventSource_SetEventRelay bevatten. In de linker combobox boven je code window kun je de interface uitkiezen en VB zal zelf de methode signature invullen die nodig is. Je zal zelf de code erin moeten zetten.
Omdat VB geen inheritance ondersteund, moet je de code om de EventRelay te setten en te gebruiken in iedere class die de IEventSource interface implementeert opnemen, ik kan wel een voorbeeldje in elkaar smijten als je wilt, maar dat wordt dan pas vanavond.
Edit:
Ik had een typo gemaakt in de code hierboven, het moest dit zijn:
Visual Basic .NET:
1
| Public Sub IEventSource_SetEventRelay(RHS As EventRelay) |
Edit2
Het is natuurlijk niet NODIG om zo'n afhankelijke structuur te gebruiken, je kan je EventRelay ook zo proggen dat 'ie wat strings aanneemt en aan de hand daarvan wat events gaat raisen. Of je gebruikt 1 events waarna je met je parameters gaat bepalen wat er moet gebeuren en de bijhorende subs aanroepen. De eventrelay hoeft helemaal niet te weten welke events er uitgewisseld worden, zo lang er maar 1 "passthrough" event is.
[
Voor 25% gewijzigd door
Gerco op 27-03-2003 12:53
]
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!