Полезная статья? Пожалуйста, поставьте "+"
Алгоритмизация и программирование - Содержание
Наиболее просто программа может получить исходные данные из окна ввода или из поля редактирования (компонент Edit).
Ввод из окна ввода
Окно
ввода — это стандартное диалоговое окно, которое появляется на экране в
результате вызова функции inputBox. Значение функции inputBox —
строка, которую ввел пользователь.
В общем виде инструкция ввода данных с использованием функции inputBox выглядит так:
Переменная := InputBox(Заголовок, Подсказка, Значение);
где:
- Переменная — переменная строкового типа, значение которой должно быть получено от пользователя;
- Заголовок — текст заголовка окна ввода; П подсказка — текст поясняющего сообщения;
- Значение — текст, который будет находиться в поле ввода, когда окно ввода появится на экране.
Ниже
в качестве примера приведена инструкция, используя которую можно
получить исходные данные для программы пересчета веса из фунтов в
килограммы. Окно ввода, соответствующее этой инструкции, приведено на
рис. 1.5.
s:=InputBox('Фунты-килограммы','Введите вес в фунтах','0');
Если во время работы программы пользователь введет строку и щелкнет на кнопке ОК, то значением функции inputBox будет введенная строка. Если будет сделан щелчок на кнопке Cancel, то значением функции будет строка, переданная функции в качестве параметра значение.
Следует
еще раз обратить внимание на то, что значение функции inputBox
строкового (string) типа. Поэтому если программе надо получить число,
то введенная строка должна быть преобразована в число при помощи
соответствующей функции преобразования. Например, фрагмент программы
пересчета веса из фунтов в килограммы, обеспечивающий ввод исходных
данных из окна ввода, может выглядеть так:
s := InputBox('Фунты-килограммы1,'Введите вес в фунтах',''); funt := StrToFloat(s);
Ввод из поля редактирования
Поле редактирования — это компонент Edit. Ввод данных из поля редактирования осуществляется обращением к свойству Text.
Компонент Editl используется для ввода исходных данных. Инструкция ввода данных в этом случае будет иметь вид:
Funt := StrToFloat(Editl.Text);
Вывод результатов
Наиболее
просто программа может вывести результат своей работы в окно сообщения
или в поле вывода (компонент Label) диалогового окна.
Вывод в окно сообщения
Окна
сообщений используются для привлечения внимания пользователя. При
помощи окна сообщения программа может, к примеру, проинформировать об
ошибке в исходных данных или запросить подтверждение выполнения
необратимой операции, например, удаления файла.
Вывести на экран окно с сообщением можно при помощи процедуры ShowMessage или функции MessageDlg.
Процедура ShowMessage выводит на экран окно с текстом и командной кнопкой ОК.
В общем виде инструкция вызова процедуры ShowMessage выглядит так:
ShowMessage(Сообщение);
где сообщение — текст, который будет выведен в окне.
ShowMessage('Введите вес в фунтах.');
Следует
обратить внимание на то, что в заголовке окна сообщения, выводимого
процедурой ShowMessage, указано название приложения, которое задается
на вкладке Application окна Project Options. Если название приложения не задано, то в заголовке будет имя исполняемого файла.
Функция
MessageDig более универсальная. Она позволяет поместить в окно с
сообщением один из стандартных значков, например "Внимание", задать
количество и тип командных кнопок и определить, какую из кнопок нажал
пользователь. На рис. 1.8 приведено окно, выведенное в результате
выполнения инструкции
r:=MessageDlg('Файл '+ FName + ' будет удален.', mtWarning, [mbOk,mbCancel] , 0) ;
Значение
функции MessageDlg — число, проверив значение которого, можно
определить, выбором какой командной кнопки был завершен диалог.
В общем виде обращение к функции MessageDig выглядит так:
Выбор:= MessageDlg(Сообщение, Тип, Кнопки, КонтекстСправки)
где:
- Сообщение — текст сообщения;
- Тип —
тип сообщения. Сообщение может быть информационным, предупреждающим
или сообщением о критической ошибке. Каждому типу сообщения
соответствует определенный значок. Тип сообщения задается именованной
константой;
Кнопки — список
кнопок, отображаемых в окне сообщения. Список может состоять из
нескольких разделенных запятыми именованных констант. Весь список
заключается в квадратные скобки.
Константы функции MessageDlg
Таблица 1.9. Константы функции MessageDlg
Например, для того чтобы в окне сообщения появились кнопки ОК и Cancel, список Кнопки должен быть таким:
[mbOK,mbCancel]
Кроме
приведенных констант можно использовать константы: mbokcancel,
mbYesNoCancel и mbAbortRetryIgnore. Эти константы определяют наиболее
часто используемые в диалоговых окнах комбинации командных кнопок.
контекстСправки — параметр, определяющий раздел справочной системы, который появится на экране, если пользователь нажмет клавишу . Если вывод справки не предусмотрен, то значение параметра КонтекстСправки должно быть равно нулю.
Значение, возвращаемое функцией MessageDig, позволяет определить, какая из командных кнопок была нажата пользователем.
Значения функции MessageDlg
|
|
|
|
|
Значение функции MessageDig
|
Диалог завершен нажатием кнопки
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Вывод в поле диалогового окна
Часть
диалогового окна, предназначенная для вывода информации, называется
полем вывода, или полем метки. Поле вывода — это компонент Label.
Содержимое
поля вывода определяется значением свойства Caption. Изменить значение
свойства Caption, как и большинства свойств других компонентов, можно
как во время разработки формы приложения, так и во время работы
программы.
Для
того чтобы во время работы программы изменить содержимое поля вывода,
например, вывести в поле результат работы программы, нужно присвоить
свойству новое значение.
Свойство
Caption символьного типа. Поэтому для того, чтобы во время работы
программы вывести в поле метки числовое значение, нужно преобразовать
число в строку, например, При при помощи фуекции FloatToStr или
IntToStr.
Ниже
в качестве примера приведена инструкция из программы пересчета веса из
фунтов в килограммы, которая используется для вывода результата
расчета.
Label2.Caption:= FloatToStr(kg)+' кг';
|