OberonCore
https://forum.oberoncore.ru/

RadioButton
https://forum.oberoncore.ru/viewtopic.php?f=24&t=2556
Страница 1 из 1

Автор:  comm1x [ Среда, 14 Апрель, 2010 16:12 ]
Заголовок сообщения:  RadioButton

Доброго времени, уважаемые программеры.
Всю свою недолгую жизнь сидел на билдере, теперь насильно пересаживают меня на ББ. Настолько привык к билдеровскому конструктору форм, что теперь новый вообще не могу освоить и понять логику действий.

Есть на форме 2 RadioButton'a, которые должны переключать режим работы программы. Но при запуске я хочу, чтобы один РБ был активен, второй соответственно нет. Все, на что меня хватило:

Код:
IMPORT  Dialog;
VAR
   n*,m*: BOOLEAN;
   PROCEDURE Do*;
      n:=TRUE;
      m:=FALSE;
      Dialog.UpdateBool(m);
      Dialog.UpdateBool(n);
   END Do;

Естественно, это не работает и вообще не понимаю, каким образом идет передача информации от модуля с кодом к форме, как ее передать? Как управлять элементами формы?
Спасибо.

Автор:  Valery Solovey [ Среда, 14 Апрель, 2010 16:41 ]
Заголовок сообщения:  Re: RadioButton

Если Вы собираетесь писать большое графическое приложение, то прочтите главу 4 (Формы) и документацию к модулю Controls.
Код:
MODULE  WorkTestWindow;

   VAR n*: INTEGER;

END WorkTestWindow.
Нужно:
∙ создать пустую форму,
∙ добавить переключатели (например 3 radio button),
∙ в свойствах каждого переключателя задать переменную, с которой он связан (в нашем случае - для всех переключателей это будет n) и level - значение переменной, при котором переключатель будет активироваться.

Автор:  Евгений Темиргалеев [ Среда, 14 Апрель, 2010 17:31 ]
Заголовок сообщения:  Re: RadioButton

Valery Solovey писал(а):
... прочтите главу 4 (Формы) и документацию к модулю Controls...
Советую в качестве введения ознакомиться с обучающей подсистемой "i21диалоги" из школьной сборки. http://www.inr.ac.ru/~info21/software.htm

Автор:  QWERTYProgrammer [ Среда, 14 Апрель, 2010 22:21 ]
Заголовок сообщения:  Re: RadioButton

comm1x писал(а):
теперь насильно пересаживают меня на ББ

Неужели правда, прямо так насильно? :mrgreen:

Автор:  comm1x [ Среда, 14 Апрель, 2010 22:29 ]
Заголовок сообщения:  Re: RadioButton

да перевелся в другой универ, а там к сям вообще с презрением смотрят.
Как конвертировать из String в Integer и обратно? Есть что-то типа IntToStr, StrToInt?

Автор:  Илья Ермаков [ Среда, 14 Апрель, 2010 22:30 ]
Заголовок сообщения:  Re: RadioButton

Модуль Strings.

Автор:  comm1x [ Среда, 14 Апрель, 2010 22:31 ]
Заголовок сообщения:  Re: RadioButton

Отлично, спасибо

Автор:  QWERTYProgrammer [ Среда, 14 Апрель, 2010 22:32 ]
Заголовок сообщения:  Re: RadioButton

Модуль Strings:

PROCEDURE IntToString (x: LONGINT; OUT s: ARRAY OF CHAR);
PROCEDURE StringToInt (IN s: ARRAY OF CHAR; OUT x, res: INTEGER);

Автор:  Валерий Лаптев [ Четверг, 15 Апрель, 2010 03:58 ]
Заголовок сообщения:  Re: RadioButton

comm1x писал(а):
да перевелся в другой универ, а там к сям вообще с презрением смотрят.

Очень интересно! В каком это универе заставляют учиться на ББ? Мне знать нужно, чтобы перед начальством аргументировать.

Автор:  Александр Ильин [ Четверг, 15 Апрель, 2010 04:35 ]
Заголовок сообщения:  Re: RadioButton

comm1x писал(а):
Есть на форме 2 RadioButton'a, которые должны переключать режим работы программы. Но при запуске я хочу, чтобы один РБ был активен, второй соответственно нет. Все, на что меня хватило:
Код:
VAR n*,m*: BOOLEAN;
Принципиальный момент (раз уж мы в теме GUI): RadioButton'ы - это взаимоисключающие альтернативы, из которых может быть выбрана только одна. 2 RB = 2 состояния выбора - либо выбран первый вариант, либо второй.

2 булевы переменные - это 4 состояния выбора. Например, если обе переменные = TRUE, то оба RadioButton'а должны быть выбраны? Это принципиальная ошибка.

Либо должна быть одна переменная (например, типа INTEGER), либо вместо RadioButton'ов нужно использовать CheckBox'ы.

Автор:  igor [ Четверг, 15 Апрель, 2010 17:23 ]
Заголовок сообщения:  Re: RadioButton

Если мне не изменяет склероз, в Delphi можно запрограммировать начальное состояние, когда ни одна из RB не активна. Но потом если пользователь выбирает одну из кнопок, то обратно вернуть такое начальное состояние уже нельзя (по крайней мере при помощи клавы и мыши).

Автор:  Valery Solovey [ Пятница, 16 Апрель, 2010 10:43 ]
Заголовок сообщения:  Re: RadioButton

И в чём проблема? Если начальное значение переменной будет отличным от тех, которые должны принимать кнопки, то вот и решение.

Автор:  Александр Ильин [ Пятница, 16 Апрель, 2010 13:24 ]
Заголовок сообщения:  Re: RadioButton

Да и нет проблемы. Просто было указано, что в Delphi позаботились о возможности создать приложение с неправильным интерфейсом. Подтверждаю, такая возможность там действительно есть.

Автор:  А.П. [ Пятница, 16 Апрель, 2010 14:13 ]
Заголовок сообщения:  Re: RadioButton

Валерий Лаптев писал(а):
Очень интересно! В каком это универе заставляют учиться на ББ? Мне знать нужно, чтобы перед начальством аргументировать.

Учу в ТГУ на ФИнф на ББ группу 1 курса "практикум на ЭВМ", на лекциях всем дают примеры на Паскале. Мне отдают начинающих = не испорченных дурными привычками и примерами. Другие группы учат на Дельфи и C#. Так что живые примеры на КП+ББ - есть, можете смело ссылаться! :)

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