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

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

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

____________________________________________________________________

таточно записать оператор:

Memo1.Lines[k]:='Содержимое заменяемой строки';

Добавлять строки оператором присваивания тоже можно, но при одном ус-

ловии, нельзя применять этот способ во время создания формы, т.е. в обработ-

чике OnCreate формы.

И, наконец, чтобы удалить строку применяется метод

Delete(Index: integer);

Давайте применим полученные знания на простом примере. Создайте но-

вый проект. Положите на форму два компонента TMemo, две надписи и кнопку примерно так, как показано на рисунке 6.38.

Рис. 6.38. Форма с компонентами TMemo

В обработчик OnCreate формы введите код:

procedure TForm1.FormCreate(Sender: TObject);

begin

Memo1.Lines.Append('Это длинная строка, '+ // метод Append

'не умещающаяся в окне Memo1');

Memo1.Lines.Add('А это короткая строка'); // метод Add

end;

556

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

____________________________________________________________________

В обработчик OnClick кнопки введите код:

procedure TForm1.Button1Click(Sender: TObject);

var

 

i: integer;

 

begin

 

Memo1.Lines[2]:= 'Акинфеев';

// добавление строк

Memo1.Lines[3]:= 'Аршавин';

// оператором присваивания

Memo1.Lines.Delete(2);

// удаление строки

Memo1.Lines.Insert(2, 'Гус Иванович');// вставка строки

Memo2.Clear; // очистка набора строк Memo2

for i:= 0 to Memo1.Lines.Count - 1 do// добавление строк

Memo2.Lines.Append(Memo1.Lines[i]);// в цикле

//Memo2.Lines.Add(Memo1.Lines[i]);// можно применить Add

{добавление всего содержимого Memo1}

Memo2.Lines.AddStrings(Memo1.Lines);// 1-й способ

Memo2.Lines.Assign(Memo1.Lines);// 2-й, с очисткой

end;

Поэкспериментируйте с вводом текста при разных значениях свойств

WordWrap, WantReturns, ReadOnly и ScrollBars.

Для установки параметров шрифта имеется свойство Font. В нем имеются такие подсвойства, как Name – название шрифта, Size – размер, Color

цвет, Style – стиль начертания шрифта и другие.

Свойство Aligment – служит для выравнивания текста в окне TMemo.

Оно имеет значения:

taLeftJustify – выравнивание по левому краю. taCenter – выравнивание по центру. taRightJustify – выравнивание по правому краю.

557

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

____________________________________________________________________

Свойство Font также доступно в программе. Для предыдущего примера добавьте на форму еще одну кнопку, как показано на рис. 6.39.

Напишите для этой кнопки следующий обработчик:

procedure TForm1.Button2Click(Sender: TObject);

begin

Memo2.Font.Size:= 12;

Memo2.Font.Color:= clBlue;

end;

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

После запуска приложения и нажатия на кнопку "Изменить шрифт" текст в

Memo2 изменит свой размер и цвет.

Возникает вопрос, а нельзя ли предоставить самому пользователю право изменять атрибуты шрифта? Для этого существует специальный компонент вы-

бора свойств шрифта TFontDialog. Он расположен на странице Dialogs

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

558

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

____________________________________________________________________

зываемый при обращении к этому компоненту. Поэтому его можно располо-

жить в любом месте формы. Показ диалога инициируется специальным мето-

дом компонента Execute. Это функция, которая возвращает true, если в ре-

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

или клавишу Esc, то функция возвращает false.

Таким образом, для вызова диалога необходимо записать:

if FontDialog1.Execute then

Memo1.Font.Assign(FontDialog1.Font);

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

TFontDialog, две кнопки и две надписи, как показано на рис. 6.40.

Рис. 6.40. Форма приложения с дополнительным компонентом TFontDialog

В обработчик кнопки "Изменить шрифт" введите код:

procedure TForm1.Button1Click(Sender: TObject);

begin

if FontDialog1.Execute then

Memo1.Font.Assign(FontDialog1.Font);

559

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

____________________________________________________________________

Label2.Caption:= Memo1.Font.Name + ', '

+ IntToStr(Memo1.Font.Size);

Memo1.SetFocus;

end;

В обработчик кнопки "Установить шрифт по умолчанию" введите код:

procedure TForm1.Button2Click(Sender: TObject);

begin

Memo1.Font.SetDefault;

Label2.Caption:= Memo1.Font.Name + ', '

+ IntToStr(Memo1.Font.Size);

end;

И, наконец, в обработчик OnCreate формы введите код:

procedure TForm1.FormCreate(Sender: TObject);

begin

Label2.Caption:= Memo1.Font.Name + ', '

+ IntToStr(Memo1.Font.Size);

end;

Теперь пользователь может сам по своему усмотрению устанавливать па-

раметры шрифта, рис. 6.41, 6.42.

560

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

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