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.