Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему? / 19 сообщений из 19, страница 1 из 1
25.11.2020, 17:28
    #40022136
BamGran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
Доброго времени суток всем!
Имеется код:
Код: 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
25.11.2020, 18:01
    #40022155
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
Видимо, настройки безопасности, запрет макросов и т.п.
...
Рейтинг: 0 / 0
25.11.2020, 18:41
    #40022169
BamGran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
Shocker.Pro
Видимо, настройки безопасности, запрет макросов и т.п.

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

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


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


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

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

Код: 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
25.11.2020, 21:22
    #40022226
BamGran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
Shocker.Pro, общий смысл уловил, завтра буду пробовать.
...
Рейтинг: 0 / 0
09.12.2020, 17:29
    #40026037
BamGran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA в CorelDRAW X6 Один и тот-же код на одном компе работает, на другом нет. Почему?
Shocker.Pro, крутил и так, и этак, всё это время, ну не хочет обработчик события вызываться!
Крутил с вариантом
Код: vbnet
1.
Public WithEvents MyApp As Application

я имею в виду.

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

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

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

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


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

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

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

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

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


Стоит в False .

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


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

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


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