powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
19 сообщений из 19, страница 1 из 1
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
    #40022136
BamGran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток всем!
Имеется код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Private Sub GlobalMacroStorage_QueryDocumentClose(ByVal doc As Document, ByRef Cancel As Boolean)
    'MsgBox "kt2"
    Dim tmp As String
    tmp = ActiveDocument.Name
    If (Not (LinkTab Is Nothing)) And (LinkTab.TabWindows.Tabs.Count > 0) Then
        LinkTab.TabWindows.Tabs.Remove (tmp)
    End If
End Sub
Private Sub GlobalMacroStorage_DocumentNew(ByVal doc As Document, ByVal FromTemplate As Boolean, ByVal Template As String, ByVal IncludeGraphics As Boolean)
    Dim tmp4 As String
    tmp4 = ActiveDocument.Name
    If (Not (LinkTab Is Nothing)) Then
        LinkTab.TabWindows.Tabs.Add
        LinkTab.TabWindows(LinkTab.TabWindows.Tabs.Count - 1).Name = tmp4
        LinkTab.TabWindows(LinkTab.TabWindows.Tabs.Count - 1).Caption = tmp4
        LinkTab.TabWindows.Value = (ActiveDocument.Index - 1)
    End If
End Sub
Private Sub GlobalMacroStorage_DocumentOpen(ByVal doc As Document, ByVal FileName As String)
    Dim tmp5 As String
    tmp5 = ActiveDocument.Name
    If (Not (LinkTab Is Nothing)) Then
        LinkTab.TabWindows.Tabs.Add
        LinkTab.TabWindows(LinkTab.TabWindows.Tabs.Count - 1).Name = tmp5
        LinkTab.TabWindows(LinkTab.TabWindows.Tabs.Count - 1).Caption = tmp5
        LinkTab.TabWindows.Value = (ActiveDocument.Index - 1)
    End If
End Sub



Что он должен делать, сейчас не суть. Проблема в том, что на одном компьютере всё нормально работает, на на другом просто не происходит обращения к коду при соответствующем событии (DocumentOpen,DocumentNew итд.) ...
Версии корела в обоих случаях совпадают - Х6

Интересует мнение коллективного разума, куда копать и где собака могла порыться?
...
Рейтинг: 0 / 0
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
    #40022155
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо, настройки безопасности, запрет макросов и т.п.
...
Рейтинг: 0 / 0
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
    #40022169
BamGran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
Видимо, настройки безопасности, запрет макросов и т.п.

Подсказать можете, где это смотреть в Х6?
И настройки безопасности чего? Приложения, ОС, или ещё какие-то?
...
Рейтинг: 0 / 0
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
    #40022172
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для корела не могу. Я про настройки именно приложения.
Настройки безопасности самого Корела. Запрет выполнения макросов. Куда-то туда копать надо попробовать.
...
Рейтинг: 0 / 0
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
    #40022180
BamGran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, не, так-то другие макросы выполняются.
Именно вызова моих обработчиков событий не происходит.
...
Рейтинг: 0 / 0
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
    #40022183
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если пересоздать эти обработчики именно на этом компе? И именно через выбор из списка, а не вручную?
...
Рейтинг: 0 / 0
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
    #40022185
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроме того, есть уверенность, что эти обработчики принадлежат документу и переносятся вместе с документом?
...
Рейтинг: 0 / 0
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
    #40022188
BamGran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пересоздать... так я и создавал заново. Просто не умею переносить...

Shocker.Pro
Кроме того, есть уверенность, что эти обработчики принадлежат документу и переносятся вместе с документом?


Они не обработчики документа. Они глобальные. Должны срабатывать при событии В ЛЮБОМ документе.
...
Рейтинг: 0 / 0
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
    #40022200
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BamGran
Они не обработчики документа. Они глобальные.
Ну так если они не находятся в документе, то почему они должны переноситься при переносе документа?
Они лежат где-то в глобальном шаблоне.
...
Рейтинг: 0 / 0
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
    #40022202
BamGran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
BamGran
Они не обработчики документа. Они глобальные.
Ну так если они не находятся в документе, то почему они должны переноситься при переносе документа?
Они лежат где-то в глобальном шаблоне.


Еще раз!
Проблема не в "ОНИ НЕ ПЕРЕНОСЯТСЯ"!!!
Проблема в том, что заново созданные на другом компе обработчики НЕ ВЫЗЫВАЮТСЯ событиями, которые они должны обрабатывать...
От слова совсем.
...
Рейтинг: 0 / 0
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
    #40022203
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у объекта Application есть эти глобальные события? Может попробовать подписаться на них через Dim WithEvents?
...
Рейтинг: 0 / 0
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
    #40022219
BamGran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
А у объекта Application есть эти глобальные события? Может попробовать подписаться на них через Dim WithEvents?

События такие у Application есть.
Про подписку через Dim WithEvents можно более развернуто? Не уловил мысль, в связи с малой компетентностью в VBA.
...
Рейтинг: 0 / 0
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
    #40022220
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В модуле объявляется переменная типа

Код: vbnet
1.
Public WithEvents MyApp As Application



В какой-то момент (например при открытии документа) она инициализируется

Код: vbnet
1.
Set MyApp = Application



Ну и в том же модуле можно выбрать ее из левого выпадающего списка как источник события, а в правом списке соответственно будут все события Application, то есть сгенерированный код будет что-то вроде:

Код: vbnet
1.
Private Sub MyApp_DocumentOpen(ByVal doc As Document, ByVal FileName As String)
...
Рейтинг: 0 / 0
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
    #40022226
BamGran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, общий смысл уловил, завтра буду пробовать.
...
Рейтинг: 0 / 0
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
    #40026037
BamGran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, крутил и так, и этак, всё это время, ну не хочет обработчик события вызываться!
Крутил с вариантом
Код: vbnet
1.
Public WithEvents MyApp As Application

я имею в виду.

2 All, Будут идеи, куда смотреть?
...
Рейтинг: 0 / 0
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
    #40026245
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BamGran

Еще раз!
Проблема не в "ОНИ НЕ ПЕРЕНОСЯТСЯ"!!!
Проблема в том, что заново созданные на другом компе обработчики НЕ ВЫЗЫВАЮТСЯ событиями, которые они должны обрабатывать...
От слова совсем.

BamGranтак-то другие макросы выполняются.
Именно вызова моих обработчиков событий не происходит.
Как вариант не так/не там создали
...
Рейтинг: 0 / 0
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
    #40026450
BamGran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKot

Как вариант не так/не там создали


"Не там" исключено.
Вот про "не так", не очень уловил. Можно подробнее?
...
Рейтинг: 0 / 0
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
    #40026722
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BamGran

"Не там" исключено.
Вот про "не так", не очень уловил. Можно подробнее?

Нет не смогу, я не делал макросы в корел

Я исходил из того, что Вы сказали
авторИменно вызова моих обработчиков событий не происходит.
...
Рейтинг: 0 / 0
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
    #40026840
BamGran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 All , причину нашел, понятнее ничего не стало.

Код: vbnet
1.
CorelDRAW.Application.EventsEnabled


Стоит в False .

Причем попытка присвоить
Код: vbnet
1.
CorelDRAW.Application.EventsEnabled=True


ни к чему не приводит.
Просто не изменяется значение. Хотя никаких ошибок не выдаёт.

И... что всё это значит???
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]