Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






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

 

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

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

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

 

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

 

property Text: TCaption;

type TCaption = string;

 

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

 

property CharCase: TEditCharCase;

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

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

 

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

 

property ReadOnly: Boolean;

 

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

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

 

property MaxLength: Integer;

 

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

property PasswordChar: Char;

 

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

 

property AutoSelect: Boolean;

 

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

property HideSelection: Boolean;

 

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

 

property SelText: string;

 

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

 

property SelStart: Integer;

property SelLength: Integer;

 

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

 

procedure SelectAll;

procedure ClearSelection;

 

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

 

function GetSelTextBuf(Buffer: PChar; BufSize: Integer): Integer; virtual;

procedure SetSelTextBuf(Buffer: PChar);

 

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

 

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

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

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

 

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

свойства:

 

property Modified: Boolean;

 

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

 

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

Begin






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.