Внешний вид сайта:

Деактивация заданного по умолчанию контекстного меню

Деактивация заданного по умолчанию контекстного меню (на TWinControl). Когда мы щелкаем на компоненте поля ввода или любого другого компонента, который позволяет редактировать (например, MaskEdit, Memo, DBEdit и др.), выскакивает по умолчанию контекстное меню с опциями отмены, вставки и т.д.

Мы можем поместить свой компонент TPopupMenu и назначить это меню на свойство компонентов, чье меню мы хотим отключить.

Есть процедура, которая использует RTTI и отключает всплывающее меню на управлении.

Uses TypInfo;

procedure DisablePopUp(AControl: TWinControl) ;
var
    j : integer;
    pm : TPopupMenu;
begin
   pm := TPopupMenu.Create(AControl) ;
   for j := 0 to AControl.ControlCount-1 do
    if IsPublishedProp(AControl.Controls[j], 'PopupMenu') then
      SetObjectProp(AControl.Controls[j], 'PopupMenu', pm) ;
end;

Использование:

DisablePopUp(Form1) ;

или

DisablePopUp(Panel1) ;

Комментарии

Нет комментариев. Ваш будет первым!