
- •Введение
- •Лабораторная работа 1. Элементы интерфейса Delphi
- •Лабораторная работа 2. Разработка первого проекта
- •Лабораторная работа 3. Разработка проекта «Диалог»
- •Лабораторная работа 4. Разработка проекта «Справочник»
- •Лабораторная работа 5. Разработка проекта «Словарь»
- •Лабораторная работа 6. Разработка проекта «Ваш вес»
- •Лабораторная работа 7. Разработка проекта «Цвета в формате rgb»
- •Лабораторная работа 8. Разработка проекта «Тест по физике»
Лабораторная работа 3. Разработка проекта «Диалог»
Постановка задачи
Создать программу, выполняющую следующие действия.
После запуска программы пользователь вводит свое имя, например Александр, в прямоугольник с мигающим текстовым курсором и нажимает клавишу Enter (рис.5).
Появляется вопрос: «Александр, ты любишь читать?». Если пользователь щелкает на кнопке «Да», то появляется реплика «Молодец!», если на кнопке «Нет», то реплика «Почему же? Надо читать». Для выхода из программы необходимо щелкнуть на кнопке «Выход».
Пояснение. Новым в этой работе является использование строки ввода Edit (вкладка палитры компонентов Standart) и обработки события OnKeyPress – нажатия клавиши.
План разработки программы
Открыть новый проект. Дать форме название «Диалог».
Разместить на форме экземпляры компонентов в соответствии с рис.6
Рис. 5. Рис.6.
Выполнить следующие действия:
Выделенный объект
Вкладка окна Object Inspector
Имя свойства/имя события
Действие
BitBtn1
Properties
Caption
Установка имени кнопки «Выход»
Kind
bk Close
Label1
Properties
Caption
Ввод надписи «Введи свое имя и нажми Enter»
Edit1
Events
OnKeyPress
Begin
if key=#13 then
Labe12.Caption:=Edit1.Text+’ты любишь читать?’
end;
Button1
Properties
Caption
Установка имени кнопки: «Да»
Events
OnClick
Labe13.Caption:=’Молодец!’
Button2
Properties
Caption
Установка имени кнопки: «Нет»
Events
OnClick
Labe13.Caption:=’Почему же? Надо читать.’ ;
Сохранить код программы и проект под именами, например, pr-2.pas и pr-2.dpr.
Запустить программу, затем закрыть окно проекта, щелкнув на кнопке «Выход».
Сохранить проект, запустить и протестировать его.
Дополнительное задание
Сделать кнопки «Да» и «Нет» доступными только после ввода имени и нажатия клавиши Enter.
Подсказка. Значение свойства Enabled кнопок «Да» и «Нет» установить равным False, а в процедуру Edit1KeyPress включить код
Button1.Enabled : = true;
Button2.Enabled : = true;
Удалить имена объектов Edit1, Labe12, Labe13 для обеспечения возможности повторить диалог.
Подсказка .Значение на форме еще одну кнопку BitBtn. Установить значение bkRetry свойства Kind и значение « Повторить» свойства Caption. Ввести программно по нажатию кнопки « Повторить» пустые строки вместо надписей и имен кнопок:
Label2.Caption:=΄΄;
Label3.Caption:=΄΄;
Edit1.Text:= ΄΄;
Сделать так, чтобы при повторении диалога строка ввода была снова активной.
Подсказка .Ввести команду
Form1.ActiveControl:=Edit1
Листинг программы
unit Unit2
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Buttons, StdCtrls;
type
TForm1 = class (TForm)
Edit1: TEdit;
Button1: TButton;
Labe11: TLabe1;
Labe12: TLabe1;
Button2: TButton;
Labe13: TLabe1;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure Edit1KeyPress (Sender: TObject; var Key: Char) ;
procedure Button1Click (Sender: TObject) ;
procedure Dutton2Click (Sender: TObject) ;
procedure BitBtn2Click (Sender: TObject) ;
private
( Private declarations )
public
( Public declarations )
end;
var
Form1: TForm1;
implementation
(SR * DFM)
procedure TForm1.Edit1KeyPress (Sender: TObject; var Key: Char);
begin
if key=#13 then begin
Labe12.Caption:=Edit1.Text+’, ты любишь читать?’;
Button1.Enabled:=true;
Button2.Enabled:=true;
end;
end;
procedure TForm1.ButtonClick (Sender: TObject);
begin
Labe13. Caption:=’Молодец !’;
end;
procedure TForm1. Button2Click(Sender: TObject);
begin
Labe13.Caption:=’Почему же? Надо читать.’;
end;
procedure TForm1.BitBtn2Click(Sender: TObjtct);
begin
Edit1.Text:=’’;
Labe12.Caption:=’’;
Labe13.Caption:=’’;
Button1.Enabled:=false;
Button2.Enabled:=false;
Form1.ActivControl:=Edit1;
end;
end.