Создание оконного приложения — КиберПедия 

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Создание оконного приложения

2021-04-18 47
Создание оконного приложения 0.00 из 5.00 0 оценок
Заказать работу

Создание оконного приложения выполните согласно предложенного сценария и выполните требования.

1. Разобрать приложение под Windows согласно сценария, приведенного в задании 1 с целью знакомства с разработкой оконных приложений.

2. Разработать приложение под Windows на основе варианта лабораторной работы 9. В приложении использовать модули Unit_def, Unit_operation, разработанные в лабораторной работе 9.

Задание 1. Создание оконного приложения.

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

1. Создайте модуль Unit и включите в него определение типа записи. Сохраните модуль в папке данной лаб.работы с именем TypeRecord.

type

TAdress= record

city:string[80];

street:string[80];

end;

Trec=record

FIO:string[40];

Adress:TAdress;

Childs:byte;

end;

2. Создайте проект под Windows, выполнив команду File à New à Application, и подключите к нему ваш модуль.

3. Создайте проект формы, обеспечивающей ввод данных в поля записи, отображение записи, очистку полей записи, закрытие формы. Для ввода данных используйте компонент VCL Edit, ComboBox, ListBox, для отображения записей компонент Memo, для очистки полей Edit, ComboBox, ListBox используйте их метод Clear. Для выполнения пользователем операций: ввод данных в переменную типа запись, вывод значения переменной, очистку полей, закрытие формы, включите в проект четыре кнопки типа Button. Для подписей назначения элемента управления, представленного в форме используйте компонент Label. Пример проекта приведен на рис 9.

4. Реализация проекта формы.

· Объявите переменные r – для записи и i для номера вводимой записи, видимые во всех подпрограммах модуля, в интерфейсной части модуля формы.

· Измените свойство Caption всех меток на их содержание, используя, инспектор объектов для каждой метки. Установите свойство WordWrap для Label 3 равным true.

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

 

Рис.9. Проект формы приложения

 

· Сделайте элементы Edit, ComboBox, ListBox одного размера и расположите их на одинаковом расстоянии, для этого выделите все поля и вызовите контекстное меню, щелкнув на выделенных объектах правой клавишей мыши. Раскройте меню команды Position и выполните указанные действия.

· Введите подписи названий полей записи в первую строку Memo поля. Для этого откройте свойство lines и в окне редактора строк очистите первую строку и введите текст согласно образцу на рис.9.

· Заполните источник данных (свойство Items) элемента ComboBox. Для этого щелкните по кнопке   свойства Items элемента ComboBox, введите названия городов в открывшемся окне редактора строк. Закройте окно редактора, щелкнув по кнопке ОК.

· Заполните источник данных (свойство Items) элемента ListBox. Для этого щелкните по кнопке   свойства Items элемента ListBox, введите названия улиц в открывшемся окне редактора строк. Закройте окно редактора.

· Измените свойство Caption формы согласно образцу на рис.10.

5. Реализация обработчиков событий кнопок OnClick.

· Разработайте процедуру обработки события OnC l ick для кнопки Закрыть форму. Для этого дважды щелкните по кнопке, откроется окно кода приложения и процедура обработки этого события. Введите в тело процедуры команду Close. Для перехода в окно редактора кода щелкните в нем мышью.

procedure TForm1.Button4Click(Sender: TObject);

begin

 Close

 end;

· Разработайте обработчик события OnClick для кнопки, Ввод записи и в тело процедуры добавьте операторы, которые заполняют переменную r типа запись. успешного формирования записи активизируйте кнопку Button1, оператором Button 1. Enabled:= true; который сделает кнопку доступной.

 

Рис.10. Реализованный проект формы

 

procedure TForm1.Button1Click(Sender: TObject);

var

    i:integer;

begin

r.FIO:=edit1.Text;

r.Adress.city:=ComboBox.Text;

    i:= listBox.ItemIndex;

    r.Adress.street:=listBox.Items[i];

r.Childs:=strtoint(edit3.Text);

end;

· Разработайте обработчик события OnClick для кнопки, Очистить поля и в тело процедуры добавьте операторы вызова метода Clear для каждого поля. Последним оператором будет оператор, устанавливающий фокус на первое поле ввода – Edit 1. SetFocus – это метод объекта, обеспечивающий перемещение (фокуса) курсора в указанный элемент управления.

procedure TForm1.Button2Click(Sender: TObject);

begin

edit1.Clear;

ComboBox.text:=’’;

edit3.Clear;

edit1.Setfocus;;

end;

· Разработайте обработчик события OnClick для кнопки Отобразить запись и в тело процедуры вставьте операторы, которые заполняют свойство lines каждой строки компонента Memo. Объект Memo 1. lines [0] – это строка – заголовок объекта Memo 1. Данные выводятся в Мемо, начина со строки с номером один.

procedure TForm1.Button3Click(Sender: TObject);

var

 s:string;

begin

s:=r.FIO+' ‘+r.Adress.city+' '+ r.Adress.city+’ ‘+ inttostr(r.Childs);

Memo1.Lines.Add(s);

end;

5. Сохраните проект по команде File à Save All в папке проекта.

6. Выполните отладку и тестирование проекта сначала на одной записи, затем на нескольких.

7. Внесите изменения в проект, включив в него обработчик, который обеспечит контроль ввода только числовых значений в поле Количество детей. Т.е. в это поле должно вводиться значение, состоящее только из цифр. Для этого поля разработайте обработчик события OnChange. При успешном вводе данных для всех полей этот обработчик должен активизировать кнопку Ввод записи Button1.Enabled:=true;.

procedure TForm1.Edit3Change(Sender: TObject);

var

x:byte;

err:integer;

begin

 

val(edit3.Text,x,err);

if (edit3.text<>'') And (err<>0) then

begin

showmessage('Ошибка ввода’); end

else Button1.Enabled:=true;             //активизация кнопки Button1

end;

8. Выполните отладку и тестирование проекта, учитывая изменения.

Требования к выполнению лабораторной работы

Задание 2. Создать проект под Windows для вашего варианта лабораторной 9.

1. Преобразуйте консольное приложение, разработанное в лабораторной работе №9, в приложение под Windows. Включите в него модули. Для этого создайте новое приложение под Windows и подключите к нему модули из проекта лабораторной 9.

 uses

SysUtils, MY_Unit_Def in 'MY_Unit_Def.pas', MY _Unit_ Operation in MY_Unit_Operation.pas;

Примечание. В проект не включен модуль ввода-вывода. Так как ввод-вывод организуется через элементы управления формы.

2. Разработайте проект формы (рис.11) – позволяющей осуществлять ввод данных, отображение данных, выбор выполняемой операции.

 

Рис. 11. Проект формы

 

Модуль формы

unit Lab_prim_91;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,MY_Unit_Def,MY_Unit_Operation;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Button1: TButton;

Label1: TLabel;

Label2: TLabel;

Button2: TButton;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

Button3: TButton;

Memo1: TMemo;

Button4: TButton;

Button5: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

Massiv:TDar;

sum:Tdroby;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var r:TDroby;

begin

r.a:=strtoint(edit1.Text);

r.b:=strtoint(edit2.Text);

if (r.b=0) or (r.a=0) then ShowMessage('знаменатель= 0')

else

Add_to_Array(Massiv,r);

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

edit1.Clear;

edit2.Clear;

end;

procedure TForm1.Button3Click(Sender: TObject);

var

i:integer;

sline:string;

begin

if radiobutton2.checked then

begin

Memo1.lines[0]:='Элементы массива';

for i:=0 to high(Massiv) do

begin

  sline:=inttostr(Massiv[i].a)+'/'+inttostr(Massiv[i].b);

  Memo1.Lines.Add(sline);

end

end

else

if radiobutton1.checked then

begin

Memo1.lines[0]:='Ñóììà';

sum:=Add_Mass(Massiv);

Memo1.lines[0]:='Сумма=';

Memo1.lines.ADD(' '+inttostr(sum.a)+'/'+ inttostr(sum.b))

end

else

   ShowMessage(Операция не выбрана');

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

Memo1.Clear

end;

procedure TForm1.Button5Click(Sender: TObject);

begin   close end;

end.

Контрольные вопросы

1. Каково основное назначение формы проекта?

2. Сколько форм может быть в проекте?

3. Что такое событие?

4. Что представляет собой обработчик события?

5. Как установить событие для объекта, включенного в форму?

6. Как изменить значение свойства объекта?

7. Как выполнить форматирование группы элементов формы?

8. Какое событие может организовать перемещение к следующему полю ввода при нажатии клавиши Enter?

9. Какие разделы содержит модуль формы?

10. В каких разделах размещены глобальные имена типов, переменных, обработчики событий?

11. Что определяет имя Tform 1?

12. Какие переменные определены в модуле?

13. Что определяет переменная Form 1?

 

ЛАБОРАТОРНАЯ РАБОТА №11

 


Поделиться с друзьями:

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.032 с.