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; просмотров: 2712;











