Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3OOP_Dia.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
182 Кб
Скачать
☆

3.6.2 Компонент Memo

Компонент Memo - это еще один тип окна редактирования текста, который, в отличие от компонента строки ввода Edit, допускает ввод текста из многих строк. Он находится на странице палитры компонентов Standard. Текст можно загрузить из файла, набрать на клавиатуре, вставить из буфера обмена (ClipBoard). В Memo можно переносить слова, сохранять в ClipBoard фрагменты текста и восстанавливать их, выполнять другие базовые функции текстового редактора с ограничением на объем текста 32Кб.

Компонент Memo поддерживает многие свойства окон редактирования (BorderStyle, ReadOnly, HideSelection, MaxLenght). Однако некоторые из них применимы только к многострочным окнам:

Lines – содержимое Memo как набор строк;

Align – заполнение пространства формы по краям;

AlingMent – выравнивание текста внутри формы;

ScrollBars – наличие полос прокрутки содержимого поля;

WordWrap – автоперенос текста от правого края.

В частности, нем предусматриваются линейки прокрутки для передвижения по тексту, который не умещается внутри границ управляющего элемента. Свойство ScrollBar задает видимость горизонтальных и вертикальных полос прокрутки. Строки в компоненте Memo могут простираться за правую границу управляющего элемента, так же как и в случае простых окон редактирования. Отличием является то, что они могут переноситься, образуя абзац, состоящий из нескольких видимых строк. Для управления переносом строк необходимо присвоить значение True свойству Wordwrap компонента Memo.

Данный компонент не имеет свойства Text, а текст в компоненте доступен через свойство Lines : TStrings. Оно содержит массив строк, находящихся в компоненте и позволяет управлять содержимым окна. Можно получить доступ, как к отдельной строке, так и ко всему тексту. Для манипуляции строками текста внутри компонента можно использовать методы и свойства TStrings. Количество строк в компоненте можно узнать через свойство Memo1.Lines.Count, а доступ к отдельной строчке через функцию Strings. Например, отображение в окне первой строки текста осуществляется следующим образом:

ShowMessage(Memo1.Lines.Strings[0]);

Следует учесть, что Strings – это массив строк, начинающихся с нулевого индекса, и, заканчивающиеся индексом Count-1. Об этом следует помнить при написании подобных процедур доступа, иначе произойдет выход за доступный предел массива, что вызовет ошибку в программе. Очистить Strings можно одной процедурой Memo1.Lines.Clear.

свойство Lines можно редактировать как во время работы приложения, так и во время разработки в инспекторе объектов. Двойной щелчок левой кнопкой мыши по кнопке с тремя точками слева от свойства Lines в окне (TStrings) инспектора объекта страницы Properties позволяет открыть специальный редактор текста.

Загрузка строк из файла осуществляется следующим образом:

Memo1.Lines.LoadFromFile('C:\AUTOEXEC.BAT');

Сохранение строк в файл осуществляется командой:

Memo1.Lines.SaveToFile('h:\MyFile.txt');

Добавление строк выполняется командой:

Memo1.Lines.Add('добавленная пользователем строка');

При вставке строки в i-ую строку свойства Lines следует учитывать указанную выше особенность в нумерации массива строк. Так, для вставки текстовую строку в первую строку необходимо указать индекс (первый параметр процедуры Insert) на единицу меньше (первая_строка -1 = 0):

Memo1.Lines.Insert(0,'вставленная мною строка');

Аналогично осуществляется и операция удаления:

Memo1.Lines.Delete(0); // удаляем первую строку

При применении процедуры удаления строк Delete следует вначале проверять компонент TMemo на наличие таковых вообще. Проверка осуществляется через функцию Count, которая возвращает их целочисленное значение:

if Memo1.Lines.Count<>0 then … // проверка ненулевого количества строк

Компонент Memo может быть использован для отображения многострочных текстов, для разработки простых текстовых редакторов и т. п.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]