Компонент Memo
є вікном редагування багаторядкового тексту. Піктограма компоненту знаходиться на вкладці Standard.


Властивості компонента Memo
Назва | Призначення |
Text | Зберігає значення текстового рядка, що уведений у вікно. Дозволяє працювати з текстом у вікні як єдиним цілим |
Lines | Містить у вигляді масиву список наявних елементів, нумерація яких починається з 0 |
Lines.Count | Визначає кількість елементів у масиві Lines |
ScrollBars | Визначає наявність смуги прокручування |
Приклад:
Властивість Text дозволяє працювати з текстом у вікні Memo як єдиним цілим:
Memo1.Text := ‘Це текстовий рядок у вікні редагування’;
Memo1.Text := ‘Це текстовий рядок у вікні редагування’;
Створення масиву рядків
Текст у компоненті Memo розміщується по рядках. Рядки в редакторі Memo є об’єктами Lines[i] типу String, де i — номер рядка, відлік починається з нуля.
Для створення масиву рядків треба:
1) виділити на формі елемент керування Memo;
2) у вікні Інспектор об’єктів клацнути кнопку
праворуч від властивості Lines;
3) у вікні Редактор рядків ввести рядки;
1) виділити на формі елемент керування Memo;
2) у вікні Інспектор об’єктів клацнути кнопку
3) у вікні Редактор рядків ввести рядки;
4) натиснути кнопку ОК.
Редактор рядків надає можливість упорядкування рядків (елементів масиву Lines) за зростанням або спаданням. 

Таким чином, створюється масив рядків, що відобразиться в полі Memo. Звернутися до і—го рядка можна як до індексованої змінної Memo1.Lines[і].

Редагування масиву рядків у ході виконання програми
Додавати елементи до масиву Memo1.Lines можна в ході виконання програми. Значення кожного елемента масиву слід уводити в окремому рядку і після введення кожного рядка натискати клавішу Enter.
Приклад:
На етапі розробки інтерфейсу за допомогою Редактора рядків у поле Memo1 додано 5 рядків. У процедурі обробки події OnClick для кнопки у поле Еdit1 виводиться значення властивості Memo1.Lines.Count.
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=IntToStr(Memo1.Lines.Count);
end;
begin
Edit1.Text:=IntToStr(Memo1.Lines.Count);
end;
Якщо додати з клаватури в поле Memo1 новий рядок, значення властивості Memo1.Lines.Count збільшується на одиницю.
Текст у вікні Memo можна редагувати програмним способом.

Приклад:
Задати значення нульовому елементу масиву Memo1.Lines:
Memo1.Lines[0] := ‘Перший рядок’;
Memo1.Lines[0] := ‘Перший рядок’;
Методи компонента Memo
Для створення нових рядків слугують методи Add() і Insert():• Memo1.Lines.Add() — додавання нового рядка в кінець списку;
• Memo1.Lines.Insert(N, Text) — вставка рядка Text перед рядком з індексом N.
Приклад:
Додати елементи до масиву Memo1.Lines:
Memo1.Lines.Add(‘Це буде останній рядок’);
Memo1.Lines.Insert(2, ‘Цей рядок буде третій’); // Відлік від нуля!
Memo1.Lines.Add(‘Це буде останній рядок’);
Memo1.Lines.Insert(2, ‘Цей рядок буде третій’); // Відлік від нуля!
Для вилучення рядка призначений метод Delete() :
Memo1.Lines.Delete(i); // Вилучення рядка з індексом i
Для очищення всього вмісту поля Memo призначений метод Сlear:
Мemo1.Сlear;
Memo1.Lines.Delete(i); // Вилучення рядка з індексом i
Для очищення всього вмісту поля Memo призначений метод Сlear:
Мemo1.Сlear;