OberonCore
https://forum.oberoncore.ru/

Простая кнопка (Command Button)
https://forum.oberoncore.ru/viewtopic.php?f=35&t=6132
Страница 1 из 1

Автор:  Александр К [ Вторник, 10 Октябрь, 2017 15:59 ]
Заголовок сообщения:  Простая кнопка (Command Button)

Как сделать кнопку недоступной для нажатия программно? Почему-то не срабатывает охранник.
Код:
MODULE Gu;(*эксперимент с охранником*)
IMPORT Dialog;

PROCEDURE A*;(**)
END A;

PROCEDURE AGuard* (VAR par: Dialog.Par);
BEGIN
par.disabled := TRUE
END AGuard;

END Gu.

Автор:  Илья Ермаков [ Вторник, 10 Октябрь, 2017 16:32 ]
Заголовок сообщения:  Re: Простая кнопка (Command Button)

Опечатка какая-то, наверное, при привязке имени охранника у кнопки. Нет?

Автор:  prospero78 [ Вторник, 10 Октябрь, 2017 16:36 ]
Заголовок сообщения:  Re: Простая кнопка (Command Button)

Вроде, всё верно.
1. Правильно ли привязана охрана в свойстве кнопки?
2. Вообще, должно работать. Ресурсы перезагружал? Форму сохранял?

Что писать в названии процедуры -- тащемта, не так уж и важно. Это лишь соглашение. Я вообще пишу:
Код:
PROCEDURE кнпВыход_Охрана(пКнп: мДлг.Par);
(*

 для справки:

Par = RECORD
   disabled, checked, undef, readOnly: BOOLEAN;
   label: String
END;

*)

Автор:  Александр К [ Вторник, 10 Октябрь, 2017 17:38 ]
Заголовок сообщения:  Re: Простая кнопка (Command Button)

Я форму генерирую автоматически, открываю как Aux Dialog. Форму сохранял - не помогает. Версия ВВ 1.5 от Информатики-21 от 09.11.2012.

Автор:  Илья Ермаков [ Вторник, 10 Октябрь, 2017 18:08 ]
Заголовок сообщения:  Re: Простая кнопка (Command Button)

Ну так нужно в свойствах кнопки Guard указать вручную.
Автоматически Guard не привяжется.

Автор:  Александр К [ Среда, 11 Октябрь, 2017 15:50 ]
Заголовок сообщения:  Re: Простая кнопка (Command Button)

Илья Ермаков писал(а):
Ну так нужно в свойствах кнопки Guard указать вручную.
Автоматически Guard не привяжется.

А хорошо было бы, если бы ВВ считывал то, что написано до Guard и определял для какой кнопки требуется какой охранник.

Автор:  prospero78 [ Среда, 11 Октябрь, 2017 19:08 ]
Заголовок сообщения:  Re: Простая кнопка (Command Button)

Это не реально. Откуда ББ может знать, что именно этот охранник относится именно к этому элементу? К тому же, если это делать автоматом -- теряется гибкость привязки, генерации, свободного создания диалоговых окон.

Автор:  Александр К [ Четверг, 12 Октябрь, 2017 16:11 ]
Заголовок сообщения:  Re: Простая кнопка (Command Button)

prospero78 писал(а):
Откуда ББ может знать, что именно этот охранник относится именно к этому элементу?

Вы меня не поняли. Если процедура, с которой сопоставляется кнопка называется Com1, то процедура охранника к этой кнопке называлась бы соответственно Com1Guard. Тогда охранник мог бы привязаться к кнопке при автоматической генерации формы.

Автор:  Иван Денисов [ Четверг, 12 Октябрь, 2017 16:40 ]
Заголовок сообщения:  Re: Простая кнопка (Command Button)

Александр К писал(а):
prospero78 писал(а):
Откуда ББ может знать, что именно этот охранник относится именно к этому элементу?

Вы меня не поняли. Если процедура, с которой сопоставляется кнопка называется Com1, то процедура охранника к этой кнопке называлась бы соответственно Com1Guard. Тогда охранник мог бы привязаться к кнопке при автоматической генерации формы.

Думаю, что ваша идея имеет право на реализацию.
С английскими идентификаторами понятно, что есть Guard и Notify. Но вот если используются идентификаторы на русском языке? "Охранник" и "Уведомитель"... А как быть с другими языками? Надо ведь быть демократичными, чтобы нововведение работало на всех языках.

Автор:  Александр К [ Четверг, 12 Октябрь, 2017 18:22 ]
Заголовок сообщения:  Re: Простая кнопка (Command Button)

Иван Денисов писал(а):
А как быть с другими языками?

Английский - международный язык. :D А если серьёзно, то Вы правы.

Автор:  prospero78 [ Пятница, 13 Октябрь, 2017 12:07 ]
Заголовок сообщения:  Re: Простая кнопка (Command Button)

Если предполагается, что программа не является родственником покемонам -- можно смело писать по русски.
Если есть желание организовать международное сопровождение, то "кнпВыход_Охрана" лучше не делать сразу.
То, что английский -- международный -- ни о чём не говорит. В 1812 таким был французский, а в 1912 -- немецкий. Чуть ранее были греческий, арабский, испанский и где они все?

Автор:  Comdiv [ Пятница, 13 Октябрь, 2017 13:04 ]
Заголовок сообщения:  Re: Простая кнопка (Command Button)

Немецкий и французский и сейчас входят в список международных языков. Как и русский.

Автор:  prospero78 [ Пятница, 13 Октябрь, 2017 13:08 ]
Заголовок сообщения:  Re: Простая кнопка (Command Button)

Не сомневаюсь, что немецкий и французский входят в международные языки (и слава Богу).
Но я не представляю себе ситуацию, когда немцы (типа САП), будут давать интерфейс пользователя в виде кнопок на немецком для русских, или АПИ сделают только на немецком. Внутренняя кухня не интересна 99,99% людей. Если не больше. А если интересна, то для этого есть китайцы и индусы))

Автор:  Info21 [ Пятница, 13 Октябрь, 2017 14:28 ]
Заголовок сообщения:  Re: Простая кнопка (Command Button)

Comdiv писал(а):
Немецкий и французский и сейчас входят в список международных языков. Как и русский.
Но в первую очередь нужно называть всё же китайский -- язык будущего ))

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/