Unit UnStr;
Interface
Uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons;
Type
TForm1 = class(TForm)
Label1: TLabel;
ComboBox1: TComboBox;
Label2: TLabel;
Label3: TLabel;
BitBtn1: TBitBtn;
Label4: TLabel;
Label5: TLabel;
procedure FormActivate(Sender: TObject);
procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
procedure ComboBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Var
Form1: TForm1;
Implementation
{$R *.DFM}
//Обработка события активизации Формы
procedure TForm1.FormActivate(Sender: TObject);
Begin
ComboBox1.SetFocus;
end;
// Обработка события ввода символа и нажатия клавиши Enter
procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
Begin
// если нажата клавиша Enter, то строка из поля редактирования
// переносится в список выбора ComboBox1
ifkey=#13 then
Begin
ComboBox1.Items.Add(ComboBox1.Text);
ComboBox1.Text:=''; // очистка окна редактирования
end;
end;
// Обработка события нажатия клавиши «мыши» в списке выбора
procedure TForm1.ComboBox1Click(Sender: TObject);
Var
st : string;
n,i,nst,ind: integer;
Begin
n:=0; // n содержит количество слов
ind:=0;
nst:=ComboBox1.ItemIndex; // определение номера выбранной строки
st:=ComboBox1.Items[nst]; // st присваивается выбранная строка
// Определение количества слов в выбранной строке st
for i:=1 to Length(st) do
case ind of
0: if st[i]<>' ' then//если встретился символ
Begin
ind:=1;
n:=n+1; //количество слов увеличивается на единицу
end;
1: if st[i]=' ' then//если встретился пробел
ind:=0;
end;
Label3.Caption:=IntTotr(n); //вывод количества слов в Label3
// Замена строчных символов русского языка на прописные
for i:=1 to Length(st) do
if(st[i]>='а') and (st[i]<='я') then
st[i]:=chr(ord(st[i])-32);
Label5.Caption:=st; //полученная строка выводится в Label5
end;
End.