Список форумов Форум Libreoffice

Форум Libreoffice

Добро пожаловать на Форум Libreoffice!
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

English French German Italian Portuguese Russian Spanish
Отменить закрытие документа кнопкой [X] - SendKeys

 
Начать новую тему   Ответить на тему    Список форумов Форум Libreoffice -> Basic
Предыдущая тема :: Следующая тема  
Автор Сообщение
RFJ



Репутация: +1    

Зарегистрирован: 02.08.2011
Сообщения: 59

СообщениеДобавлено: Вс Дек 23, 2012 4:25 pm    Заголовок сообщения: Отменить закрытие документа кнопкой [X] - SendKeys Ответить с цитатой

SendKeys в Windows можно использовать для отмены попытки закрыть документ кнопкой [X] в правом верхнем углу окна (или пунктом подменю "Закрыть" (в меню "Файл"). Это часто требуется для того, чтобы предотвратить преждевременное закрытие документа, если не введены некоторые необходимые данные. Перед закрытием документа требуется проверить наличие этих данных и в случае их отсутствия документ не закрывать.
Следующие макросы демонстрируют как это можно осуществить.
Код:
Sub BeforeCloseDoc
 oDoc=ThisComponent
 oSheet  = oDoc.Sheets.getByName("Лист1")
 oCell=oSheet.getCellByPosition(0,0)
 ws=oCell.getString()
 oCell.setString(ws)

 BeforeCloseRW(ws)
End Sub

Sub BeforeCloseRW(ws)
WshShell = CreateObject("WScript.Shell")
If Trim(ws)="noclose" Then
   WshShell.SendKeys "{RIGHT}{RIGHT}{ENTER}"
Else
   WshShell.SendKeys "{ENTER}"
End If
End Sub


Макрос BeforeCloseDoc необходимо в "Настройке" назначить событию "Документ будет закрыт".
Макросы проверяют условие наличия в ячейке А1 листа "Лист1" текста "noclose".
Если этот текст в этой ячейке имеется, документ закрыть нажатием кнопки [X] или пункта меню "Закрыть" не получится.

PS. Окно документа можно все-таки закрыть с помощью Alt-F4, но это уже другая тема.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Форум Libreoffice -> Basic Часовой пояс: GMT
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Вы можете бесплатно создать форум на MyBB2.ru, RSS