|
Передать свой Type в/через Event
|
|||
---|---|---|---|
#18+
Господа, приветствую! Создал свой Public Type в отдельном модуле. Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Использовал ранее класс, спасибо Predeclared, когда то давал мне как пример, только добавил свои параметры: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Вариант Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
не прокатывает. В переводе - Только определяемые пользователем типы, определенные в модулях общедоступных объектов, могут быть сопоставлены варианту или переданы функциям с поздней привязкой При попытке объявить свой тип в классе с Private, приводит к другой ошибке: - Частное перечисление и пользовательские типы не могут использоваться в качестве параметров или возвращаемых типов для открытых процедур, общих элементов данных или полей общих пользовательских типов. Как можно использовать свой тип для передачи в параметре? При этом из формы свой тип передается в класс без проблем.. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2018, 22:16 |
|
Передать свой Type в/через Event
|
|||
---|---|---|---|
#18+
Я обычно создаю класс для передачи параметров - содержит просто публичные свойства. И параметром передаю уже класс. А тип нельзя использовать, к сожалению. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 06:33 |
|
Передать свой Type в/через Event
|
|||
---|---|---|---|
#18+
MrShin, Спасибо. Хотел сделать немного универсальней, да не ожидал. что городить придется. Нужно покурить это... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 12:59 |
|
Передать свой Type в/через Event
|
|||
---|---|---|---|
#18+
Игортанда не ожидал. что городить придется Ну почему "городить"? Это нормальное решение. Единственное - дополнительный модуль появляется. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 06:36 |
|
Передать свой Type в/через Event
|
|||
---|---|---|---|
#18+
Игортан,может в слушающей форме данные не поменяны? т.е. там так сделано? Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 12:00 |
|
Передать свой Type в/через Event
|
|||
---|---|---|---|
#18+
массивы можно передать через Variant переменную, может свой тип тоже так удастся сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 12:02 |
|
Передать свой Type в/через Event
|
|||
---|---|---|---|
#18+
public type надо делать в tlb, её присоединить через референсы в проект, тогда всё будет передаваться ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 12:27 |
|
Передать свой Type в/через Event
|
|||
---|---|---|---|
#18+
Konst_Onepublic type надо делать в tlb, её присоединить через референсы в проект, тогда всё будет передаваться +1 Либо, чтобы не учить IDL/ODL (хотя, что там учить?), воспользоваЦЦа VB5/6 и сделать ActiveX DLL или EXE с нужным (>1) instancing-ом класса и Public-описанием UDT. Т. е. получить ту же type library, но не отдельно, а в ресурсе исполняемого модуля (те же яйЦЦа). Но, как и в случае с отдельным .tlb, нужна регистрация (с правами на запись в реестр для Vista и последующих) и подключение reference в VBA-проект. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 13:29 |
|
Передать свой Type в/через Event
|
|||
---|---|---|---|
#18+
aleckoмассивы можно передать через Variant переменную, может свой тип тоже так удастся сделать?Да, пробовал это, прочитав. Загвоздка, что это не массив а тип. Может что то там не дожал, но не получалось. MrShinЯ обычно создаю класс для передачи параметров - да, просидев n времени в гугле, другого варианта решения этого вопроса не нашел. Не сильно хочется плодить классы. очередной раз перебираю шаблонную бд, эволюция... Если нужно будет в последствии передавать несколько своих типов опять классы плодить. aleckoможет в слушающей форме данные не поменяны? т.е. там так сделано? Да. так и было... оставил пока на десерт. Займусь, как все переберу. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 13:33 |
|
Передать свой Type в/через Event
|
|||
---|---|---|---|
#18+
Игортан, можно в вызывающем классе создать public sub и передать уже type в качестве параметра т.е. создаем в вызывающем классе Class1 процедуру Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
а в классе который слушаем Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 15:51 |
|
Передать свой Type в/через Event
|
|||
---|---|---|---|
#18+
alecko, Спасибо, буду смотреть. Konst_One и ЦЦа , спасибо за советы. Правда я с трудом понимаю их, больше представляю, что это может быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 16:15 |
|
Передать свой Type в/через Event
|
|||
---|---|---|---|
#18+
Игортан, в архиве проект (кхм) на VB6 и откомпилированная DLL. DLL зарегистрировать через regsvr32 (из-под учётной записи с правами на запись в реестр). В IDE VBA в меню References подключить IgortanLib. Теперь в своём проекте можно пользоваЦЦа public-типом [IgortanLib.]AlterParams, наслаждаясь началом понимания того, что сообщения об ошибках были неспроста, а что-то пытались до юзера донести... (в сторону: правда, что они пытались донести именно в VBA, не умеющем в public creatable классы (в отличие от VB), остаёЦЦА за кадром). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 17:31 |
|
Передать свой Type в/через Event
|
|||
---|---|---|---|
#18+
Игортан, у вас это событие поднимается из многих мест одновременно (почти) и асинхронно? Т.е. между заполнением экземпляра структуры и RaiseEvent Alteration, использующим именно этот экземпляр может влезть другая RaiseEvent Alteration с другими данными? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 17:34 |
|
|
start [/forum/topic.php?fid=45&msg=39732520&tid=1611038]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 281ms |
total: | 411ms |
0 / 0 |