Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод2курс_прогр_конт.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.38 Mб
Скачать

Лекция № 6. Визуальные компоненты для редактирования многострочных данных. Основные свойства компонентов.

1. Многострочный редактор

Д ля работы с многострочным текстом Delphi предоставляет компонент Memo (вкладка Standard). Многострочный редактор имеет практически те же возможности редакти­рования текста, что и однострочные элементы редактирования. Главное от­личие этих управляющих элементов заключается в том, что многострочный редактор содержит несколько строк.

Для доступа ко всему содержимому многострочного редактора используется свойство Text типа String. В этом случае все содержимое компонента Memo представляется одной строкой, причем символ конца строки, вводимый при нажатии клавиши <Enter>, представляется двумя кодами #13#10, и видимых пользователем символов будет меньше, чем их содержится в строке Text. Эту особенность нужно учитывать, например, при определении позиции заданного символа в какой-либо строке компонента Memo.

Для работы с отдельными строками используется свойство Lines типа Tstrings. Класс Tstring специально создан для выполнения операций со строками. Компонент Memo может использовать возможности этого класса через свойство Lines.

Пример. Операции с многострочным редактором.

Memol.Lines[3]:= 'asd’;

Memo2.Lines.Clear;

МетоЗ.Lines.Add('Новая строка’);

Memo1.Lines.Count; //Количество строк в компоненте.

Здесь четвертой строке редактора Memol присваивается новое значение asd. Отметим, что в классе Tstring нумерация строк начинается с нуля. Содер­жимое редактора Memo2 полностью очищается. В конец текста редактора Меmо3 добавляется новая строка.

Содержимое компонента Memo можно загружать из текстового файла и со­хранять в текстовом файле. Для этого удобно использовать методы:

LoadFromFile (const FileName: String) и SaveToFile (const FileName: String) класса TStrings. Параметр FileName методов определяет текстовый файл для операций чтения и записи.

Пример. Чтение информации из текстового файла в компонент Memol.

Memol.Lines.LoadFromFile ( 'С: \TEXT\examplel.txt' );

Пример. Запись информации из компонента Мето2 в текстовый файл.

Memo2.Lines.SaveToFile('C:\TEXT\example2.txt');

Для того чтобы информацию было просматривать удобно, можно задать в поле редактирования полосы прокрутки с помощью свойства ScrollBars, принимающего следующие значения:

- ssNone - полосы прокрутки отсутствуют (по умолчанию)

  • ssHorizontai - снизу имеется горизонтальная полоса прокрутки

  • ssvertical — справа имеется вертикальная полоса прокрутки

  • ssBoth - есть обе полосы прокрутки

Текст в поле компонента Memo может быть выровнен различными способа­ми. Способ выравнивания определяет свойство Alignment.

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

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

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

  • CutToClipboard - вырезать выделенный текст;

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

  • PasteFromClipboard - вставить выделенный текст;

В отличие от однострочного редактора, компонент Memo обладает возможно­стью реакции на нажатие клавиши <Enter>. Чтобы при этом происходил ввод новой строки, свойству WantReturns типа Boolean должно быть установлено значение True (по умолч.). В противном случае редактор не реагирует на нажатие клавиши <Enter>.

Аналогичное назначение имеет свойство WantTabs типа Boolean, опреде­ляющее реакцию компонента на нажатие клавиши <ТаЬ>. Если свойству установлено значение True, то при нажатии клавиши <ТаЬ> в текст встав­ляются символы табуляции. По умолчанию свойство WantTabs имеет значе­ние False, и при нажатии клавиши <ТаЬ> редактор передает фокус ввода следующему элементу управления.

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

Компонент RichEdit представляет собой элемент управления редактирова­нием текста и в дополнение к Memo поддерживает такие операции формати­рования текста, как выравнивание текста и табуляция, применение отсту­пов, изменение гарнитуры и др. Текст, содержащийся в этом элементе редактирования, совместим с форматом RTF (Rich Text Format), поддержи­ваемым всеми текстовыми процессорами в среде Windows.