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