OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 24 Январь, 2019 15:57

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
СообщениеДобавлено: Суббота, 14 Октябрь, 2017 07:58 

Зарегистрирован: Воскресенье, 06 Август, 2017 19:33
Сообщения: 46
Какой параметр передавать в 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 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2247
Dialog.UpdateString


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 14 Октябрь, 2017 11:35 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1104
Откуда: СССР v2.0 rc 1
По правой кнопочке мыши на "Dialog" можно выбрать пункт меню "Интерфейс". Там, все доступные процедуры обновлений представлены (а также доступные типы, переменные, константы). Генерация информации по интерфейсу берётся из актуального состояния соответствующего модуля. Файл символьных ссылок (если не путаю). Рекомендую))


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 14 Октябрь, 2017 14:18 

Зарегистрирован: Воскресенье, 06 Август, 2017 19:33
Сообщения: 46
Код:
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 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9072
Откуда: Россия, Орёл
Скорее всего, Вы вводите число > 127, сразу получаете переполнение байта (т.е. значение становится отрицательным), и IF > 120 уже ложно.
(Хотя, по идее, поле ввода само не должно позволять для байта ввод с переполнением.)

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 14 Октябрь, 2017 15:14 

Зарегистрирован: Воскресенье, 06 Август, 2017 19:33
Сообщения: 46
Всем большое спасибо за ответы.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB