Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КурРаб_ВМИП.doc
Скачиваний:
4
Добавлен:
03.11.2018
Размер:
760.83 Кб
Скачать

6.1.2. Ввод данных

Ввод данных в Delphi можно осуществить с помощью окна ввода (InputBox) или поля редактирования (компонент Edit).

Окно ввода – стандартное диалоговое окно, которое появляется на экране в результате вызова функции InputBox(), имеющей следующий формат:

Переменная:= InputBox(Заголовок, Подсказка, Значение),

где Переменная – переменная строкового типа, значение которой должно быть получено от пользователя; Заголовок – текс заголовка окна ввода; Подсказка – текст поясняющего сообщения; Значение – текст, который будет находиться в поле ввода, когда окно появится на экране. На рисунке 2 приведено окно ввода, появляющееся в результате выполнения следующей строчки кода:

St:=InputBox('Стоимость', 'Введите стоимость в рублях', ' ');

InputBox

Рис.2. Пример использования окна ввода данных

Если в качестве поля редактирования использовать компонент Edit (однострочный редактор), то ввод данных осуществляется через свойство Text.

Например, Cena:=StrToFloat(Edit1.Text), где переменная Cena предварительно объявляется в разделе переменных.

6.1.3. Вывод данных

Наиболее просто можно вывести результат работы в окно сообщения или в поле вывода метку Label. При выводе информации в поле метки содержимое вывода определяется значением свойства Caption, которое можно изменить как во время разработки формы приложения, так и при выполнении программы.

Свойство Caption символьного типа. Поэтому для вывода в него числового значения, нужно преобразовать число в строку с помощью функций FloatToStrF или IntToStr.

Например:

Label1.Caption:= 'S= ' + FloatToStrF(S,ffFixed,8,2)+' руб.';

В качестве примера приведен обработчик события Button1Click, реализующий ввод данных в поля редактирования Edit1 и Edit2, расчет суммы оплаты за приобретенный товар, и вывод результата вычисления в метку Label1:

procedure TForm1.Button1Click(Sender: TObject);

var

Cena, S:real; //цена и стоимость товаров

Kol :integer; //их количество

begin

Cena:=StrToFloat(Edit1.Text);//ввод данных в поля редактирования

Kol:=StrToInt(Edit2.Text);

S:=Cena*Kol;

Label1.Caption:= 'S= ' + FloatToStrF(S,ffFixed,8,2)+ ' руб.';

end; // вывод результата в поле метки.

Интерфейс проекта, реализующий пример, приведен на рис. 3.

Рис.3. Пример использования полей Edit1 и Edit2 для ввода

данных и Label1 для вывода результата вычисления.

Окна сообщения при выводе информации используется для привлечения внимания пользователя. При этом программа может проинформировать об ошибке в исходных данных или запросить подтверждение выполнения необратимой операции, например удаление файла.

Вывести на экран окно с сообщением можно при помощи процедуры ShowMessage() или функции MessageDlg().

Процедура ShowMessage() выводит на экран окно с текстом и командной кнопкой ОК. Формат вызова процедуры:

ShowMessage(Сообщение),

где Сообщение – текст, который будет выведен в окне. В заголовке окна сообщения, выводимого процедурой ShowMessage, указывается название приложения или имя исполняемого файла, в случае если название не задано. На рис. 4 приведен вид окна сообщения, полученного в результате выполнения кода:

п

ShowMessage(' Сумма к оплате: '+ chr(13) +

' S= '+FloatToStrF(S,ffFixed,8,2)+' руб.');

ри вычислении итоговой суммы к оплате.

Рис. 4. Пример окна сообщения

Функция MessageDlg() более универсальна. Она позволяет поместить в окно с сообщением один из стандартных значков, задать количество и тип командных кнопок и определить, какую из кнопок нажал пользователь. В общем случае, формат вызова функции выглядит:

Выбор:=MessageDlg(Сообщение, Тип, Кнопки, КонтекстСправки);

где Сообщение – текст сообщения;

Тип – тип сообщения (информация, предупреждение, ошибка – каждому сообщению соответствует свой значок);

Кнопки – список кнопок, отображаемых в окне сообщения (весь список кнопок заключается в квадратные скобки, например, [mbOK, mbCancel] вызывает кнопки ОК и Cancel);

Контекст справки – параметр, определяющий раздел справочной системы, который появится на экране, если пользователь нажмет клавишу <F1>. Если вывод справки не предусмотрен, то значение параметра Контекст справки должен быть равен нулю.

На рис. 5 приведены окна, выводимые в результате выполнения следующих строчек кода:

if MessageDlg(' Рассчитать сумму к оплате?: ' ,mtConfirmation, [(mbYes),(mbNo)],0)=mrYes //если в MessageDlg нажата кнопка ОК, то

then ShowMessage('Сумма к оплате:' +chr(13)+ ' S=' + FloatToStrF (S,ffFixed,8,2)+' руб.') //выводится результат вычисления

else Label1.Caption:= 'Расчет производиться не будет!' ;

//иначе выводится сообщение в метку Label1.

Рис. 5. Пример использования окна сообщения

Тип сообщения задается именной константой, приведенной в табл. 5. Разные типы сообщения имеют разные значки.

Таблица. 5

Константа

Тип сообщения

Значок

mtWarning

mtError

mtInformation

mtConfirmation

mtCustom

Внимание

Ошибка

Информация

Подтверждение

Обычное

!

х

i

?

без значка

Список именованных констант-кнопок и значения, возвращаемые функцией MessageDlg() при нажатии соответствующей кнопки, приведены в табл. 6.

Таблица. 6

Константа

Кнопка

Значение функции

mbYes

mbNo

mbOK

mbCancel

mbHelp

mbAbort

mbRetry

mbIgnore

mbAll

Yes //да

No //нет

OK //подтвердить

Cancel //отменить

Help //помощь

Abort //прерывание

Retry //повтор

Ignore //пропуск

All //всё

mrYes

mrNo

mrOK

mrCancel

mrHelp

mrAbort

mrRetry

mrIgnore

mrAll