Ir para conteúdo
Fórum Script Brasil
  • 0

Como Exibir Menu


Guest --felipe --

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

  • 0
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??

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;

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...