Компонент Delphi Edit предназначен для ввода пользовательских данных и представляет собой однострочное поле(рис 1).
рис 1
Основным свойством edit’a является text типа данных string т.е. для ввода чисел нужно использовать функции FloatToStr(дробные числа) и IntToStr(целые числа). Перенос строк в этом компоненте по сравнению с label невозможен. Текст, не поместившийся по длине в компонент, просто сдвигается влево и пользователь может курсором перемещаться по этому тексту.
Свойства Edit
Text | Содержит отображаемую компонентом строку |
MaxLegth | максимальная длина текста, если значение равно 0, то можно вводить неограниченное количество символов |
Font | Свойство позволяющее устанавливать шрифт текста, размер и его цвет |
ReadOnly | Если значение этого свойство равно True, то текст в поле ввода пользователь изменить не сможет |
AutoSize | автоматически подстраивает под размер текста высоту поля, а ширина окна не меняется ни при каких условиях |
BevelEdges BevelInner BevelKind BevelOuter |
Эти свойства определяют эффекты объемности поля ввода |
BorderStyle | вид рамки, поля ввода |
PasswordChar | свойство позволяющее сделать поле для ввода пароля, по умолчанию стоит значение равное #0(нулевой символ), для отображения звездочек необходимо в это поле поставить соответствующий символ |
AutoSelect | Если значение равно True то при получении фокуса компонентом весь текст будет выделен |
CharCase | позволяет вводить текст определенного регистра. это свойство может принимать следуюие значения: ecUpperCase — текст преобразуется в верхний регистр; ecLowerCase — текст пишется в нижнем регистре; ecNormal(по умолчанию)- размер символом не меняется. |
HideSelection | Если False, то выделенный текст сохраняется выделенным при потере компонента фокуса ввода |
Рассмотрим основные события(Events) для Edit’а:
OnChange – наступает при изменении текста, OnKeyDown – наступает при нажатии любой клавиши пользователем. OnKeyPress – наступает при нажатии клавиши символа. OnKeyUp – наступает при отпускании какой-либо клавиши пользователем.
Методы TEdit перечислены ниже в таблице
Clear | Очищает поле ввода |
ClearSelection | Удаляет выделенный текст |
ClearUndo | Очищает буфер метода Undo |
CopyToClipboard | Копирует выделенный текст в буфер обмена |
CutToClipboard | Вырезает выделенный текст в буфер обмена, после |
PasteFromClipboard | Вставляет текст содержащийся в буфера обмена в позицию курсора |
SelectAll | Выделяет весь текст |
Undo | Восстанавливает текст в той форме, в которой он был перед последним получением компонента фокуса |
В следующем примере рассмотрим программу демонстрирующая обработчик событий OnChange, программа контролирует вводимый пользователем текст в нашем случае можно вводить только цифры, также при фокусировании поле ввода очищается
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | procedure TForm10.Edit1Click(Sender: TObject); begin edit1.Clear; //очищаем поле ввода при фокусировке end; procedure TForm10.Edit1KeyPress(Sender: TObject; var Key: Char); begin case Key of '0'..'9', #8: ; #13: ; ',': //ловим десятичный разделитель begin Key := DecimalSeparator; if pos(DecimalSeparator, Edit1.Text) <> 0 then //проверяем есть ли он уже в поле Key := Chr(0); //запрещаем ввод символа end; else Key := Chr(0); end; end; end. end. |