Guest --felipe -- Postado Junho 27, 2007 Denunciar Share Postado Junho 27, 2007 ai galera preciso saber como se faz para exibir um menuzinho (igual os do windows)quando eu clicar com o botão direito em um DBGRIDalguém sabe como fazer isso?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Elazar Postado Junho 27, 2007 Denunciar Share Postado Junho 27, 2007 ai galera preciso saber como se faz para exibir um menuzinho (igual os do windows)quando eu clicar com o botão direito em um DBGRIDalguém sabe como fazer isso?? Essa dica permite dar aos usuários dos nossos sistemas uma opção para configurar as colunas visíveis de um dbgrid, através de um PopUpMenu. Para isso, criaremos um procedimento e ajustaremos os seguintes eventos, como segue abaixo:- Considerando que seu formulário já contenha um DBGrid e um PopUpMenu, declare na seção private do seu formulário, as seguintes procedures:procedure AjustarColunasDoGrid( Grid : TDBGrid; PopMenu : TPopupMenu);procedure MenuClick(Sender : TObject);- Implemente os procedimentos declarados acima da seguinte maneira:procedure Tform1.AjustarColunasDoGrid( Grid : TDBGrid; PopMenu : TPopupMenu);var vItemMenu : TMenuItem; vCont : Integer;begin { Faz um loop nas colunas do menu } for vCont := 0 to Grid.Columns.Count-1 do begin { Cria um item de menu e define algumas propriedades } vItemMenu := TMenuItem.Create(Self); vItemMenu.Caption := Grid.Columns[ vCont].DisplayName; { Caption } vItemMenu.Checked := True; { Marcado } vItemMenu.Name := 'PM' + Grid.Name + '_' + IntToStr(vCont); { Nome } vItemMenu.OnClick := MenuClick; { Associa o evento do clique } PopMenu.Items.Add( vItemMenu); { Adiciona o mesmo ao menu } end; { Associa o grid ao menu } Grid.PopupMenu := PopMenu;end;procedure Tform1.MenuClick(Sender : TObject);var vNomeMenu : String; vNomeGrid : String; vNroColum : Integer; vGrid : TDBGrid;begin { Aqui pega o nome do item de menu } vNomeMenu := (Sender as TMenuItem).Name; { Pega o nome do grid } vNomeGrid := Copy(vNomeMenu, 3, Pos('_', vNomeMenu) - 3); { Pega o numero da coluna - aumente o 3 no final se tiver mais que 999 colunas... } vNroColum := StrToInt( Copy( vNomeMenu, Pos('_', vNomeMenu) + 1 , 3) ); { Pega uma referência o componente grid associado } vGrid := (Self.FindComponent(vNomeGrid) as TDBGrid); { Ajusta o check do item de menu... marca se estiver desmarcado ou vice versa } (Sender as TMenuItem).Checked := not (Sender as TMenuItem).Checked; { enfim, mostra ou oculta a coluna de acordo com o menu } vGrid.Columns[ vNroColum ].Visible := (Sender as TMenuItem).Checked;end;- E por último, vamos associar o PopUp ao DBGrid, através do nosso procedimento, no onCreate do form:procedure Tform1.FormCreate(Sender: TObject);begin { Chame a função passando apenas o nome do grid e do popup menu } AjustarColunasDoGrid( DBGrid1, PopupMenu1 );end; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --felipe -- Postado Junho 28, 2007 Denunciar Share Postado Junho 28, 2007 valeu amigo serviu certinho =Dabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest --felipe --
ai galera preciso saber como se faz para exibir um menuzinho (igual os do windows)
quando eu clicar com o botão direito em um DBGRID
alguém sabe como fazer isso??
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.