Шаг 6.
Вкладка Standard. Компонент TEdit

    На этом шаге мы рассмотрим компонент TEdit

    В компоненте TEdit (Поле ввода) хранится текст, который можно помещать в данный компонент, как во время проектирования, так и во время выполнения программы.

    Компонент класса TEdit представляет собой однострочное редактируемое текстовое поле. С его помощью можно вводить и/или отображать достаточно длинные текстовые строки.

    Свойства компонента TEdit представлены в таблице.

   
Таблица 1. Свойства компонента TEdit
Свойство Описание
property Text: String; Содержит отображаемую компонентом строку
property MaxLength: Integer; Определяет максимальное количество символов в поле ввода. Если имеет значение 0, то количество символов ничем не ограничено
property Font: TFont; С его помощью можно устанавливать шрифт текста, его размер и цвет
property ReadOnly: Boolean; (Только чтение) Если это свойство установить в True, то во время выполнения программы пользователь не сможет изменять текст в поле ввода
property AutoSize: Boolean; Как и для надписи, может принимать значения True и False, но эффект автоматической подгонки размера выражается несколько по-другому, чем для надписи. Здесь изменяется только высота поля ввода в зависимости от размера шрифта
property BevelEdges: TBevelEdges;

property BevelInner: TBevelCut;

property BevelKind: TBevelKind;

property BevelOuter: TBevelCut;

Эти свойства определяют эффект объемности поля ввода
property BorderStyle: TBorderStyle; Определяет вид рамки для поля ввода
property PasswordChar: Char; Позволяет скрыть вводимый текст, отображая вместо реально вводимых символов единственный символ, установленный как значение свойства PasswordChar. Символ #0 отключает этот режим
property AutoSelect: Boolean; Определяет, будет ли выделяться весь текст в момент получения компонентом фокуса ввода
property CanUndo: Boolean; Содержит значение True, если сделанные пользователем изменения в тексте Text можно убрать методом Undo
type TEditCharCase = (ecNormal, ecUpperCase, ecLowerCase);

propertyCharCase: TEditCharCase;

Определяет способ автоматического преобразования регистра букв:
  • ecUpperCase - все буквы прописные;
  • ecLowerCase - все буквы строчные.

Правильно работает с кириллицей

property HideSelection: Boolean; Если содержит значение False, выделение текста сохраняется при потере компонентов фокуса ввода
property Modified: Boolean; Содержит значение True, если текст был изменен
property OnChange: TNotifyEvent; Определяет обработчик события OnChange, которое возникает после любого изменения текста
property OEMConvert: Boolean; Содержит значениеTrue, если необходимо перекодировать текст из кодировки MS-DOS в кодировку Windows и обратно
property SelLenght: Integer; Содержит длину выделенной части текста
property SelStart: Integer; Содержит номер первого символа выделенной части текста
property SelText: String; Содержит выделенную часть текста

   

    Методы компонента TEdit перечислены в таблице.

   
Таблица 2. Методы компонента TEdit
Метод Описание
procedure Clear; Удаляет весь текст
procedure ClearSelection; Удаляет выделенный текст
procedure ClearUndo; Очищает буфер метода Undo
procedure CopyToClipboard; Копирует выделенный текст в буфер обмена
procedure CutToClipboard; Копирует выделенный текст в буфер обмена, после чего удаляет выделенный текст из компонента
procedure PasteFromClipboard; Заменяет выделенный текст содержимым буфера обмена, а если нет выделенного текста, копирует содержимое буфера обмена в позицию текстового курсора
procedure SelectAll; Выделяет весь текст
procedure SetSelTextBuf (Buffer: PChar); Заменяет выделенный текст содержимым буфера Buffer, а если нет выделенного текста, копирует содержимое буфера Buffer в позицию текстового курсора
procedure Undo; Восстанавливает текст в том виде, в котором он был перед последним получением компонентов фокуса ввода
function GetSelTextBuf (Buffer: PChar; BufSize: Integer): Integer; Копирует не более BufSize символов выделенного текста в буфер Buffer


Рис.1.Однострочное редактируемое текстовое поле компонента TEdit

   

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

unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    procedure Edit1Change(Sender: TObject);
    private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
   OldText:String;
implementation
{$R *.dfm}
procedure TForm1.Edit1Change(Sender: TObject);
begin
 if Edit1.Text<>'' then
 try
   StrToFloat(Edit1.Text);
   OldText :=Edit1.Text
 except
   // Ошибка преобразования: восстанавливаем прежний текст
   Edit1.Text:=OldText;
   //и позицируем текстовый курсор в конец текста:
   Edit1.SelStart:=Length(Edit1.Text);
   Edit1.SelText:=''
 end;
end;

end.
Текст этого примера можно взять здесь.

    На следующем шаге мы рассмотрим компонент TMemo




Предыдущий шаг Содержание Следующий шаг