На этом шаге мы рассмотрим компонент TEdit 
В компоненте TEdit (Поле ввода) хранится текст, который можно помещать в данный компонент, как во время проектирования, так и во время выполнения программы.
Компонент класса TEdit представляет собой однострочное редактируемое текстовое поле. С его помощью можно вводить и/или отображать достаточно длинные текстовые строки.
Свойства компонента 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;  | 
   Определяет способ автоматического преобразования регистра букв: 
 Правильно работает с кириллицей  | 
 
| 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 перечислены в таблице.
| Метод | Описание | 
|---|---|
| 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