Компонент Memo в Delphi

Компонент Memo находиться на странице "Standard" Палитры компонентов. Его основное предназначение - работа с большим количеством строк (ввод, отображение и редактирование текстового материала). Эти строки содержатся в свойстве Lines компoнента Memo.

Как и во многих других текстовых редакторах у компонента Memo есть возможность использовать общепринятые горячие клавиши, такие как: Ctrl-X — выделенный текст вырезается и помещается в буфер обмена, Ctrl-C — копируем выделенный текст в буфер обмена, Ctrl-V — вставляем текстовое содержимое  из буфера обмена  в место нахождения курсора, для отмены последней команды используем Ctrl-Z.

Заполняя поле Memo, как и любого другого текстового редактора, необходимо переходить на новую строчку. Для того чтобы мы могли использовать клавишу ENTER свойству WantReturns должно быть присвоено значение TRUE, иначе на новую строку можно переходить только сочетанием клавиш CTRL + ENTER.

Записывая длинную текст, чтобы он автоматически продолжался с новой строки указываем свойству WordWrap значение TRUE.  При включенной горизонтальной полосе прокрутке это свойство игнорируется.

Если у нас имеется большой текст и он не помещается в компоненте Memo, то для удобства просмотра устанавливаем полосу прокрутки свойством ScrollBar. Оно принимает следующие значения:

  • ssNone - Нет полосы прокрутки;
  • ssHorizontal - Установлена горизонтальная прокрутка;
  • ssVertical - Установлена вертикальная прокрутка;
  • ssBoth - Установленs две полосы прокрутки;

Свойство ReadOnly разрешает редактирование текста (програмно всеравно текст можно добавлять).

Свойство MaxLength задает количество символов, которое можно ввести. Значение равное нулю не ограничивает ввода.

Для работы с выделенным текстом используются функции: SelStat - позиция первого выделенного символа, SelLength - число сколько выделено символов, SelectAll - выделение всего текста, ClearSelection - очистить выделенный текст. Для работы выделенного текста с буфером обмена используются методы:

  • CutToClipboard - вырезать выделенный текст;
  • CopyToClipboard - скопировать выделенный текст;
  • PasteFromClipboard - вставить выделенный текст;

Для сохранения содержимого текстового поля Memo в файл используется функция SaveToFile('mytetxt.txt'), а для извлечения - LoadFromFile('mytetxt.txt'), где mytetxt.txt - текстовый файл расположенный в каталоге программы.

Для закрепления материала выполним небольшое практическое задание, создадим простой текстовый редактор. Пример с компонентам MemoРасположим на форме компонент Memo, установим у него вертикальную прокрутку. Справа будут кнопки компонент Button 8 штук, согласно рисунка сверху.

Теперь запишем обработчики событий для наших кнопок.

Кнопка "Открыть":
Memo1.Lines.LoadFromFile('mytetxt.txt');

Кнопка "Сохранить:
Memo1.Lines.SaveToFile('mytetxt.txt');

Кнопка "Копировать"
Memo1.CopyToClipboard;

Кнопка "Вырезать"
Memo1.CutToClipboard;

Кнопка "Очистить все"
Memo1.Clear;

Кнопка "Вставить"
Memo1.PasteFromClipboard;

Кнопка "Выделить все"
Memo1.SetFocus; // если компонент не в фокусе, то выделение  не увидим
Memo1.SelectAll;

Кнопка "Удалить выделенное"
Memo1.ClearSelection;

Итог: был разобран компонент Memo, на практическом примере мы получили не сложный текстовый редактор

Понравилась статья? Раскажите друзьям:
Общайтесь со мной

5 thoughts on “Компонент Memo в Delphi

    • Если Вам необходим редактор в которым Вы можете задавать различный шрифт (цвет, размер, гарнитура), то нужно использовать компонент RichEdit. В компоненте Memo свойством Font определяется формат всего текста, и везде он он одинаков (шрифт, его атрибуты и выравнивание).

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>