Quando nós damos um click com o botão direito em um componente Edit (ou qualquer outro componente que permite editar como MaskEdit, Memo, DbEdit, etc.), por padrão o menu de contexto do sistema aparece com as opções para desfazer, copia, colar, etc.
Se por qualquer razão nós não queremos que este menu apareça, um modo é simplesmente pôr um Componente TPopupMenu no form e nomeia este na propriedade PopupMenu dos componentes que queremos que o menu de contexto não apareça.
Aqui está um procedimento que usa a RTI e desabilita o popup de todos os controles em um containe.
Uses TypInfo;
procedure DisablePopUp(AControl: TWinControl);
var
i : integer;
pm : TPopupMenu;
begin
pm := TPopupMenu.Create(AControl);
for i:=0 to AControl.ControlCount-1 do
if IsPublishedProp(
AControl.Controls[i],
'PopupMenu'
) then
SetObjectProp(
AControl.Controls[i],
'PopupMenu',
pm);
end;
Use assim:
DisablePopUp(Form1);
ou
DisablePopUp(Panel1);
Nenhum comentário:
Postar um comentário