Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как убрать возможность вызова контекстного меню TMemo? [D7, WinXP]


jeka_t ©   (2006-05-24 13:46:00) 

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


begin...end   (2006-05-24 16:05:00) [1]

> 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 -- это не единственное сочетание клавиш для вставки из буфера.


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

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


begin...end   (2006-05-24 15:56:00) [3]

> jeka_t   (24.05.06 15:54) [4]

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


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

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


begin...end   (2006-05-24 15:29:00) [5]

> jeka_t   (24.05.06 13:46)

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

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


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

Спасибо


Desdechado   (2006-05-24 13:54:00) [7]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо