В цьому місці процедури, користуючись текстом модуля UnStr, наберіть оператори, які при натисненні клавіші Enter переносять рядок з поля редагування в список вибору і очищають поле редагування.
Процес створення процедури-обробника події натиснення клавіші “миші” в списку вибору
Procedure TForm1.ComboBox1Click(Sender: TObject)
виконується аналогічно для події OnClick компоненту :
ComboBox1. Користуючись текстом модуля UnStr, наберіть оператори, які здійснюють основний алгоритм обробки символів вибраного рядка.
4. Текст модуля UnStr
UnitUnStr;
Interface
Uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs
StdCtrls, Buttons;
Type
TForm1 = class(TForm)
Label2: TLabel;
Label3: TLabel;
BitBtn1: ТВitBtn;
ComboBox1: TComboBox;
Label1: TLabel;
procedureComboBox1KeyPress(Sender: TObject; var Key: Char);
procedureComboBox1Click(Sender: TObject);
procedureFormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Var
Form1: TForm1;
Implementation
{$R *.DFM}
// Обробка події активізації Форми
procedureTForm1.FormActivate(Sender: TObject);
Begin
ComboBox1.SetFocus; // передача фокусу введення ComboBox1
end;
// Обробка події введення символу і натиснення клавіші Enter
procedureTForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
Begin
ifkey=#13 then// якщо натискання клавіші Enter то
begin // рядок з поля редагування заноситься
ComboBox1.Items.Add(ComboBox1.Text); // в список вибору
ComboBox1.Text:=''; // очищення вікна редагування
end;
end;
// Обробка події натиснення клавіші "миші" в списку вибору
procedureTForm1.ComboBox1Click(Sender: TObject);
Var
-й : string;
n,i,nst,ind: integer;
Begin
n:=0; // n містить кількість слів
ind:=0;
nst:=ComboBox1.ItemIndex; // визначення номера вибраного рядка
-й:=ComboBox1.Items[nst]; // -й привласнюється вибраний рядок
fori:=1 to Length(-й) do// перегляд всіх символів рядка
caseind
0 : if-й[i]<>' ' then // якщо зустрівся символ
Begin
ind:=1;
n:=n+1; // кількість слів збільшується на одиницю
end;
1 : if-й[i]=' ' then// якщо зустрівся пропуск
ind:=0;
end;
Label3.Caption:=IntToStr(n); // виведення кількості слів в Label3
end;
End.
5.Виконання індивідуального завдання:
У всіх завданнях початкові дані вводити за допомогою компоненту Edit в компонент ListBox, або за допомогою властивості Text у властивість Items компоненту ComboBox. Результат виводити за допомогою компоненту Label. Введення рядка закінчувати натисненням клавіші Enter. Робота програми-додатку повинна завершуватися натисненням кнопки Close.
Для перевірки функціонування програми-додатку підготувати декілька тестів.
Індивідуальні завдання:
1. Даний рядок, що складається з груп нулів і одиниць. Кожна група відділяється один від одного одним або декількома пропусками. Знайти кількість груп з п'ятьма символами.
2. Даний рядок, що складається з груп нулів і одиниць. Кожна група відділяється один від одного одним або декількома пропусками. Знайти і вивести на екран найкоротшу групу.
3. Даний рядок, що складається з груп нулів і одиниць. Кожна група відділяється один від одного одним або декількома пропусками. Підрахувати кількість символів в щонайдовшій групі.
4. Даний рядок, що складається з груп нулів і одиниць. Кожна група відділяється один від одного одним або декількома пропусками. Знайти і вивести на екран групи з парною кількістю символів.
Вимоги до оформлення звіту :
Звіт повинен містити:
1. Тему та мету лабораторної роботи.
2. Завдання на лабораторну роботу.
3.Текст програми.
4. Відповідь на контрольні запитання.
Контрольні запитання:
1. Що таке компонент ListBox?.