Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

23 Сентябрь 2021, 22:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: « 1 2 3   Вниз
  Печать  
Автор Тема: Добрый день! Недавно познакомилась с OOo Calc. Проблема: ...  (Прочитано 16255 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Kadet
Форумчанин
***
Offline Offline

Сообщений: 627


« Ответ #30: 3 Август 2021, 16:51 »

Мне почему-то казалось, что execute - это "выполнить".
Ну да. Вы знаете какой я знаток английского.
Записан
Kadet
Форумчанин
***
Offline Offline

Сообщений: 627


« Ответ #31: 3 Август 2021, 16:58 »

Левая кнопка мыши по какому объекту?
По кнопке "Ок".

В общем, ничего у меня не получилось. Возьму паузу для осмысления полученной инфы. Спасибо!
Записан
Kadet
Форумчанин
***
Offline Offline

Сообщений: 627


« Ответ #32: 3 Август 2021, 18:14 »

Так, я таки осмыслил, в этом моменте разобрался и вспомнил почему-же некогда я отказался от использования типов кнопок "Ок" в диалогах. Как и сейчас откажусь, как и от использования метода Execute().

Дело в том, что делая тип кнопки "Ок" и нажав Enter на ней диалоговое окно автоматически и безапелляционно закрывается. А так как я, в основном, работаю с БД, где любое незаполненное или неправильно заполненное поле может нанести существенный вред всей БД, то перед закрытием диалогов вначале нужно проверять заполненные данные. В случае, если данные заполнены не полностью или допущены ошибки, диалог закрывать нельзя. Нужно остановить закрытие и сохранение данных и попросить пользователя таки навести порядок.
Методы "тип ОК"  и Execute() этого не позволяют. Нет, проверку, конечно, организовать можно, но вот остановить закрытие диалога никак нельзя. Они по-любому его закрывают. Толку тогда это этих проверок.

Поэтому эти методы мне не подходят. Спасибо, но...
« Последнее редактирование: 3 Август 2021, 18:22 от Kadet » Записан
eeigor
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 712



« Ответ #33: 3 Август 2021, 18:43 »

@Kadet, OK/CANCEL, как это в MS Office, – действия по умолчанию: Enter –> OK, Esc –> CANCEL. Но что при этом происходит, можно уточнить прикреплённой процедурой. В Access можно легко отменить закрытие формы. Здесь не так? Возможно, сложнее, но решение должно быть где-то рядом.
« Последнее редактирование: 3 Август 2021, 18:45 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.2.0.2 Community
Kadet
Форумчанин
***
Offline Offline

Сообщений: 627


« Ответ #34: 3 Август 2021, 18:56 »

eeigor, возможно. Но я такого метода не нашёл (может плохо искал).
При типе кнопки Ок диалог всегда закрывается по её нажатии.

Однако, вполне вероятно насчёт метода Execute() я и ошибаюсь. Его я тестировал в совокупности с типом Ок. Сейчас протестирую его как следует уже с типом по-умолчанию. Однако, его нужно вешать на события самого диалога, а не кнопок. Попробую.
Записан
Kadet
Форумчанин
***
Offline Offline

Сообщений: 627


« Ответ #35: 3 Август 2021, 19:07 »

НУ, в принципе, протестировал.
Да, метод Execute() диалог не закрывает, но и не работает, как и говорил sokol92, пока не включить тип Ок, который диалог закрывает.
На событиях кнопки Ок при типе дефолт он при любых клавишах даёт 0. А если его повесить на события диалога, то в его макрос вообще не входят. Т.е., получается события просто не работают.
Записан
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 561


WWW
« Ответ #36: 3 Август 2021, 20:11 »

диалоговое окно автоматически и безапелляционно закрывается.
Да. Но предполается иная логика (псевдокод).

 
Код:
Do While True
   rc=oDialog.execute
   ' анализ rc и элементов управления диалога
   If (...) Then  ' отказ от ввода или данные введены верно
     Exit Do
   End If
  
   ' информируем пользователя об ошибке в самом диалоге или отдельным сообщением
  
 Loop    
Записан

Владимир.
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 3 112


iMac, LibreOffice и Apache OpenOffice


« Ответ #37: 3 Август 2021, 21:59 »

Как в диалоговом окне можно повесить на свойство активной кнопки выполняться по нажатии "Enter". Пробовал повесить макрос на свойство "нажатие клавиши", но тогда выполнение макроса начинается по нажатии любой клавиши клавы, а нужно только "Enter". Нужно ставить проверку какая клавиша нажата. Подскажите, пожалуйста, как это реализовать?
Макрос нужно назначить на событие "Выполнить действие", если кнопка в фокусе, будет срабатывать на клавиши "Enter" и/или "Пробел".
Записан

Kadet
Форумчанин
***
Offline Offline

Сообщений: 627


« Ответ #38: 3 Август 2021, 23:22 »

Макрос нужно назначить на событие "Выполнить действие", если кнопка в фокусе, будет срабатывать на клавиши "Enter" и/или "Пробел".
Понял. Спасибо. Опробую эту технологию. Может чего-то и добьюсь.
« Последнее редактирование: 3 Август 2021, 23:30 от Kadet » Записан
Kadet
Форумчанин
***
Offline Offline

Сообщений: 627


« Ответ #39: 3 Август 2021, 23:45 »

rami, спасибо! Всё заработало как хотелось.
Так и знал, что всё должно быть достаточно просто, без замудрёнств.
Записан
Страниц: « 1 2 3   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!