Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа1.doc
Скачиваний:
5
Добавлен:
06.11.2018
Размер:
229.89 Кб
Скачать
    1. Функции MessageDlg и ShowMessage

Сначала обсудим функцию MessageDlg (как более содержательную). Она используется для вывода на экран messagebox'а с неким сообщением и несколькими кнопками (Yes, No, OK и т. д.), которое выглядит приблизительно так:

Параметры у этой функции следующие. Первый задает строку, которая будет показываться в нашем сообщении (как и все строки в Delphi, заключаем ее в одинарные кавычки). Второй параметр определяет иконку на нашем messagebox'е и сообщение в его заголовке. Возможные значения для этого параметра

  • mtConfirmation (Подтверждение),

  • mtInformation (Сообщение),

  • mtWarning (Предупреждение),

  • mtError (Ошибка).

Обратите внимание, что при записи любого из перечисленных значений messagebox получит и соответствующий заголовок. Для этого параметра есть еще одно значение - mtCustom. Если использовать его, то никакой иконки в нашем messagebox'е не будет, а заголовок будет совпадать с именем exe-файла.

Третий параметр определяет кнопки, которые будут присутствовать на combobox'е. Вот некоторые из возможных значений:

  • mbYes (кнопка Yes),

  • mbNo (кнопка No),

  • mbCancel (кнопка Cancel),

  • mbOK (кнопка OK).

Если кнопок несколько, то они объединяются посредством квадратных скобок (например, если мы хотим, чтобы присутствовало две кнопки Yes и No, то пишем [mbYes, mbNo]).

Последний, четвертый параметр - это идентификатор контекстной справки.

В качестве результата функции MessageDlg возвращает значение, информирующее о том, что за кнопку пользователь нажал в messagebox'е. Вот несколько возможных значений: mrYes, mrCancel, mrOK. А вот и пример использования функции MessageDlg:

if MessageDlg('Выходим из программы?',

mtConfirmation, [mbYes, mbNo], 0) = mrYes

then close;

В этом фрагменте у пользователя спрашивается, надо ли выходить из программы, и при положительном ответе программа закрывается.

Теперь обсудим функцию ShowMessage. У неё только один параметр - текст сообщения. Вот пример:

ShowMessage('Сообщение');

Ничего тут особо интересного нет. Отметим, что эта функция используется для вывода простых сообщений, которые не требуют ответа от пользователя (типа Yes, No и т. д.).

    1. Первая программа

Теперь начинаем создавать свою первую программу. Она будет складывать два числа, которые пользователь введет в два поля для ввода текстовых значений (компонента TEdit). Ответ будет выводиться в виде диалога сообщений messagebox.

Двойным щелчком левой кнопки мыши на компоненте Edit на вкладке Standard Палитры компонент выбранный элемент поместится на форме с именем Edit1:

Точно также расположите на форме и второй компонент Edit2. Аналогично разместите на форме два компонента Label:

Осталось расположить пятый, последний элемент - Button:

Расположите эти компоненты на форме как показано ниже:

Теперь напишем код программы. Для этого переходим в окно кода, сделав двойной щелчок на кнопке Button1, которую мы только что расположили на форме. В окне кода появится заготовка следующего вида:

procedure TForm1.Button1Click(Sender: TObject);

begin

end;

Теперь осталось записать между операторными скобками Begin..End исполняемые инструкции, которые будут выполняться при каждом щелчке (Click) на кнопку Button1:

MessageDlg(IntToStr(StrToInt(Edit1.Text)+StrToInt(Edit2.Text)),

mtConfirmation,[mbOK],0);

Здесь применены следующая функция:

  • IntToStr() – преобразует целое число в строку;

После этого компилируем и запускаем программу. Для этого нажимаем на F9 или на следующую кнопку:

StrToInt() – преобразует строку в число;

MessageDlg() – выводит диалоговое окно сообщения.

Наша программа запустится. Можете ввести в текстовые окна числа (мы ввели 2 и 11), нажать (кликнуть) на кнопку и получить сообщение MessageBox с результатом сложения:

Теперь предусмотрим тот случай, когда случайно ввели текст, а не число. Для этого воспользуемся окном Events в Инспекторе объектов, где представлены все события выбранной компоненты. Найдем для компоненты Edit1 событие OnKeyPress (нажата клавиша) и дважды щелкнем по пустому окну. Откроется код программы с заголовком процедуры, которая выполняется при наступлении данного события:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

end;

В списке формальных параметров присутствует параметр-переменный Key типа Char. Это как раз и есть та самая нажатая клавиша, возвращаемая по ссылке в эту процедуру. Запишем обработку ситуации нажатия не числового символа:

if not (Key in ['0'..'9']) then begin

beep;

key:=#0;

end;

Здесь используется процедура Beep – подача звукового сигнала, если введен нечисловой символ, и этот символ в переменной Key обнуляется (код символа #0). Теперь выберем в Инспекторе объектов другое поле Edit2 и для события OnKeyPress выберем из списка уже созданную процедуру. Теперь наша программа будет вводить только числа, игнорируя другие символы, даже знак минус.