Завдання: написати програму підрахунку числа слів у довільному рядку. Як роздільник може бути будь-яка кількість пробілів. Для введення рядків і роботи з ними використовувати ТСоmbоВох. Уведення рядка закінчувати натисканням Enter. Для виходу з програми використовувати кнопку Close.
Панель діалогу буде мати вигляд (мал.13.1). Текст програми приведений нижче.
Unit Unit1;
Interface
Uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;
type
Tunit_Lab5 = class(TForm)
ComboBox1: TComboBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
BitBtn1: TBitBtn;
Button1: TButton;
Procedure FormActivate(Sender: TObject);
Procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
Procedure ComboBox1Click(Sender: TObject);
Private
{ Private declarations }
Public
{ Public declarations }
end;
var
Unit_Lab5: TUnit_Lab5;
Implementation
{$R *.DFM}
// Обробка події активізації форми
Procedure TUnit_Lab5.FormActivate(Sender: TObject);
begin
ComboBox1.SetFocus; //Передача фокуса ComboBox1
end;
// Обробка події натискання лівої клавіші миші
Procedure TUnit_Lab5.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if Key =#13 then //Якщо натиснуто клавішу Enter те...
begin
// Рядок з вікна редагування заноситься в список вибору
ComboBox1.Items.Add(ComboBox1.Text);
ComboBox1.Text := ''; //Очищення вікна редагування
end;
end;
Procedure TUnit_Lab5.ComboBox1Click(Sender: TObject);
var
St : string;
n, і, nst, ind : integer;
begin
n := 0; //Містить число слів обраного рядка
//Містить кількість слів
ind := 0;
//Визначення номера обраного рядка
nSt := ComboBox1.ItemIndex;
//Занесення обраного рядка в перемінну st
St := ComboBox1.Items[nst];
//Перегляд усіх символів рядка st
for i := 1 to Length(St) do
begin
Case ind of
0: if St[і] <>'' then
begin
//Якщо зустрівся символ після пробілу
//кількістьслів збільшується на одиницю
ind := 1;
n := n+1;
end;
// Якщо зустрівся пробіл після символів
1: if St[i] ='' then ind := 0;
end;
end;
Label3.Caption := IntToStr(n); //Виведення кількості слів у Label3
end;
end.
Контрольні запитання:
8. Які типи рядкових змінних у Delphi Ви знаєте?
9. Вкажіть на особливості кожного типу рядкових змінних.
10.Що називають обробником подій у Delphi&
11.Який інструментарій використовують для створення коду обробника подій?