OberonCore
https://forum.oberoncore.ru/

Какой параметр передавать в Dialog.Update?
https://forum.oberoncore.ru/viewtopic.php?f=35&t=6137
Страница 1 из 1

Автор:  Александр К [ Суббота, 14 Октябрь, 2017 07:58 ]
Заголовок сообщения:  Какой параметр передавать в Dialog.Update?

Какой параметр передавать в Dialog.Update?
Код:
MODULE MyGu;
IMPORT Dialog;

VAR myString*: ARRAY 64 OF CHAR;

PROCEDURE A*;(**)
BEGIN
myString := "кнопка была нажата";
Dialog.Update(myString)(*В этой строке ошибка: передача неправильного параметра*)
END A;

END MyGu.

Автор:  Иван Денисов [ Суббота, 14 Октябрь, 2017 11:27 ]
Заголовок сообщения:  Re: Какой параметр передавать в Dialog.Update?

Dialog.UpdateString

Автор:  prospero78 [ Суббота, 14 Октябрь, 2017 11:35 ]
Заголовок сообщения:  Re: Какой параметр передавать в Dialog.Update?

По правой кнопочке мыши на "Dialog" можно выбрать пункт меню "Интерфейс". Там, все доступные процедуры обновлений представлены (а также доступные типы, переменные, константы). Генерация информации по интерфейсу берётся из актуального состояния соответствующего модуля. Файл символьных ссылок (если не путаю). Рекомендую))

Автор:  Александр К [ Суббота, 14 Октябрь, 2017 14:18 ]
Заголовок сообщения:  Re: Какой параметр передавать в Dialog.Update?

Код:
MODULE Gu;
IMPORT Dialog;
VAR age*: BYTE;
PROCEDURE ageNotifier* (op, from, to: INTEGER);(*Эта процедура не даёт ввести возраст более 120 лет*)
BEGIN
   IF age > 120 THEN
         age := 120;(*то ли присваивание не работает*)
         Dialog.UpdateByte(age);(*то ли обновление*)
         Dialog.Beep
      END
END ageNotifier;
END KnyshGu.

Код:
MODULE Gu;
IMPORT Dialog;
VAR age*: INTEGER;
PROCEDURE ageNotifier* (op, from, to: INTEGER);(*Эта процедура не даёт ввести возраст более 120 лет*)
BEGIN
   IF age > 120 THEN
         age := 120;
         Dialog.UpdateInt(age);
         Dialog.Beep
      END
END ageNotifier;
END KnyshGu.

Почему первый код не работает, а второй работает?

Автор:  Илья Ермаков [ Суббота, 14 Октябрь, 2017 14:25 ]
Заголовок сообщения:  Re: Какой параметр передавать в Dialog.Update?

Скорее всего, Вы вводите число > 127, сразу получаете переполнение байта (т.е. значение становится отрицательным), и IF > 120 уже ложно.
(Хотя, по идее, поле ввода само не должно позволять для байта ввод с переполнением.)

Зачем Вам байт? Он в основном для чисто технических нужд (или для экономии памяти при обработке очень больших объёмов данных в ОЗУ), уж никак не для хранения конкретного прикладного значения из задачи.

Автор:  Александр К [ Суббота, 14 Октябрь, 2017 15:14 ]
Заголовок сообщения:  Re: Какой параметр передавать в Dialog.Update?

Всем большое спасибо за ответы.

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