Uses ... ClipBrd; Type TLabeledEdit = Class(Vcl.ExtCtrls.TLabeledEdit) Public Procedure WMPaste(Var Msg:TMessage); Message WM_PASTE; End; ... Procedure TLabeledEdit.WMPaste(Var Msg: TMessage); Const MIN_VALUE = 2; MAX_VALUE = 10; Begin If Clipboard.HasFormat(CF_TEXT) Then // TryStrToInt(ClipBoard.AsText, TempVar) тоже подойдет Begin Try If (StrToInt(Clipboard.AsText) < MIN_VALUE) Or (StrToInt(Clipboard.AsText) > MAX_VALUE) Then Begin Application.MessageBox(Pchar('В буфере обмена содержится неподходящее значение!'), 'Ошибка', MB_ICONWARNING); Exit; //ReadOnly := True мб тоже подойдет, не тестил End; Except Application.MessageBox(Pchar('При чтении из буфера произошла ошибка!'), 'Ошибка', MB_ICONWARNING); Exit; End; End Else Begin Application.MessageBox(Pchar('В буфере обмена содержатся некорректные данные!'), 'Ошибка', MB_ICONWARNING); Exit; End; inherited; End;