Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

webrodex

PopupMenu + TreeView

Recommended Posts

Olá gostaria de saber o seguinte precisava de 3 coisas1 - aparecer o PopupMenu so quando o texto for selecionado2 - proibir um grupo que pode ver o PopupMenu quando clicar com direito3 - mostrar um PopupMenu exclusivo para um grupoComo faço essas 3 coisas ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixe a propriedade 'Popup' em branco, escolha o evento que que você quer e coloque o código

PopupMenu1.Popup(Mouse.CursorPos.x,Mouse.CursorPos.Y);

Com isso, o popup do botão direito é bloqueado e só aparece quando acontecer o evento que você escolheu....

 

Eu por exemplo, fiz no onclick e ficou + ou - do jeito que você quer.

 

Para o tres faça um IF

if <usuário tem direito> then	PopupMenu1.Popup(Mouse.CursorPos.x,Mouse.CursorPos.Y);

Compartilhar este post


Link para o post
Compartilhar em outros sites

E para o grupo como faço suponhamos que temos assim1 = grupo 1 ( so pode aparecer pop-up para esse grupo )+ Amigos onlineAnaGabrielDiegoSamanta Natalia2 = grupo 2 ( no caso nao pode aparecer no popup )+ Amigos Off-LineYumiAmandaSaraVanessaEstou usando mysql os registro vem do mysql com Treeview listando os arquivos e os grupo que pertence cada um

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer algo um pouco diferente, veja se funciona para você:

 

No evento OnContextPopup do TreeView, faça algo do tipo:

 

procedure TForm1.TreeView1ContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);beginPopupMenu1.AutoPopup:=False;if TreeView1.Selected.Parent <> nil then	begin	if TreeView1.Selected.Text <> '' then		begin		if TreeView1.Selected.Parent.Text = 'Pai' then			opcNaoMostra.Visible:=True		else			opcNaoMostra.Visible:=False;		PopupMenu1.AutoPopup:=True;		end;	end;end;
No caso o meu TreeView têm a seguinte estrutura:

 

-> Pai  -> Filho	-> Neto
Somente irá mostra o PopUp se clicar com o direito sobre Filho ou Neto, e se clicar sobre Neto, ele desabilita uma opção do PopUp, sendo assim uma das formas de remover ou desabilitar as opções do menu.

E pode deixar ligado a propriedade PopupMenu do TreeView com o PopUp criado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como faço isso exemplo no PopupMenu temos os valores assimEnviar mensagemEnviar arquivosVer WebCamComo faço via comando para deixar o PopupMenu esse Ver WebCam como desabilitado para esse usuario ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso estas três opções:

 

São itens do menu, você terá de colocar um nome para cada item, tipo:Enviar mensagem	-> opcEnviarMensagemEnviar arquivos	   -> opcEnviarArquivoVer WebCam		  -> opcVerWebCamprocedure TForm1.TreeView1ContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);beginPopupMenu1.AutoPopup:=False;if TreeView1.Selected.Parent <> nil then	begin	if TreeView1.Selected.Text <> '' then		begin		opcEnviarMensagem.Visible:=False;		opcEnviarArquivo.Visible:=False;		opcVerWebCam.Visible:=False;		if TreeView1.Selected.Parent.Text = 'Pai' then			begin			opcEnviarMensagem.Visible:=True;			opcEnviarArquivo.Visible:=True;			opcVerWebCam.Visible:=True;			end;					PopupMenu1.AutoPopup:=True;		end;	end;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.