Откройте приложение, созданное на предыдущем занятии (Lab1).

Список выбора ListBox1.

Установите на форму компонент ListBox1.

1. Свойству Itemsзадайте следующие значения: Фунт, Пуд, Унция, Драхм, Гран. Свойство Items(класс TString) хранит строки списка.

2. Измените размер и цвет шрифта компонента ListBox1.

3. Создайте обработчик события OnClickдля компонента ListBox1.Событие OnClickпроисходит при выборе элемента в списке.

Обработчик события:

Procedure TForm1.ListBox1Click(Sender:TObject);

Begin

If (Edit1.Text=' ') or (ListBox1.ItemIndex <0) Then Exit;

x:= StrToFloat(Edit1.Text);

case ListBox1.ItemIndex of

0: y:= x/400;

1: y:= x/16380;

2: y:= x/28.35;

3: y:= x/28.35*16;

4: y:= 437.5*x/28.35;

End;

Memo1.Lines.Add(FormatFloat('#####.#####Грамм=',x)+ FormatFloat('#####.##### ', y) + ListBox1.Items[ListBox1.ItemIndex]);

Edit1.Clear;

Edit1.SetFocus;

End;

Свойство ItemIndex определяет номер выбранного элемента списка.

Метод Clearочищает содержимое компонента TEdit. Метод SetFocusустанавливает курсор в этот компонент.

Не забудьте описать X и Y.

4. Сохраните вашу работу в папку Lab2. Осуществите прогон программы (F9). Выполните несколько контрольных расчетов:

1234Грамм = 3,085 Фунт

1234Грамм = 0,07534 Пуд

1234Грамм = 43,52734 Унция

1234Грамм = 696,43739 Драхм

1234Грамм = 19043,20988 Гран

Свойство Anchors.

1. В работающем приложении максимизируйте окно. Обратите внимание на то, что местоположение кнопки «Close» относительно левого края формы осталось прежним.

2. Закройте приложение. Сделайте так, чтобы кнопка «Close» всегда оставалась в правом нижнем углу. Для этого используйте свойство Anchors.По умолчанию это свойство имеет значение [akTop, akLeft]. Присвоим этому свойству значение [akRight, akBottom]. Для этого в правой части строки свойства Anchorsзададим: akTop– False; akLeft– False; akRight– True; akBottom– True.

3. Осуществите прогон программы и проверьте, верно, ли Вы использовали свойство Anchors.

4. Для того, чтобы размер нижней панели изменялся пропорционально размеру окна, присвойте свойству Anchorsзначение [akTop, akLeft, akRight, akBottom]. Запустите программу и Вы увидите, что при изменении размеров окна Panel1 тоже меняет свои размеры.

Компонент TRadioGroup.

1. Добавьте к приложению компонент TRadioGroup.Свойству ItemIndexзадайте значение 0.В Itemsввести две строки: единичное значение, расчет для интервала значений.

2. Добавьте на Panel2еще одну метку Label2 (Caption-Конечное значение) и еще один редактор Edit2. Свойству Visibleэтих компонентов присвойте значение False.Это означает, что компоненты не будут видны на форме до тех пор, пока свойство Visibleне станет равным True.

3. Создайте обработчик OnClickдля компонента TRadioGroup.

Procedure TForm1.RadioGroup1Click(Sender:TObject);

Begin

Case RadioGroup1.ItemIndex of

0: begin

Label1.Caption := ‘Введите значение веса в граммах’;

Edit2.Hide; Label2.Hide; End;

1: begin

Label1.Caption := ‘Начальное значение веса’;

Edit2.Show; Label2.Show; End; End; End;

Методы Show и Hideопределяют видимость компонента на экране.

Внесите изменения в обработчик OnClick компонента ListBox1:

Procedure TForm1.ListBox1Click(Sender:TObject);

Begin

If (Edit1.Text =' ') or

(ListBox1.ItemIndex <0 ) then Exit;

Case RadioGroup1.ItemIndex of

1: begin

if (Edit2.Text=' ') then Exit;

X_nach:=StrToFloat(Edit1.Text);

X_kon:=StrToFloat(Edit2.Text);

D:= (X_kon –X_nach)/10; End;

0: begin

X_nach:=StrToFloat(Edit1.Text);

X_kon:=X_nach;

D:=1; End; End;

x:= X_nach;

while x <= X_kon do

begin

case ListBox1.ItemIndex of

0: y:= x/400;

1: y:= x/16380;

2: y:= x/28.35;

3: y:= x/28.35*16;

4: y:= 437.5*x/28.35; end;

Memo1.Lines.Add(FormatFloat('#####.#####Грамм=',x)+ FormatFloat('#####.#####',y) + ListBox1.Items[ListBox1.ItemIndex]);

x:= x + D;

end;

Edit1.Clear;

Edit1.SetFocus;

Edit2.Clear;

End;

Не забудьте описать переменные X_nach, X_kon, D.

4. Для компонента Memo1установите ScrollBarsравным ssVertical.У многострочного редактора появилась линейка прокрутки.

5. Осуществите прогон программы.

Компонент TGroupBox.

Установите на Panel1компонент TGroupBox и задайте свойство Captionравным «Настройка экрана». С помощью этого компонента выделяется группа управляющих элементов, объединенных по функциональному назначению.

Компонент TCheckBox.

1. Состояние этого компонента содержит свойство State: cbUnchecked– нет; cbChecked – да; cbGrayed – не знаю. Это свойство доступно как для чтения, так и для записи. Свойство Сhecked содержит выбор пользователя Да/Нет. Установите компонент TCheckBox (Caption-Шрифт) на контейнер TGroupBox.

2. Создайте обработчик события OnClickдля этих компонентов.

Procedure TForm1.CheckBox1Click(Sender:TObject);

Begin

If CheckBox1.State = cbChecked then

Memo1.Font.Style:=[fsItalic]

Else Memo1.Font.Style:=[];

End;

3. Проверьте работу вновь установленных компонентов.

Компонент TScrollBar.

1. Установите на Panel1компонент TScrollBar.Этот компонент используется для визуального управления значением числовой величины. Его свойство Positionсодержит текущее значение числовой величины.

2. Создайте обработчик OnScrollдля этого компонента, Событие OnScrollвозникает при любом изменении свойства Position.

Procedure Form1.ScrollBar1Scroll(Sender:TObject;ScrollCode:TScrollCode;

var ScrollPos: integer);

begin

x:= ScrollBar1.Position;

Edit1.Text:= FloatToStr(x);

RadioGroup1.ItemIndex :=0;

End;

В этом обработчике мы связали позицию ползунка линейки прокрутки со значением переменной х.

3. Для того чтобы установить фокус ввода в окно редактора в самом начале работы, создадим еще один обработчик события. Событие для формы OnActivateвозникает в момент активизации окна (при получении формой фокуса ввода).

Procedure TForm1.FormActivate(Sender:TObject);

Begin

Edit1.SetFocus; End;

Минимизируйте окно Delphiи удалите все файлы из Вашего каталога Lab2.

Новые свойства, методы, события:

Свойства
Items Хранит строки списка
ItemIndex Определяет номер выбранного элемента списка
Checked Содержит выбор пользователя Да/Нет в переключателе TCheckBox
State Содержит состояние компонента: cbUnchecked– нет; cbChecked – да; cbGrayed – не знаю
Position, Min, Max Текущее, минимальное и максимальное значения числовой величины
ScrollBars Определяет наличие линейки прокрутки
Visible Определяет видимость компонента
Anchors Определяет способ фиксирования дочернего компонента относительно границ своего родительского компонента
Методы
Clear Очищает содержимое компонента
Show Сделать компонент видимым
Hide Сделать компонент невидимым
SetFocus Устанавливает фокус ввода
События
OnScroll Возникает при любом изменении свойства Position компонента TScrollBar
OnActivate Возникает для формы в момент активизации окна (при получении формой фокуса ввода)

 

Задания:

Варианты Исходные данные
1 мм рт. ст. = 133 Па 1 дин/см2 =0,1 Па 1 физ. Атм. = 1,013*105 Па 1 кгс*м2 =9,81 Па
1 дюйм = 2,54 см 1 ярд = 0,9144 м 1 верста = 500 сажень 1 косая сажень = 1,76 м
1 бушель = 36,37 дм3 1 галлон = 4,54 дм3 1 пинта = 0,5683 дм3
1 калория = 4,19 Дж 1 эрг = 10-7 Дж 1 кгс*м = 9,81 Дж 1 ватт*час =3,6*103 Дж

 

 

ЛАБОРАТОРНАЯ РАБОТА №3.

КОМПИЛЯЦИЯ, ОТЛАДКА И ВЫПОЛНЕНИЕ ПРОГРАММ. КОМПОНЕНТЫ ПАНЕЛИ ADDITIONAL.

Теоретические сведения

Для управления выполнением программ используются следующие команды пункта меню Run:

Команда Описание
Run (F9) Программа выполняется без остановки на каждой строке. Эта команда эквивалентна выполнению программы вне отладчика.
Step Over (F8) Программа выполняется построчно. Подпрограммы выполняются как одна строка.
Trance Into (F7) Программа выполняется построчно. Также выполняется каждая строка подпрограммы.
Run TO Cursor (F4) Программа выполняется до той строки, на которой находится курсор в окне Code Editor.
Program Pause Выполнение программы приостанавливается.
Program Reset (Ctrl F2) Выполнение программы завершается.
Add Breakpoint Можно указать точки прерывания при выполнении программы.

 

Точка контрольного останова определяет оператор в программе, перед выполнением которого программа прервет работу, и управление будет передано среде Delphi.Точка останова задается с помощью опции View/Debug Windows/ Breakpoints. Легче просто щелкнуть левой кнопкой мыши в левом углу строки, на которой вы хотите установить точку прерывания.

Наблюдать за состоянием переменной или выражения можно с помощью специального окна, вызываемого опцией View/Debug Windows/Watches.

Изменить текущее значение переменной можно с помощью окна Evaluate/Modify, вызываемого нажатием <Ctrl-F7>.В строке Expression следует написать имя переменной, нажать кнопку Modify и вывести новое значение в строке New Value.

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

Ход работы