Протестируйте файл - не генерируются события GlobalMacroStorage

  • Автор темы Автор темы Cyrax
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Cyrax

Топикстартер
10 лет на форуме
Сообщения
588
Реакции
4
При открытии данного файла не генерируются события GlobalMacroStorage. В частности, WindowActivate. Хотя код является глобальным (не привязан к документу).
Причём события не генерируются только при открытии данного файла. При открытии других cdr-файлов события генерируются нормально.

Вот код:
PHP:
Option Explicit
Dim WithEvents CurDoc As Document

Private Sub GlobalMacroStorage_WindowActivate(ByVal Doc As Document, ByVal Window As Window)
    Set CurDoc = Doc
End Sub

Private Sub GlobalMacroStorage_WindowDeactivate(ByVal Doc As Document, ByVal Window As Window)
    Set CurDoc = Nothing
End Sub

Private Sub CurDoc_Open()
    MsgBox "CurDoc_Open"
End Sub
 

Вложения

Ответ: Протестируйте файл - не генерируются события GlobalMacroStorage

Только ли у меня при открытии сабжевого файла не срабатывает событие WindowActivate ?

Только что столкнулся ещё с одним таким файлом. Причём создан он с нуля в X3 (вчера), тем неменее событие WindowActivate при его открытии не генерируется. Удалил все объекты - проблема осталась. Перекинул все объекты в нормальный файл (при открытии которого WindowActivate срабатывает) - WindowActivate по-прежнему нормально генерируется.
 
Ответ: Протестируйте файл - не генерируются события GlobalMacroStorage

Только ли у меня при открытии сабжевого файла не срабатывает событие WindowActivate ?
Возможно. У меня срабатывает.
 
Ответ: Протестируйте файл - не генерируются события GlobalMacroStorage

13.0.0.576
 
Ответ: Протестируйте файл - не генерируются события GlobalMacroStorage

Пираткой пользуетесь ? Или такая древняя лицензия ?
У меня 13.0.0.768. Стабильно наблюдается глюк. Проверил на 2 компьютерах.

Собственно, проблема заключается в том, что после запуска сабжевого файла GlobalMacroStorage по каким-то причинам НЕ начинает работать до тех пор, пока не выполнишь одно из следующих действий:
а) пока не обновишь приложение (Refresh)
б) пока не запустишь какой-либо макрос
в) пока не переключишься на VBA-редактор
г) некоторые иные действия

После загрузки сабжевого документа в момент выполнения одного из указанных действий GlobalMacroStorage "просыпается". И только в этот момент генерируется событие GlobalMacroStorage_Start (специально проверил), тогда как должно быть сгенерировано почти сразу после запуска приложения.
Т.е. при открытии сабжевого документа в Corel 13.0.0.768 GlobalMacroStorage подвисает (никакие события не генерируются), пока его пинком не "разбудишь". Как-то так.
 
Ответ: Протестируйте файл - не генерируются события GlobalMacroStorage

Всё-таки нашлось решение.

Решение элементарное:
1. Открываем VBA-редактор и лезем в VBAProject - CorelDRAW X3 Objects - ThisDocument
2. Набираем любой текст (достаточно 1 символа) и сразу же его удаляем
3. Сохраняем документ
4. Перезапускаем
И после этого глюк исчезает. При открытии документа GlobalMacroStorage не подвисает и начинает работать сразу же, как и положено.
Таким образом "восстановил" 2 глючных документа на 2 компьютерах.
 
Ответ: Протестируйте файл - не генерируются события GlobalMacroStorage


Не по теме:
Вот у вас жизнь интересная - сами проблемы ищете, сами их решаете. Вы макрос себе делаете или на продажу? Если на продажу, то забавно будет в документации по использованию макроса видеть следующий пункт: "Перед запуском макроса откройте VBA редактор и найдите там VBAProject ..." далее по тексту. '))'
 
Ответ: Протестируйте файл - не генерируются события GlobalMacroStorage


Не по теме:
_MBK_, сабжевый глюк никак не связан с макросами. Предположим, из-за некоторого глюка перестанет запускаться Corel. По-вашему, в документации к макросам, автоматически запускаемым при загрузке документа, следует писать про способы устранения этого глюка ?
Возьмём, к примеру, макрос ws, который автоматически переключает слои при выделении объектов. В сабжевой ситуации слои переключаться не будут (пока gms'у не дашь "пинка под зад").

По поводу проблем - это очередной глюк Corel X3 и найден простой способ его устранения.

 
Статус
Закрыто для дальнейших ответов.