Adicionando TMainMenu Abrindo editor de Itens Adicionando Itens no TMainMenu Projeto executando
#PraCegoVer - Transcrição dos Slides Para adicionar o TMainMenu encontre-o na paleta Standard
Para acessar a propriedade Items clique duas vezes sobre o componente ou encontre-a no Object Inspector
A propriedade Caption é usada para adicionar texto ao item de menu
Ao por o projeto para executar veremos o texto que digitamos em Caption logo no topo do formulário

No Delphi criamos menus para auxiliar na usabilidade dos nossos softwares, como abrir uma tela de cadastro, um relatório, fechar o programa, etc.

O componente TMainMenu é um dos recursos disponíveis no Delphi para a criação de menus para os nossos formulários. O encontramos na paleta Standard.

Adicionando Itens ao TMainMenu

Adicionar itens ao TMainMenu pode ser feito de duas formas: clicando duas vezes no componente ou clicando na propriedade Items, no Object Inspector:

Adicionando Item Adicionando Mnemônico Adicionando separador Adicionando Teclas de Atalho Adicionando Imagem em um Item Criando Submenu Marcando um Item Marcando e desmarcando Item
#PraCegoVer - Transcrição dos Slides Para adicionar item selecione Cadastro e automaticamente um novo item é adicionado
Utilizando & antes de uma letra conseguimos adicionar um mnemônico ao item de menu
Utilizando - no Caption de um item, criamos um separador para o menu
A propriedade ShortCut permite adicionar teclas de atalho para o nosso menu
A propriedade Bitmap permite adicionar uma imagem a um item de menu
Se clicarmos com o botão direito do mouse sobre o caption e escolhermos a opção "create submenu" poderemos criar uma hierarquia no TMainMenu
A propriedade Checked permite identificar visualmente se um determinado item está marcado
utilizando o operador not podemos ativar ou não a propriedade Checked:
procedure TForm1.ClientesAtivos1Click(Sender: TObject);
begin
ClientesAtivos1.Checked := not ClientesAtivos1.Checked;
end;

Adicionando Mnemônico

Quando abrimos o menu File do Delphi, por exemplo, encontramos algumas letras com um sublinhado, como: File -> New, Open, Reopen, Save. Observe a Figura 1 para entender melhor.

Figura 1: Mnemônico no menu da IDE do Delphi
Figura 1. Mnemônico no menu da IDE do Delphi

Podemos executar o item de menu Open, por exemplo, utilizando as teclas de atalho:

  • ALT + F -> Acessa o menu File e o abre;
  • O -> Executa o item Open do menu File.

Adicionando Separador

Na Figura 1 podemos notar que entre os itens Reopen e Save existe uma linha os separando. Ela é adicionada com o caractere “-” no caption do item do menu. Assim, apenas informando esse caractere o TMainMenu criará um separador.

Adicionando Teclas de Atalho

As teclas de atalho auxiliam e agilizam a usabilidade do nosso software, pois podemos abrir rapidamente uma determinada tela apertando apenas uma tecla ou uma combinação delas, como, por exemplo, CTRL+S na IDE do Delphi (conforme Figura 1) para executar o menu Save.

Adicionando Imagem em um Item

Cada vez mais estamos preocupados com o layout de nossas aplicações e no menu não é diferente. Uma imagem pode ajudar na identificação e até mesmo na memorização visual de uma determinada opção. Podemos adicionar uma imagem através da opção Bitmap de um determinado item do nosso Menu, conforme mostra a Figura 2.
Figura 2: Adicionando imagem a um item de Menu
Figura 2. Adicionando imagem a um item de Menu

Criando Submenu

Podemos criar o Submenu dentro de um menu, assim como podemos criar Submenus dentro de itens de outros Submenus, criando assim uma hierarquia para todo o menu, conforme mostra a Figura 3.

Figura 3: SubMenu
Figura 3. SubMenu

Marcando um Item

Como podemos notar, na Figura 3 temos o item “Clientes - Ativo” marcado. Essa funcionalidade está disponível através da propriedade Checked deste item. Para conseguir simular devemos marcar como TRUE a propriedade Checked. O problema é que a mesma ficará sempre marcada e para fazer o efeito de “marcada” (ao clicar a primeira vez, por exemplo) e “desmarcada” (ao clicar novamente no menu) precisamos realizar essa tarefa via programação, conforme código abaixo:


  procedure TForm1.ClientesAtivos1Click(Sender: TObject);
  begin
    ClientesAtivos1.Checked := not ClientesAtivos1.Checked;
  end;

Com essa implementação, caso o ClientesAtivo1 esteja com sua propriedade Checked = True, a mesma será modificada para False e, ao clicar novamente, o efeito será o inverso.

Sugestão de conteúdo