public ref class MyComponent {
public:
event EventHandler^ OnSomething;
ref class EventWrapper {
public:
EventWrapper(MyComponent^ owner) {
this->_owner = owner;
}
event EventHandler^ OnSomething {
void add(EventHandler^ value) {
_owner->OnSomething += value;
}
void remove(EventHandler^ value) {
_owner->OnSomething -= value;
}
}
private:
MyComponent^ _owner;
};
};
События
Короче вот код:
CLR синтаксис
public ref class MyComponenta: Component
{
ref class CopyCreator{
...
public:
event RWEndActionEventHandler^ OnEndScan;
event RWEndActionEventHandler^ OnEndSaving;
event RWEndActionEventHandler^ OnEndReading;
...
};
...
public:
...
event RWEndActionEventHandler^ OnEndScan;
event RWEndActionEventHandler^ OnEndSaving;
event RWEndActionEventHandler^ OnEndReading;
event RWEndActionEventHandler^ OnEndSearching;
}
фактически события в класе "CopyCreator" должны вызывать события класа "MyComponenta".
Но делать екземпляр "MyComponenta" нельзя, это компонента в режыме разработки.
Как лучше мне оформить такое?
Цитата: AL4X
Можно ли передать события по сылке, создать на него указатель?
Совсем не понятно чего вы хотите сделать.
Вы хотите пробросить события из класса CopyCreator на соответсвующие в MyComponenta?
Код:
Цитата:
Совсем не понятно чего вы хотите сделать.
Надо чтобы если в подклассе возбуждалось событие, то и в первом классе оно возбуждалось.
Там постучали и тут постучали.
Просто внутренний клас, он рабочий, а внешний, он токо играет роль инетфейса для другого програмиста, "костюмчик" как бы.
Цитата: AL4X
Надо чтобы если в подклассе возбуждалось событие, то и в первом классе оно возбуждалось.
Там постучали и тут постучали.
Там постучали и тут постучали.
Это невозможно сделать без передачи ссылки внутреннего класса внешнему. А код будет практически таким же, что я привел.