Quando se está criando a tela principal de um sistema, é de suma importância um menu organizado e de fácil entendimento, e será mostrado forma diferente de se alcançar este objetivo, utilizando os Componentes ListView e TreeView em conjunto no Delphi 7.

Criação da Tela

            Inicie uma nova Aplicação no Delphi, renomeie o Form criado para FrmMenuPrincipal, altere o Caption para Menu Principal, Salve a Unit com o nome UMenuPrincipal.pas e o Project com o nome Menu.dpr.

            Adicione o um ImageList(palheta Win32), e adicione imagens de sua preferencia.

Agora adicione os Componentes ListView (palheta Win32), remomeie para ListMenuPrincipal, altere a propriedade Align para alLeft e LargeImage para ImageList1. Utilizando a propriedade Items, adicione os Itens Cadastro e Movimentação, alterando o campo ImageIndex para o Index da imagem adicionada no componente ImageList de sua escolha.


            Adicione o componente TreeView, altere as propriedades Name para TreeMenu, Align para alLeft e Imagse para ImageList1.

            No evento OnClick do ListMenu, adicione o seguinte código:

procedure TFrmMenuPrincipal.ListMenuPrincipalClick(Sender: TObject);

  var

    produto:TTreeNode;//Variavel para Criação do Nó Localização

    i:integer;//Variavel para controle da propriedade ImageIndex

begin

  i:=0;

  if ListMenuPrincipal.Items[0].Selected then//Verifica se o Item Cadastro foi Selecionado

    begin

      TreeMenu.Items.Clear;//Apagar todos os Itens do TreeView

      TreeMenu.Items.AddChild(Nil,'Clientes');//Adiciona o item com o Text Cliente

      TreeMenu.Items[i].ImageIndex:=2;//Muda a propriedade ImageIndex do Item Criado para 2

      TreeMenu.Items[i].SelectedIndex:=2;//Muda a propriedade SelectedIndex do Item Criado para 2

      i:=i+1;//Soma 1 a variavel i para a passagem de Item

      TreeMenu.Items.AddChild(Nil,'Funcionarios');

      TreeMenu.Items[i].ImageIndex:=3;

      TreeMenu.Items[i].SelectedIndex:=3;

      i:=i+1;

      produto:=TreeMenu.Items.AddChild(Nil,'Produtos');

      TreeMenu.Items[i].ImageIndex:=4;

      TreeMenu.Items[i].SelectedIndex:=4;

      i:=i+1;

      TreeMenu.Items.AddChild(produto,'Itens');

      Treemenu.Items[0].ImageIndex:=5;

      TreeMenu.Items[i].SelectedIndex:=5;

    end

  else

    if ListMenuPrincipal.Items[1].Selected then

      begin

        TreeMenu.Items.Clear;

        TreeMenu.Items.Add(nil,'Vendas') ;

        TreeMenu.Items[i].ImageIndex:=6;

        TreeMenu.Items[i].SelectedIndex:=6;

      end;

end;


 

            Teste o programa, os dois componentes já estão funcionando em conjunto, mais agora falta adicionar comandos no TreeView para o objetivo que você queira dar ao item, e para isso adicione um componente ActionList(Standard) no Formulário,

            Clique no botão New Action 4 vezes e altere as propriedades da seguinte forma:

Ação

Name

Caption

Action1

ActCadCliente

Clientes

Action2

ActCadFuncionario

Funcionarios

Action3

ActCadItens

Itens

Action4

ActVendas

Vendas

 

            Mas atenção, a propriedade Caption deve estar com o mesmo valor da propriedade text do item do TreeView correspondente a ação.

            Adicione os seguintes comandos nos eventos OnExecute das ações

procedure TFrmMenuPrincipal.ActCadClienteExecute(Sender: TObject);

begin

  ShowMessage('Clientes');

end;

 

procedure TFrmMenuPrincipal.ActCadFuncionarioExecute(Sender: TObject);

begin

  ShowMessage('Funcionarios');

end;

 

procedure TFrmMenuPrincipal.ActCadItensExecute(Sender: TObject);

begin

  ShowMessage('Itens');

end;

 

procedure TFrmMenuPrincipal.ActVendasExecute(Sender: TObject);

begin

  ShowMessage('Vendas');

end;

 

                Para Executas as Ações em seus respectivos Itens Adicione o seguinte código no evento OnDblClick do TreeView:

 

procedure TFrmMenuPrincipal.TreeMenuDblClick(Sender: TObject);

var

  Cont1: integer;

  s: string;

begin

  for cont1 := 0 to FrmMenuPrincipal.ComponentCount -1 do

    begin

      with FrmMenuPrincipal do

        begin

          if Components [cont1] is TAction then

            begin

              s := TAction (Components [cont1]). Caption;

              if TreeMenu.Selected.Text = s then

                TAction (Components [cont1]).Execute;

              end;

         end;

    end;

end;

 

                Pronto! Execute o Programa e clique 2 vezes em um item e veja que uma mensagem com o texto do item selecionado.]

 

Conclusão

 

                Através deste artigo, foi mostrado uma nova maneira de se construir um menu, dando uma “nova cara” para suas aplicações.

 

Até mais.