Откройте приложение, созданное на предыдущем занятии (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.
Ход работы