Você está na página 1de 8

DI Departamento de Informtica

Tipos de Menu

PUC-Rio TBDS

IU

Laboratrio de Tecnologias de BD

TBDS Tcnicas Bsicas de Desenvolvimento de Sistemas

Existem dois tipos de Menus:

IU A construo de Menus

o Menu Suspenso (MainMenu)

o Menu PopUp (PopUpMenu)

Professores:

Rubens Melo e Ana Maria Laurentiz Pacifico


DI-TecBD

Tipos de Menu

PUC-Rio TBDS

IU

O MainMenu
Ex.:
Itens do Menu Principal e seus sub-itens

PUC-Rio TBDS

IU

Em tempo de projeto

Os componentes no Visuais no aparecem

teclas aceleradoras
ex.: caption := &Incluir caption := S&obre

MainMenu
DI-TecBD

Em tempo de execuo
3
DI-TecBD

O MainMenu
Ex.: Como constru-lo ?

PUC-Rio TBDS

PUC-Rio TBDS

IU

Teclas de Atalho - TMenuItem.ShortCut


Um item de menu (da classe TMenuItem) tem a propriedade ShortCut. ShortCut so Teclas de Atalho, uma combinao de Teclas que podem ser tecladas para acessar rapidamente um item de menu. Elas aparecem a direita de um item de menu no menu.

Atravs de um componente MainMenu inserido no formulrio (duplo click)

Para Remover ou Criar novos itens chame o help de contexto


A linha usada como separadora de grupos um subitem do menu Scios. Para cria-la entre com um - para a propriedade caption do item de menu.

A propriedade ShortCut da classe TShortCut.


Em tempo de projeto seu valor pode ser selecionado atravs de uma longa lista de combinaes oferecidas pelo Object Inspector

Em tempo de execuo pode ser criada usando a funo ShortCut. Por ex.,
// cria o atalho, Ctrl+N associado ao item de menu MnuArquivoNovo.

Aqui pode ser includo novos itens


Os ttulos dos itens so definidos com um caracter sublinhado para possibilitar o uso do teclado.

MnuArquivoNovo.ShortCut := ShortCut( Word('N'), [ssCtrl] );


DI-TecBD

Ex: ALT+Tecla_Sublinhada
DI-TecBD

IU Ctrl+A : Ctrl+Z Ctrl+Alt+A : Ctrl+Alt+Z F1 : F12 Ctrl+F1 : Ctrl+F12 Shift+F1 : Shift+F12 Shift+Ctrl+F1 : Shift+Ctrl+F12 ins Shift+ins Ctrl+Ins Del Shift+del Ctrl + del Alt + bkSp Shift+Alt+BkSP
6

O MainMenu
Ex.: O uso de cones no Menu Adicionando Imagem em item de Menu

PUC-Rio TBDS

IU

O MainMenu

PUC-Rio TBDS

IU

Ex.: O uso de Templates Otimizam o desenvolvimento de novas aplicaes


Os Templates de Menus no contm cdigos associados a eventos. Menus com opes mais freqentes podem ser salvos como Templates usando o Menu Designer.
Para usar um Template: - Insira um objeto MainMenu - Clicar com o boto direito do mouse sobre ele. - Selecionar Menu Designer... - Clicar com o boto direito do mouse sobre o item de menu. - Selecionar Insert From Template... - Selecionar o Template desejado. Vantagens de uso de Templates:
- Menus previamente criados por voc, podem ser guardados como Template agilizando a criao novas aplicaes.
DI-TecBD

Imagens ajudam os usurios a navegarem em Menus quando estas so similares s da barra de ferramentas. Por ex.:

Um item de Menu da classe TMenuItem. Sua propriedade BitMap uma referencia para o nome do bitmap desejado para o menu ou item de menu. As imagens para sua aplicao devem ser organizadas em uma lista de imagens. Por ex.: Bitmaps de mesmo tamanho, usualmente so colocados em uma lista de imagens. Uma lista de imagens facilita a introduo das mesmas no Menu. cones so encontrados em: Arquivos Comuns/ Borland/ Shared/Images/Icons/ O PICTURE EDITOR proporciona: selecionar a imagem desejada (Load..) salvar a imagem selecionada (Save..)
DI-TecBD

Help de Contexto sobre o MainMenu

Help de Contexto sobre o primeiro item no Menu Designer


8

PUC-Rio TBDS

PUC-Rio TBDS

Propriedades dos Itens de Menus

IU

IU

As propriedades Checked, Visible e Enabled permitem configurar adequadamente os itens de uma barra de menus.

Checked- serve para criar itens de menu de verificao. Seu valor (default) false. Visible - serve para esconder ou no um item de menu. Seu valor (default) true. Enabled - serve para habilitar ou no um item de menu. Seu valor (default) true Ex.: procedure TForm1.FormCreate(Sender: TObject); Begin mnutesteC1. Enabled := false // desabilita mas no esconde mnuTesteA1.Checked := true // inicializa como marcado end; procedure TForm1.mnuTesteA1Click(Sender: TObject); begin mnuTesteA1.Checked := not mnuTesteA1.Checked; // marca ou desmarca mnuTesteB1.Visible := not mnuTesteB1.Visible; // mostra ou esconde mnutesteC1.Enabled := not mnutesteC1.Enabled // habilita ou desabilita end; DI-TecBD

Menu PopUp

DI-TecBD

10

O PopUpMenu
Ex. utilizando os dois tipos de Menus

PUC-Rio TBDS

IU

O PopUpMenu
Ex.: Como constru-lo ? Duplo Click no componente PopUpMenu Inserido no formulrio

PUC-Rio TBDS

IU

TMainMenu e TPopupMenu so as classes dos objetos inseridos no formulrio.


Durante a execuo do programa clicar com o boto direito do mouse no formulrio principal. O MenuPopup dever ter as opes de ajuda sobre o contexto, ou seja, quando o usurio no sabe o que fazer ele pode chamar o help de contexto. O MenuPopup deve oferecer as possveis aes que podem ser aplicadas no local (respectivo contexto, neste caso o formulrio).

Em tempo de projeto

O PopupMenu flutua sobre o formulrio

Todos os componentes visuais possuem a propriedade PopupMenu No Form: PopupMenu = PopupPrincipal


DI-TecBD

Por default, a propriedade name PopUpMenu1. No ex. alteramos essa Em tempo de execuo propriedade
11
DI-TecBD

12

O PopUpMenu
Ex.:

PUC-Rio TBDS

IU

O - PopUpMenu
Diferenas entre Terminate e Close
Application.Terminate = FrmPrincipal.Close

PUC-Rio TBDS

IU

type Classes TFrmPrincipal = class(TForm) PopupPrincipal: TPopupMenu; PopupSocios: TMenuItem; PopupDependentes: TMenuItem; Atributos PopupSocioIncluir: TMenuItem; popupSocioAlterar: TMenuItem; popupSocioExcluir: TMenuItem; N1: TMenuItem; popupSocioSair: TMenuItem;

Uma aplicao encerrada quando se fecha o formulrio principal.

Terminate o nome do mtodo que fecha uma aplicao.


Uso: Application.Terminate

Uma aplicao encerrada quando se fecha o formulrio principal.


Application.Terminate = FrmPrincipal.Close
DI-TecBD

Um formulrio pode no ser o formulrio principal de uma aplicao.


Close o nome do mtodo que fecha um formulrio. Hide o nome do mtodo que esconde o formulrio ajustando a propriedade visible para false.
Uso: Form1.Close; Form1.Hide; Quando a aplicao contm apenas um formulrio ento este o formulrio principal e neste caso sim, Application.Termination equivale a Form1.Close.
DI-TecBD

procedure TFrmPrincipal.MnuSairClick(Sender: TObject); begin // Finaliza a execuo da aplicao Application.Terminate end;


procedure TFrmPrincipal.popupSocioSairClick(Sender: TObject);

begin Application.Terminate // Finaliza a execuo da aplicao end;


13

14

O PopUpMenu
Ex.:

PUC-Rio TBDS

IU

O PopUpMenu
Ex.:

PUC-Rio TBDS

IU

Ao selecionar no menu suspenso, o item Scios/Incluir, o formulrio FormSocioIncluir dever ser exibido! Idem ao selecionar item Incluir do menu popupSocio.

Programando dois de Menu para usarem a mesma procedure de evento Por ex., o evento OnClick do item de Menu Incluir do popupPrincipal usar a mesma procedure de evento do item Incluir do menu suspenso MainMenu1. Para isso faa:

Duas vezes a mesma tarefa ? Seria possvel ambos usarem a mesma procedure de evento? Sim! Como?
DI-TecBD

procedure TFrmPrincipal.MnuIncluirClick(Sender: TObject); begin // Exibe o formulrio FormSocioIncluir FormSocioIncluir.ShowModal end; procedure TFrmPrincipal. popupSocioIncluirClick(Sender: TObject); begin // Exibe o formulrio FormSocioIncluir FormSocioIncluir.ShowModal end; ShowModal - mtodo que mostra um formulrio previamente fechado.
15
DI-TecBD

Verifique a lista de eventos do item Incluir do menu popupPrincipal Abra a caixa de lista do evento OnClick Selecione o nome da procedure de evento que ser associada ao item Incluir do popupPrincipal, por exemplo MnuSociosIncluirClick.
16

Usando Units de outros formulrios

PUC-Rio TBDS

IU

O PopUpMenu

PUC-Rio TBDS

IU

Para reflexo ... pensar quando vale a pena us-lo


A Unit de um formulrio principal de uma aplicao deve usar as Units dos formulrios por ela chamados. UNIT UPrincipal;
INTERFACE Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus ; Type TFrmPrincipal = class(TForm) MainMenu1: TMainMenu; : PopupPrincipal: TPopupMenu; : private { Private declarations } public { Public declarations } end;

possvel existir diversos menus do tipo PopUpMenu em um mesmo formulrio? R: Sim, os componentes visuais possuem a propriedade PopupMenu. Por ex., cada o objeto da IU ao lado pode receber a ao de um MenuPopUp.
Selecione um objeto da IU e faa a sua propriedade PopupMenu receber o objeto PopUpMenu definido em seu formulrio mais apropriado (aquele que representa melhor o contexto). No exagere !!!

VAR FrmPrincipal: TFrmPrincipal; IMPLEMENTATION Uses USocioIncluir;


DI-TecBD

a Unit do formulrio FrmSocioInluir

17

DI-TecBD

18

PUC-Rio TBDS

BARRA DE FERRAMENTAS
DI Departamento de Informtica

IU

Laboratrio de Tecnologias de BD

TBDS Tcnicas Bsicas de Desenvolvimento de Sistemas

ToolBar1
1 2 3 45 6 7 8 ToolButtons

IU Barras de Ferramentas

ToolButton6
* Quando ImageIndex = -1 nenhuma imagem ser exibida. PopupMenu1
DI-TecBD

Professores:

Rubens Melo e Ana Maria Laurentiz Pacifico

Lista de Imagens

20

PUC-Rio TBDS

PUC-Rio TBDS

INCLUINDO UMA BARRA DE FERRAMENTAS

IU

INCLUINDO UMA BARRA DE FERRAMENTAS

IU

Outra opo para a construo da Barra de Ferramentas usar o componente Panel, e sobre ele inserir botes do tipo BitButton com a com a propriedade Glyph
definindo imagens adequadas e com um LayOut definido em relao ao Caption.
* no ex.: 1 insere-se o BitBtn, 2- Seleciona-se bkCancel para a propriedade Kind 3- Altera-se a propriedade Caption para Fechar
DI-TecBD

no ex.: so cadastrados os Clientes, Produtos e tambm os Pedidos de Produtos pelos Clientes

A Barra de Ferramentas agiliza o uso do Sistema, mais rpido clicar nos botes
22

21

DI-TecBD

PUC-Rio TBDS

INCLUINDO UMA BARRA DE FERRAMENTAS


Dada uma tela de cadastro, pode-se definir as seguintes operaes :
Exemplo 1

IU

INCLUINDO UMA BARRA DE FERRAMENTAS

PUC-Rio TBDS

IU

ToolBar (pgina Win 32). o componente usado para conter um conjunto de cones (imagens).
Inicialmente insere-se um ToolBar na aplicao.

Novo, para entrar com um registro que ainda no foi cadastrado. Alterar, para modificar um registro j cadastrado. Apagar, para eliminar um registro j cadastrado. Gravar, para gravar os dados do registro em edio. Cancelar, para suspender qualquer operao em andamento.
Exemplo 2
DI-TecBD

Atravs do Help de Contexto sobre o ToolBar adiciona-se os botes e separadores necessrios. Os separadores e botes so objetos denominados ToolButton1, ToolButton2, ...., ToolButtonN. Separadores so recomendados quando se quer agrupar botes que atendem melhor uma das funcionalidades da aplicao. Cada boto desta barra ser um componente individual, com seu prprio manipulador de eventos (evento click).

23
DI-TecBD

Insere-se o componente ImageList (que permite

a vinculao de uma Lista de Imagens).


24

PUC-Rio TBDS

PUC-Rio TBDS

INCLUINDO UMA BARRA DE FERRAMENTAS

IU

INCLUINDO UMA BARRA DE FERRAMENTAS

IU

Seleciona-se a instncia do objeto ImageList no formulrio e adiciona-se as imagens desejadas para a aplicao atravs do ImageList Editor ... Algumas imagens de botes podem ser encontradas em Arquivos de Programas/Arquivos Comuns/Borland Shared/Images/Buttons porm voc pode tambm criar suas prprias imagens. As Imagens devem corresponder s operaes de sua aplicao, por ex.: "novo arquivo", "abrir arquivo", "salvar arquivo, etc.. Ao selecionar um boto como por exemplo o FileNew pode aparecer uma mensagem avisando que o tamanho do .bmp maior que as dimenses do imageList. Isto acontece quando o .bmp duplo, ou seja, metade uma imagem habilitada e a outra desabilitado. O Delphi perguntar se voc deseja separar a imagem. Aceite a sugesto e delete a segunda imagem, para os seis arquivos. Para adicionar uma imagem ao componente ImageList basta clicar duas vezes sobre ele e pressionar o boto Add... 25
PUC-Rio TBDS

Confirme se voc deseja separar a imagem. Delete uma das imagens. Para adicionar outra imagem ao componente ImageList pressionar o boto Add... e assim por diante...por ex.:

Apply
DI-TecBD

DI-TecBD

26

PUC-Rio TBDS

INCLUINDO UMA BARRA DE FERRAMENTAS


Vincula-se o ImageList1 ao ToolBar1, atribuindo a propriedade Images do ToolBar o componente ImageList1 como visto ao lado, para que os botes possam ser preenchidos com as imagens previamente armazenadas no ImageList1.

IU

INCLUINDO UMA BARRA DE FERRAMENTAS


O componente ToolBar1 pode ser ajustado na janela da aplicao atravs da propriedade Align. Propriedades mais utilizadas de um ToolButton: ImageIndex - O ndice da imagem do componente ImageList associada ShowHint para mostrar uma dica em tempo de execuo quando o mouse pousar sobre o boto Hint - Define a dica que aparecer quando ShowHint = true.

IU

Cada ToolButton tem a propriedade ImageIndex que dever ser preenchida com o valor que indica a imagem do ImageList. O valor do primeiro ToolButton 0 (zero) e corresponde a primeira imagem do ImageList.

Style - Define o estilo do boto (tbsButton, tbsChecked, tbsDivider, tbsDropDown, tbsSeparador)

Se um ToolButton for do estilo tbsDivider, isto , um separador, ento no ser possvel que uma imagem seja associado a ele. Isto o delphi no resolve e neste caso, voc deve modificar os ndices para as imagens nos prximos botes.
27
DI-TecBD

* a numerao das imagens no ImageList comea de 0 zero.


DI-TecBD

28

PUC-Rio TBDS

PUC-Rio TBDS

INCLUINDO UMA BARRA DE FERRAMENTAS


Style - Define o estilo do boto.
tbsButton - boto clicvel tipo "push button" (liga com um clique e desliga com o prximo clique) tbsCheck - boto clicvel tipo "push button" (liga com um clique e desliga com o prximo clique) tbsDivider no clicvel, aparece como uma linha divisria vertical tbsDropDown- no clicvel; aparece como uma linha divisria vertical tbsSeparator - no clicvel; aparece como um espao separador. Exemplos: do estilo tbsDropDown: do estilo tbsCheck: Do estilo tbsDivider: linha dividindo os
DI-TecBD

IU

A BARRA DE STATUS E O EDITOR DE PANELS

IU

StatusBar1
O form tem o evento OnTimer

note que apenas a dois outros toolButtons que foi redimensionada.


29
DI-TecBD

StatusBar1.Panels[1].Text := TimeToStr(Time);
30

PUC-Rio TBDS

Uso de Templates: A Tela Sobre (About)

IU

File/New/Other... Forms Selecione: About Box * O FormAbout, do


repositrio de dados inserido em seu projeto, Em seguida faa as adaptaes necessrias e salve o projeto com este novo Form.
31

Este form ser automaticamente inserido em seu projeto. Para remov-lo selecione Project/Remove form Project ...
DI-TecBD

Você também pode gostar