Материал: Мансуров. Основы программирования в среде Lazarus. 2010

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

procedure TForm1.avtorization; begin

if passw <> Edit1.Text then begin

Edit1.SetFocus; if n = 1 then begin

ShowMessage('Неправильный пароль!'); inc(n);

end else begin

if n = 3 then begin

ShowMessage('Вам отказано в доступе');

Close();

end else begin

Stroka:= 'Вы ' + IntToStr(n) + ' раза ввели неправиль-

ный пароль';

Stroka:= Stroka + ' После 3-й попытки вам будет отказано в

доступе';

ShowMessage(Stroka);

inc(n); end

end end else

511

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

begin

ShowMessage('Вы успешно авторизовались!');

Close();

end;

end;

procedure TForm1.FormCreate(Sender: TObject); begin

passw:= '1234'; n:= 1;

end;

procedure TForm1.Button1Click(Sender: TObject); begin

avtorization;

end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char);

begin

if Key <> #13 then exit; avtorization;

end; initialization

{$I unit1.lrs}

end.

6.3.6.2. Компонент TLabeledEdit

В палитре компонентов на странице Additional имеется еще одна раз-

новидность однострочного редактора TLabeledEdit. Это фактически тот же

512

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

самый однострочный редактор, но с присоединенной к нему надписью. Во многих случаях для удобства пользователя над окнами редактирования необхо-

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

TLabeledEdit.

Довольно часто необходимо организовывать ввод числовой информации.

При этом всегда необходимо помнить, что данные вводятся в символьном виде,

то есть в свойстве Text компонентов TEdit и TLabeledEdit содержится строка символов. Если введено число, то для работы с ним как с числом, необ-

ходимо эту строку символов преобразовать во внутреннее представление числа.

Для этого используются функции StrToInt – для преобразования строки в целое число и StrToFloat – для преобразования в вещественное число. С

другой стороны, для того чтобы вывести числовые данные, например результа-

ты вычислений, необходимо выполнить обратное преобразование чисел в их строковое представление. Для этого применяются функции IntToStr – для преобразования целого числа в строку и FloatToStr – для преобразования вещественного числа в строку.

Рассмотрим пример.

Создайте новый проект. Поместите на форму три компонента

TLabeledEdit, четыре кнопки TSpeedButton, одну кнопку TBitBtn и

компонент TStatusBar, расположенную на странице Common Controls,

примерно так, как показано на рис. 6.30.

513

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

Рис. 6.30. Форма приложения

Для LabeledEdit1 раскройте свойство EditLabel и установите свойство Caption = "Первое число". Точно так же для LabeledEdit2 ус-

тановите свойство Caption = "Второе число" и для LabeledEdit3 Caption = "Результат".

Для SpeedButton1 установите свойство Caption = " + ". Для

SpeedButton2 свойство Caption = " - ", для SpeedButton3 Caption = " * " и SpeedButton2 свойство Caption = " / ".

Установите для всех кнопок SpeedButton свойства GroupIndex= 1,

свойства AllowAllUp= true.

В обработчик события OnShow для Form1 введите код:

procedure TForm1.FormShow(Sender: TObject);

begin

LabeledEdit1.SetFocus;

end;

В обработчик события OnKeyPress для LabeledEdit1 введите код:

procedure TForm1.LabeledEdit1KeyPress(Sender: TObject;

var Key: char);

514

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

begin

if Key = #13 then begin

LabeledEdit2.SetFocus; SpeedButton1.Down:= false; SpeedButton2.Down:= false; SpeedButton3.Down:= false; SpeedButton4.Down:= false; exit;

end;

end;

В обработчик события OnClick для SpeedButton1 введите код:

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

LabeledEdit3.Text:=IntToStr(StrToInt(LabeledEdit1.Text)

+ StrToInt(LabeledEdit2.Text));

StatusBar1.SimpleText:= 'Сложение';

LabeledEdit1.SetFocus;

LabeledEdit1.SelectAll;

end;

В обработчик события OnClick для SpeedButton2 введите код:

procedure TForm1.SpeedButton2Click(Sender: TObject);

begin

LabeledEdit3.Text:=IntToStr(StrToInt(LabeledEdit1.Text)

- StrToInt(LabeledEdit2.Text));

515

Смотрите также:

11 Горм +
113
14
1433
1511
1632
199
204
2N4264RE
3773