Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

TMemo и буфер обмена

9.0K
04 января 2007 года
Toxin_F
93 / / 03.01.2007
Здравствуйте, пишу программу, содержащую много текста в компоненте TMemo, проблема в том, что текст из компонента можно скопировать, чего допускать нельзя. Пытался делать обработчик события 'Копирование', но он особо не помог. Подскажите пожалуйста, как подменить текст копируемый в буфер на пустое поле?
257
04 января 2007 года
kosfiz
1.6K / / 18.09.2005
ну так можно попробовать
Код:
uses clipbrd;
.......
procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if ((key = ord('C')) and (ssCtrl in Shift)) then
  begin
    if clipboard.HasFormat(CF_TEXT) then
      clipBoard.Clear;
    key := 0;
  end;
end;

c KeyDown ничего не выйдет. + тебе еще надо сделать чтобы при нажатии на правую кнопку мыши в области Memo не вылазило PopupMenu для этого просто брось на форму компонент PopupMenu и назначь его своему Memo.
9.0K
04 января 2007 года
Toxin_F
93 / / 03.01.2007
Цитата: kosfiz
брось на форму компонент PopupMenu и назначь его своему Memo.


Спасибо за совет о PopupMenu(как я сам не додумался!?. :-) ).

9.0K
04 января 2007 года
Toxin_F
93 / / 03.01.2007
Цитата: kosfiz
ну так можно попробовать
Код:
uses clipbrd;
.......
procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if ((key = ord('C')) and (ssCtrl in Shift)) then
  begin
    if clipboard.HasFormat(CF_TEXT) then
      clipBoard.Clear;
    key := 0;
  end;
end;


А если PrintSreen'ят? Нельзя ли перехватить буфер обмена полностью в runtime?

257
04 января 2007 года
kosfiz
1.6K / / 18.09.2005
принтскринят значит жмут на клавиши клавиатуры - этим и надо воспользоваться(смотреть надо в сторону SetWindowsHookEx). в архиве примерчик(вроде работает - ну по крайней мере у меня ничего не принтскринится). в нем показано как отловить нажатие клавиши Prt Sc(VK_SNAPSHOT), а потом просто чистим буфер как в прошлый раз.
9.0K
04 января 2007 года
Toxin_F
93 / / 03.01.2007
Хотя это на, мой вгляд, будет бесполезно - действия грабберов экрана просто так не предотвратить, а защита от PrnScr будет только для ламеров, спасибо за советы, буду думать...
257
05 января 2007 года
kosfiz
1.6K / / 18.09.2005
Цитата: Toxin_F
Хотя это на, мой вгляд, будет бесполезно - действия грабберов экрана просто так не предотвратить, а защита от PrnScr будет только для ламеров, спасибо за советы, буду думать...


хороших грабберов экрана не так уж и много, поэтому и с ними можно бороться: 1). искать в процессах, если находим что-то угрожающее, то выходим; 2). ищем окошки, если опять находим что-то угрожающее, то выходим.
к тому же мне не совсем понятно, что ты хочешь реализовать, если пояснишь немного, то и предложения будут более конструктивными и может быть выход все же найдется.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог