Содержание материала

 

Как сделать, чтобы TEdit воспринимал одни цифры и DecimalSeparator?

 

Автор: Full  ( https://full.hotmail.ru/ )

Code:

type

TNumEdit = class(TEdit)

procedure CreateParams(var Params: TCreateParams); override;

procedure KeyPress(var Key: Char); override;

end;

 

procedure Register;

 

implementation

 

procedure Register;

begin

RegisterComponents('Standard', [TNumEdit]);

end;

 

procedure TNumEdit.CreateParams(var Params: TCreateParams);

begin

inherited CreateParams(Params);

Params.Style := Params.Style or ES_MULTILINE or ES_RIGHT;

end;

 

procedure TNumEdit.KeyPress(var Key: Char);

begin

case key of

'0'..'9': ; // цифры

#8: ; // забой

'.', ',': if Pos(DecimalSeparator, Text)=0 then Key:=DecimalSeparator else Key:=#0; // десятичный разделитель

else key:=#0;

end; // case

end;

 

end.

 

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить