Главная страница
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.042 c
2-1150204269
RomanH
2006-06-13 17:11
2006.07.02
ACDSee в OLE-контейнере


6-1140767270
integery
2006-02-24 10:47
2006.07.02
indy10 TIdAttachmentFile(Msg.MessageParts.Items[intIndex]).Filena


2-1150238612
learner
2006-06-14 02:43
2006.07.02
Как отличить PChar от PWideChar ?


2-1150162633
Mozart
2006-06-13 05:37
2006.07.02
TWebBrowser


2-1150038020
Fiallo4ka
2006-06-11 19:00
2006.07.02
Запросы