Здавалка
Главная | Обратная связь

Многострочное поле ввода (TMemo).



Создай новый проект. Установи на форму компонент TMemo. За содержимое текста отвечает свойство Lines. Дважды щёлкни по свойству Lines. Введи текст.

1. Добавь на форму пока только одну кнопку. Измени её свойство Caption на «Очистить» и имя на ClearButton. Создай для кнопки обработчик события OnClick. В нём напиши следующее:

procedure TForm1.ClearButtonClick(Sender: TObject);

Begin

MainMemo.Lines.Clear;

end;

Попробуй запустить программу и написать внутри компонента Memo какой-нибудь текст. Потом нажми кнопку очистить, чтобы уничтожить всё, что ты вводил.

2. Давай теперь усложним наш пример, добавив возможность сохранения введённого текста и загрузки его обратно.

Создай обработчик события OnShow для формы и напиши там следующее:

procedure TForm1.FormShow(Sender: TObject);

Begin

MainMemo.Lines.LoadFromFile('memo.txt');

end;

Здесь я вызываю метод LoadFromFile объекта Lines. Ему нужно передать только один параметр – имя файла, откуда будет происходить загрузка данных. Есть только один недостаток – если ты сейчас попытаешься запустить программу, то во время загрузки произойдёт ошибка, потому что файла memo.txt нет. Тут есть два выхода: - Заранее создать этот файл. - При старте проверять, есть ли файл, и только если он существует производить загрузку текста. С первым способом всё понятно. А вот для реализации второго способа нужно воспользоваться функцией FileExists, Ей нужно передать имя файла, которое надо проверить, и если такой файл существует, то она вернёт true. Изменим обработчик события OnShow следующим образом:

procedure TForm1.FormShow(Sender: TObject);

Begin

If FileExists('memo.txt') then

MainMemo.Lines.LoadFromFile('memo.txt');

end;

Теперь создадим обработчик события OnClose.В нём напишем процедуру сохранения содержимого MemoMemo.

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

Begin

MainMemo.Lines.SaveToFile('memo.txt');

end;

Здесь используется метод SaveToFile, который работает так же, как и LoadFromFile, только этот сохраняет данные. Теперь нам осталось только научится программно добавлять, удалять и изменять строки в компоненте TMemo и можно считать, что мы досконально изучили этот компонент. Добавь к предыдущему примеру три кнопки: Добавить. Удалить. Изменить.

Теперь создадим обработчик события OnClick для кнопки «Добавить». Здесь мы будем программно добавлять новую строку в MainMemo. Для этого у объекта Lines есть метод Add, у которого есть только один параметр – текст новой строки:

procedure TForm1.Button1Click(Sender: TObject);

Begin

MainMemo.Lines.Add(' Новая строка');

end;

Теперь создадим обработчик события OnClick для кнопки удалить. По этому событию мы должны удалить строку, в которой находится сейчас курсор:

procedure TForm1.DelButtonClick(Sender: TObject);

Begin

if MainMemo.Lines.Count<>0 then

MainMemo.Lines.Delete(MainMemo.CaretPos.Y);

end;

Если не равно нулю (MainMemo.Lines.Count<>0), значит, строки есть, и мы можем удалить текущую строку. В MainMemo есть свойство CaretPos, которое указывает на текущую позицию курсора. Х – указывает на текущую колонку, а Y указывает на текущую строку.

Осталось только написать обработчик события OnClick для кнопки «Изменить».

procedure TForm1.ChangeButtonClick(Sender: TObject);

Begin

MainMemo.Lines.Strings[MainMemo.CaretPos.Y]:='Horrific';

MainMemo.Lines.Strings[0]:='Текст изменён';

end;

В первой строке изменется текущая строка на 'Horrific'. Второй строкой ManMemo на 'Текст изменён'.

CheckBox.

Создай новое приложение, брось на него одну кнопку и два компонента TCheckBox . Первому компоненту дай заголовок (Caption) равным «Разрешить закрытие программы» и имя (Name) равным «CheckBox1». Второму компоненту дай заголовок (Caption) равным «Отключить кнопку» и имя (Name) равным «CheckBox2». Создай обработчик события OnClick для компонента CheckBox2. В нём напиши следующее:

procedure TForm1.CheckBox2Click(Sender: TObject);

begin MyFirstButton.Enabled:=not CheckBox2.Checked; end;

Свойство Checked показывает: стоит ли галочка на это CheckBox-е. Если да, то свойство Checked равно True, иначе False. Оператор not меняет это состояние на противоположное.

Панели (TPanel).

TPanel это компонент в виде панели . Он ведёт себя, так же как и форма. Ты можешь на нём располагать компоненты, и если ты передвинешь панель, то все компоненты установленные на ней тоже передвинутся. За внешний вид отвечают два свойства: BevelInner и BevelOuter. Установи на форму два компонента TPanel. Теперь создадим обработчик события OnMouseDown для первой панели. procedure TForm1.Panel1MouseDown(Sender: TObject;

Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

Begin Panel1.BevelOuter:=bvLowered; end;

Одна строчка кода меняет вид панели. Создадим ещё обработчик события OnMouseUp для первой панели. По этому событию мы меняем вид панели на исходный:

procedure TForm1.Panel1MouseUp(Sender: TObject;

Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

Begin Panel1.BevelOuter:=bvRaised; end;Попробуй запустить программу и нажать на первую панель. Когда ты нажмёшь мышь, панель изменит вид на вогнутый. При отпускании мыши панель возвращает вид на исходный.


Кнопки выбора TRadioButton.

Эти кнопки очень похожи на TCheckBox даже по методу работы. У них так же есть свойство Checked, которое отображает её состояние. Если RadioButton выделен, то это свойство равно True, иначе равно False. Брось на форму несколько компонентов RadioButton . Теперь запусти программу и попробуй пощёлкать.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.