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;
TMemo и буфер обмена
Здравствуйте, пишу программу, содержащую много текста в компоненте TMemo, проблема в том, что текст из компонента можно скопировать, чего допускать нельзя. Пытался делать обработчик события 'Копирование', но он особо не помог. Подскажите пожалуйста, как подменить текст копируемый в буфер на пустое поле?
Код:
c KeyDown ничего не выйдет. + тебе еще надо сделать чтобы при нажатии на правую кнопку мыши в области Memo не вылазило PopupMenu для этого просто брось на форму компонент PopupMenu и назначь его своему Memo.
Цитата: kosfiz
брось на форму компонент PopupMenu и назначь его своему Memo.
Спасибо за совет о PopupMenu(как я сам не додумался!?. :-) ).
Цитата: 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;
.......
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?
принтскринят значит жмут на клавиши клавиатуры - этим и надо воспользоваться(смотреть надо в сторону SetWindowsHookEx). в архиве примерчик(вроде работает - ну по крайней мере у меня ничего не принтскринится). в нем показано как отловить нажатие клавиши Prt Sc(VK_SNAPSHOT), а потом просто чистим буфер как в прошлый раз.
Хотя это на, мой вгляд, будет бесполезно - действия грабберов экрана просто так не предотвратить, а защита от PrnScr будет только для ламеров, спасибо за советы, буду думать...
Цитата: Toxin_F
Хотя это на, мой вгляд, будет бесполезно - действия грабберов экрана просто так не предотвратить, а защита от PrnScr будет только для ламеров, спасибо за советы, буду думать...
хороших грабберов экрана не так уж и много, поэтому и с ними можно бороться: 1). искать в процессах, если находим что-то угрожающее, то выходим; 2). ищем окошки, если опять находим что-то угрожающее, то выходим.
к тому же мне не совсем понятно, что ты хочешь реализовать, если пояснишь немного, то и предложения будут более конструктивными и может быть выход все же найдется.