Advertisement
anticlown

Отлов вставки в буфер(набросок)

Mar 15th, 2023 (edited)
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.23 KB | None | 0 0
  1. Uses
  2. ...
  3.   ClipBrd;
  4.  
  5. Type
  6.   TLabeledEdit = Class(Vcl.ExtCtrls.TLabeledEdit)
  7.   Public
  8.     Procedure WMPaste(Var Msg:TMessage); Message WM_PASTE;
  9.   End;
  10.  
  11. ...
  12.  
  13. Procedure TLabeledEdit.WMPaste(Var Msg: TMessage);
  14. Const
  15.     MIN_VALUE = 2;
  16.     MAX_VALUE = 10;
  17. Begin
  18.     If Clipboard.HasFormat(CF_TEXT) Then  // TryStrToInt(ClipBoard.AsText, TempVar)  тоже подойдет
  19.     Begin
  20.         Try
  21.             If (StrToInt(Clipboard.AsText) < MIN_VALUE) Or (StrToInt(Clipboard.AsText) > MAX_VALUE) Then
  22.             Begin
  23.                 Application.MessageBox(Pchar('В буфере обмена содержится неподходящее значение!'), 'Ошибка', MB_ICONWARNING);
  24.                 Exit; //ReadOnly := True мб тоже подойдет, не тестил
  25.             End;
  26.         Except
  27.             Application.MessageBox(Pchar('При чтении из буфера произошла ошибка!'), 'Ошибка', MB_ICONWARNING);
  28.             Exit;
  29.         End;
  30.     End
  31.     Else
  32.     Begin
  33.         Application.MessageBox(Pchar('В буфере обмена содержатся некорректные данные!'), 'Ошибка', MB_ICONWARNING);
  34.         Exit;
  35.     End;
  36.     inherited;
  37. End;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement