Delphi - база знаний

       

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


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



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

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.


Взято с Исходников.ru




Содержание раздела