Pergunta

Eu tenho um TListView e TPopupMenu, e eu quero mostrar um menu de contexto quando eu clique direito em um TListItem. Eu tentei o "exibe janelas popups", atribuindo o componente, mas em um clique direito no PopupMenu é mostrada apenas eo elemento queria não está marcada. Então, eu tentei usar o "OnMouseDown", mas precisamos clique e clique novamente para mostrar o menu no item queria. O primeiro clique é selecionar o item e o segundo mostra o menu. Mas quero apenas um clique para fazer as duas coisas. Você tem e idéia sobre o problema?

Obrigado.

Foi útil?

Solução 3

Problema resolvido. Como esperado, eu estava usando TPopUpActionaBar, assim o usuário must um simples TPopupMenu Ao usar um TPopupMenu, não há problema! (Desculpem o meu mau Inglês!) Obrigado.

Outras dicas

Eu acredito que este código resolve o problema:

procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbRight then
    ListBox1.Perform(WM_LBUTTONDOWN, 0, MakeLParam(Word(X), Word(Y)));
end;

Primeiro adicione um TPopupMenu para o formulário e definir os itens que você deseja exibir no presente (em delphi 2010 duplo clique no ícone do menu pop-up para entrar no editor item)

Em segundo lugar definir o item PopUpMenu na TListView ao TPopupMenu recém-criado.

Se os dois estão configurados corretamente, quando você clique com o botão direito sobre o TListView você verá os itens definidos, e fogo-los fora de sua On-Click evento

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top