Основа текстовых редакторов – класс TCustomEdit

Как уже отмечалось, класс TCustomEdit является абстрактным классом, не способным самостоятельно стать элементом управления. Вместе с тем в TCustomEdit инкапсулированы свойства и методы, незаменимые для формирования полноценных компонентов, работающих с текстом. Класс TCustomEdit позволяет:

 

хранить и редактировать текст;

выделять часть текста с возможностью редактирования только этой части;

описывать реакцию на изменения текста.

 

С основным свойством всех текстовых компонентов мы уже знакомы. Еще при изучении класса TControl мы узнали о поле, специализирующемся на хранении текстовой информации:

 

propertyText: TCaption;

typeTCaption = string;

 

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

 

propertyCharCase: TEditCharCase;

typeTEditCharCase = (ecNormal {нормальный}, ecUpperCase {ПРОПИСНОЙ},

ecLowerCase {строчный});

 

Запрет на редактирование текста накладывает свойство ReadOnly при установке его в true:

 

propertyReadOnly: Boolean;

 

Установить предел на максимальное количество символов, хранящихся

в свойстве Text, поможет свойство MaxLength. По умолчанию установлено значение 0, т. е. длина строки не ограничена.

 

propertyMaxLength: Integer;

 

Если планируется применение потомка класса TCustomEdit для ввода конфиденциальной информации, такой как пароли и шифры, то для скрытия вводимого текста рекомендуется воспользоваться свойством:

propertyPasswordChar: Char;

 

Если значение свойства отличается от символа с кодом ноль (#0), то при отображении содержимого строки реальные символы будут подменяться символом из PasswordChar. Так же поступает Windows NT при вводе пользователем своего пароля. У строк редактирования, построенных на основе классов TEdit и TMaskEdit, объявлено свойство AutoSelect, при установке которого в true элемент управления автоматически выделит весь текст при получении им фокуса ввода.

 

propertyAutoSelect: Boolean;

 

А следующее свойство решает, оставлять или нет подсветку выделенного в элементе управления текста при потере им фокуса ввода:

propertyHideSelection: Boolean;

 

Значение true голосует за то, чтобы скрывать выделение, а false как всегда против. Выделенный в элементе управления текст вы обнаружите в свойстве SelText. Свойство доступно не только для чтения, но и для записи.

 

propertySelText: string;

 

При желании выделение текста производится не только мышью или клавишами клавиатуры, но и программным способом. Для этого объявлены два свойства, которые определяют порядковый номер первого выделяемого символа и всю длину выделяемого текста соответственно:

 

propertySelStart: Integer;

propertySelLength: Integer;

 

Для выделения всего текста воспользуйтесь методом SelectAll, а для удаления выделенного текста пригодится процедура ClearSelection:

 

procedureSelectAll;

procedureClearSelection;

 

Для работы с выделенным текстом предусмотрены методы редактирования, совместимые с форматом функций Windows API. В качестве аргументов этих методов выступают указатели на строки PChar:

 

functionGetSelTextBuf(Buffer: PChar; BufSize: Integer): Integer; virtual;

procedureSetSelTextBuf(Buffer: PChar);

 

Взаимодействие с буфером обмена Windows производится с помощью процедур:

 

procedureCopyToClipboard; //копировать в буфер

procedureCutToClipboard; //вырезать в буфер

procedurePasteFromClipboard; //вставить из буфера

 

Проверить, модифицировался ли текст компонента, можно при помощи

свойства:

 

propertyModified : Boolean;

 

Если содержимое свойства Text изменялось, свойство Modified автоматически переводится в состояние true. Контролируя Modified, мы можем предотвратить несанкционированную потерю данных. Изучите следующие строки кода:

 

procedureTForm1.FormClose(Sender: TObject; varAction: TCloseAction);

Begin








Дата добавления: 2016-03-15; просмотров: 917;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.