Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2011, 16:56   #1
siggizmund
Новичок
Джуниор
 
Регистрация: 22.09.2011
Сообщений: 2
По умолчанию несанкционированное событие click

Добрый день!
Который день ломаю мозг над поведением формы. Расскажу по порядку:

1. После открытия формы, с помощью FileDialog выбираю один или несколько документов Word. Открываю их. Каждому открытому документу на форме назначается кнопка с именем этого документа (форма считывает открытые документы Word) - Кнопка1, Кнопка2 и т. д.

2. При нажатии на КнопкаN в соответствующий документ вставляется фотография.

3. Форма хранится в документе Дом, который фотографии не принимает, в этом документе сделана большая кнопка запуска формы, с макросом:

Sub Start()
Form1.Show
Form1.Unload
End Sub

4. В форме есть кнопка Exit:

Sub Exit_Click()
Form1.Hide
End Sub

Проблема: при нажатии Exit форма сама вставляет последнюю фотографию в отчеты ЕЩЕ РАЗ (дублирует последнюю вставку), а затем закрывается. Методом проб я установил, что срабатывает событие Click на одной из кнопок отчетов КнопкаN.
Если закрывать форму нажав на Х на окне формы, то появляется ошибка "Automation error" Invoked object disconnected - и перезагружается Word.

Явно при выходе что то происходит, а что - понять не могу.

P.S. После множественных тестов установил, что такое происходит только если я открываю документы Ворд, если просто подцепляю открытые, форма закрывается нормально. Но знание это мне не помогло....
siggizmund вне форума Ответить с цитированием
Старый 22.09.2011, 19:31   #2
Вождь
Форумчанин
 
Аватар для Вождь
 
Регистрация: 29.09.2008
Сообщений: 378
По умолчанию

Трудно догадатся, что там в остальном коде, а для формы правильнее так:
Код:
Sub Start()
    Form1.Show vbModeless
End Sub

Sub Exit_Click()
    Unload Form1
End Sub
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
Вождь вне форума Ответить с цитированием
Старый 23.09.2011, 09:49   #3
siggizmund
Новичок
Джуниор
 
Регистрация: 22.09.2011
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Вождь Посмотреть сообщение
Трудно догадатся, что там в остальном коде, а для формы правильнее так:
Код:
Sub Start()
    Form1.Show vbModeless
End Sub

Sub Exit_Click()
    Unload Form1
End Sub
Такой запуск безусловное элегантнее. Поставил, спасибо.
Ошибку тоже нашел:

Private Sub butReport1_Click()

If butReport1.Caption Like "Документ не назначен" Then
Call Открытие документа
Exit Sub
End If

Call Вставка (1)
Call Sound

End Sub

В этом коде был пропущен Exit Sub - отсюда несанкционированная вставка.
siggizmund вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Jquery событие Click Shmblra JavaScript, Ajax 2 12.01.2011 09:28
событие click в commandbutton gsg Microsoft Office Excel 2 20.10.2010 15:40
Несанкционированное выключение питания и Paradox Robotics20 C++ Builder 8 05.08.2010 10:41
Создал кнопку в чужой форме.Как обработать событие Click Goldz60 Win Api 8 11.06.2010 08:46
Событие click по заголовку формы? Polotenchik Общие вопросы Delphi 3 24.06.2009 12:48