Показать сообщение отдельно

  #10  
Старый 02.11.2008, 03:48
cremator (c)
Постоянный
Регистрация: 20.06.2008
Сообщений: 323
С нами: 9416345

Репутация: 165
По умолчанию

сделал так

Код:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var i: integer; str:string;
begin
  if (((Key = ord('V')) and (ssCtrl in Shift)) or ((Shift = []) and (Key = VK_INSERT))) then
  begin
   if Clipboard.HasFormat(CF_TEXT) then
   begin
    str:=clipboard.AsText;
    ClipBoard.Clear;
    for i:=1 to length(str) do
    begin
     case str[i] of #48..#57: clipboard.AsText:=clipboard.AsText+str[i];
    end;
    key := 0;
   end;
  end;
end;

end;


procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['0'..'9',#27,#8]) then key:=#0;
end;
плюс в начале ещё uses ClipBrd;

хотя если тебе не надо ловить числа из буфера то просто можно заменить этим
Код:
 procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);   begin          ClipBoard.Clear;       end;

Последний раз редактировалось cremator (c); 02.11.2008 в 04:11..
 
Ответить с цитированием