Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.02;
Скачать: CL | DM;

Вниз

Как убрать возможность вызова контекстного меню TMemo?   Найти похожие ветки 

 
jeka_t   (2006-05-24 13:46) [0]

Добрый день!
Подскажите пожалуйста:
Как убрать возможность вызова контекстного меню TMemo?
Или
Мне необходимо иметь не более 3 строки и длина не должна превышать каждой строки 31 символ (без Char(13) + Char(10)) у компонента TMemo
Пробую через OnKeyPress...
работает, но через контекстное меню можно добавлять шо угодно...
Помогите пожалуйста


 
Desdechado ©   (2006-05-24 13:54) [1]

как вариант:
перекрой popup-меню своим Tmemo.PopupMenu
в котором не будет возможности вставки


 
jeka_t   (2006-05-24 15:24) [2]

Спасибо


 
begin...end ©   (2006-05-24 15:29) [3]

> jeka_t   (24.05.06 13:46)

> Как убрать возможность вызова контекстного меню TMemo?

В обработчике OnContextPopup установить Handled в True.


 
jeka_t   (2006-05-24 15:54) [4]

Спасибо, это ещё лучше, но как быть с комбинацией клавиш Ctrl+V?


 
begin...end ©   (2006-05-24 15:56) [5]

> jeka_t   (24.05.06 15:54) [4]

Какое отношение комбинация клавиш Ctrl+V имеет к запрету контекстного меню? Что вообще нужно?


 
jeka_t   (2006-05-24 15:59) [6]

Мне необходимо иметь не более 3 строки и длина каждой строки не должна превышать 31 символ (без Char(13) + Char(10)) у компонента TMemo...
Если в буфере есть что-нибудь, то при комбинации клавиши Ctrl+V в строку вставляется текст из буфера... А это не допустимо для меня...


 
begin...end ©   (2006-05-24 16:05) [7]

> jeka_t   (24.05.06 15:59) [6]

То есть нужно запретить вставку из буфера? Я бы сделал так:

type
 TForm1 = class(TForm)
   Memo1: TMemo;
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
 private
   OldMemoWndProc: TWndMethod;
   procedure NewMemoWndProc(var Message: TMessage);
 end;

procedure TForm1.NewMemoWndProc(var Message: TMessage);
begin
 if Message.Msg <> WM_PASTE then
   OldMemoWndProc(Message)
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 OldMemoWndProc := Memo1.WindowProc;
 Memo1.WindowProc := NewMemoWndProc;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 Memo1.WindowProc := OldMemoWndProc;
end;


P.S. Ctrl+V -- это не единственное сочетание клавиш для вставки из буфера.



Страницы: 1 вся ветка

Текущий архив: 2006.07.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.057 c
15-1149440445
Nic
2006-06-04 21:00
2006.07.02
Простой вопрос


2-1149855771
AlexanderMS
2006-06-09 16:22
2006.07.02
Клавиши быстрого доступа в меню на русском языке.


1-1148467365
RayRom
2006-05-24 14:42
2006.07.02
ReportBuilder печать отчета с пустым ДатаСетом.


5-1134762564
Jenya
2005-12-16 22:49
2006.07.02
Изменить цвет строки в компоненте TlistView???


2-1149868650
Handle
2006-06-09 19:57
2006.07.02
Подскажите как из TImageList вытащить иконку в TIcon ?