TEdit - ввод и отображение строки
Компонент класса TEdit представляет собой однострочный редактор текста. С его помощью можно вводить и/или отображать достаточно длинные текстовые строки.
Центральным свойством компонента является Text, которое представляет собой отображаемую компонентом строку. С помощью обработчика события OnChange программа может контролировать вводимый пользователем текст и при необходимости фильтровать его, игнорируя недопустимые символы. В следующем примере компонент фильтрует все символы, которые не соответствуют правильному представлению вещественного числа:
VAR
OldText:STRING;
PROCEDURE TForm1.EditlChange(Sender:TObject) ;
BEGIN
IF Edit1.Text<>' ' THEN
TRY
StrToFloat(Edit1.Text) ;
OldText := Edit1.Text
EXCEPT
// Ошибка преобразования: восстанавливаем прежний текст
Edit1.Text := OldText;
// и позиционируем текстовый указатель в конец текста:
Editl.SelStart := Length(Edit1.Text);
Editl.SelText := ' '
END
END;
При повторении примера подготовьте глобальную переменную OldText типа STRING, в которой запоминается последний правильно введенный текст. Лучше всего ее поместить в секцию PRIVATE класса формы - тогда ее можно не обнулять в момент начала работы.
Позиционировать текстовый указатель на любой символ строки можно с помощью свойств SelStart и SelText: в первое нужно поместить порядковый номер символа от начала текста, после которого должен стоять указатель ввода, во второе - пустую строку.
Свойства компонента:
PROPERTY AutoSelect: Boolean | Указывает, будет ли выделяться весь текст в момент получения компонентом фокуса ввода. |
PROPERTY AutoSize: Boolean; | Если содержит True и BorderStyle=bsSingle, высота компонента автоматически меняется при изменении свойства Font. Size. |
TBorderStyle = BsNone . . bs Single; PROPERTY BorderStyle: TBorderStyle; | Определяет стиль обрамления компонента: bsNone -нет обрамления; bsSingle - компонент обрамляется одной линией. |
PROPERTY CanUndo: Boolean; | Содержит True, если сделанные пользователем изменения в тексте Text можно убрать методом Undo. |
TEditCharCase = (ecNormal, EcUpperCase, ecLowerCase) ; PROPERTY CharCase: TEditCharCase | Определяет автоматическое преобразование высоты букв: ecNormal - нет преобразования; ее UpperCase -все буквы заглавные; ecZowerCase - все буквы строчные. Правильно работает с кириллицей |
PROPERTY HideSelection: Boolean; | Если содержит False, выделение текста сохраняется при потере компонентом фокуса ввода. |
PROPERTY MaxLength:Integer; | Определяет максимальную длину текстовой строки. Если имеет значение 0, длина строки не ограничена. |
PROPERTY Modified: Boolean; | Содержит True, если текст был изменен. |
PROPERTY OnChange:TNotifyEvent; | Определяет обработчик события OnChange, которое возникает после любого изменения текста. |
PROPERTY OEMConvert: Boolean; | Содержит True, если необходимо перекодировать текст из кодировки MS-DOS в кодировку Windows и обратно. |
PROPERTY PasswordChar: Char; | Если символ PasswordChar определен, он заменяет собой любой символ текста при отображении в окне. Используется для ввода паролей. |
PROPERTY Readonly: Boolean; | Если содержит True, текст не может изменяться |
PROPERTY SelLength: Integer; | Содержит длину выделенной части текста. |
PROPERTY SelStart:Integer; | Содержит номер первого символа выделенной части текста. |
PROPERTY SelText: String; | Содержит выделенную часть текста. |
PROPERTYText: String; | Содержит весь текст. |
Методы компонента:
PROCEDURE Clear; | Удаляет весь текст. |
PROCEDURE ClearSelection; | Удаляет выделенный текст. |
PROCEDURE ClearUndo; | Очищает буфер метода Undo. |
PROCEDURE CopyToClipboard; | Копирует выделенный текст в Clipboard. |
PROCEDURE CutToClipboard; | Копирует выделенный текст в Clipboard, после чего удаляет выделенный текст из компонента. |
FUNCTION GetSelTextBuf(Buffer: PChar; BufSize: Integer): Integer | Копирует не более BufSize символов выделенного текста в буфер Buffer. |
PROCEDURE PasteFromClipboard; | Заменяет выделенный текст содержимым Clipboard, а если нет выделенного текста, копирует содержимое Clipboard в позицию текстового курсора. |
PROCEDURE SelectAll; | Выделяет весь текст. |
PROCEDURE SetSelText-Buf(Buffer: PChar); | Заменяет выделенный текст содержимым Buffer, a если нет выделенного текста, копирует содержимое Buffer в позицию текстового курсора. |
PROCEDURE Undo; | Восстанавливает текст в том виде, в каком он был перед последним получением компонентом фокуса ввода. |
Дата добавления: 2016-06-15; просмотров: 2244;