Читать книгу Программирование для Android и работа с датчиками в среде Delphi 11 - Виталий Иванович Донцов - Страница 15

8. КОМПОНЕНТЫ для ВВОДА И ВЫВОДА ТЕКСТА
8.6. МНОГОСТРОЧНЫЙ ТЕКСТОВОЙ КОМПОНЕНТ Memo

Оглавление

За неимением компонента RichEdit его функции исполняет Memo, имеющая практически те же свойства и действия (кроме форматирования текста); по внешнему виду это простое белое поле.


Нужно установить свой стиль шрифта (в TextSettings, отменив все в StyledSettings); CheckSpelling определяет возможность проверки орфографии; обязательно укажите в настройках WordWrap = true, чтобы не вмещающийся в строчку текст автоматически переходил на строчку вниз. Прокрутка не вмещающегося на экране текста установлена в свойствах автоматически.

Для простого вывода информации нужно установить запрет редактирования: ReadOnly:= true.

Основное свойство компонента: Lines, в которое вводится текст при создании компонента или программно (что является основным):

– текст добавит команда Memo1.Lines.Add («Вводимый текст»);

– получить строчку текста по индексу: str:= memo1.Lines [n];

– скопировать весь текст:

Memo1.SelectAll; Memo1.CopyToClipboard;


Компонент Memo удобен также как база данных. Он может хранить большое количество информации, а заполнить его очень просто, скопировав в Lines в Object inspector при создании компонента строчки, созданные в обычном Word, при этом шрифт сам примет все значения, установленные для Memo.

Можно достаточно просто установить обмен информацией с компонентом Таблица, поставив его Cells [] в соответствие строкам Memo (счет начинается с 0 для обоих компонентов).

Для того, чтобы придать данным из Memо 2-мерный тип, характерный для Таблицы, можно отделить друг от друга части текста в строке, предназначенные для строк (или колонок) Таблицы, например (;), а при загрузки Таблицы использовать функции работы с текстом: копирования части текста до определенного элемента (;), позицию этого элемента, удаление предыдущей части текста для копирования следующей части текста.

Но если в Delphi 7 количество строк в Memo может составлять несколько тысяч, то в ситуации с Android число строк может быть ограничено; при этом можно сохранить и большее число строк, но при обращении Memo1.Lines [101] и более может происходить сбивка адресации и неуправляемые действия.

Для просмотра строчек вне видимости, автоматически предусмотрены установки по скроллингу.

Несомненным достоинством компонента является наличие собственого свойства сохранения и загрузки в файл (без проблем – во внутреннюю область):

Memo1.Lines.SaveToFile (GetHomePath + '/Имя файла. txt’);

Memo1.Lines. LoadFromFile (GetHomePath + '/Имя. txt’);


Другие функции работы с текстом в Memo:

Memo1.ClearSelection; // удалить выделенный текст

Memo1.CutToClipboard; // вырезать в буфер обмена

Memo1.CopyToClipboard; // скопировать в буфер обмена

Memo1.PasteFromClipboard; //вставить из буфера обмена

Memo1.SelText; //функция возвращает текстовую строку выделенного текста

Memo1.Undo; // отмена последнего изменения

Memo1.Lines.Delete (0); //удаление 0 строки

Memo1.SelStart:= 0; //начальное положение выделения

Memo1.SelLength:= 15; //Длина выделенного текста


Если необходимо всегда видеть выделенный текст, даже при переходе управления на другой элемент управления, то установите свойство HideSelection в false.

Программирование для Android и работа с датчиками в среде Delphi 11

Подняться наверх