TBDS10IU1
Click here to load reader
-
Upload
joao-moura -
Category
Documents
-
view
16 -
download
2
Transcript of TBDS10IU1
IUA construção de Menus
Professores: Rubens Melo e
Ana Maria Laurentiz Pacifico
Laboratório de Tecnologias de BD
DI – Departamento de Informática
TBDS – Técnicas Básicas de Desenvolvimento de Sistemas
DI-TecBD 2
PUC-Rio TBDSIU
Existem dois tipos de Menus:
o Menu Suspenso e o Menu PopUp(MainMenu) (PopUpMenu)
Tipos de MenuTipos de Menu
DI-TecBD 3
PUC-Rio TBDSIU
MainMenuMainMenu
Tipos de MenuTipos de Menu
DI-TecBD 4
PUC-Rio TBDSIU
Itens do Menu Principal e seus sub-itens
Em tempo de projeto
Em tempo de execução
Os componentes “não Visuais” não aparecem
teclas aceleradoras
ex.:caption := &Incluircaption := S&obre
O O MainMenuMainMenuEx.:
DI-TecBD 5
PUC-Rio TBDSIU
Ex.: Como construí-lo ?
Através de um componente MainMenu inserido no formul ário – (duplo click)
Para Remover ou Criar novositens chame o help de contexto
Aqui pode ser incluído novos itens
A linha usada como separadora de grupos é um subitem do menu Sócios. Para cria-la entre com um “-” para a propriedade caption do item de menu.
Os títulos dos itens são definidos com um caracter sublinhado para possibilitar o uso do teclado.Ex: ALT+Tecla_Sublinhada
O O MainMenuMainMenu
DI-TecBD 6
PUC-Rio TBDSIUTeclas de Atalho - TMenuItem.ShortCut
Um item de menu (da classe TMenuItem) tem a propriedade ShortCut.ShortCut são “Teclas de Atalho”, umacombinação de Teclas que podem sertecladas para acessar rapidamente um item de menu. Elas aparecem a direita de umitem de menu no menu.
A propriedade ShortCut é da classe TShortCut.Em tempo de projeto seu valor pode ser selecionado através de umalonga lista de combinações oferecidas pelo Object Inspector
Em tempo de execução pode ser criada usando afunção ShortCut .
Por ex.,// cria o atalho, Ctrl+N associado ao item de menu MnuArquivoNovo.
MnuArquivoNovo.ShortCut := ShortCut( Word('N'), [ssCtrl] );
Ctrl+A:Ctrl+ZCtrl+Alt+A:Ctrl+Alt+ZF1:F12Ctrl+F1:Ctrl+F12Shift+F1:Shift+F12Shift+Ctrl+F1:Shift+Ctrl+F12insShift+insCtrl+InsDelShift+delCtrl + delAlt + bkSpShift+Alt+BkSP
DI-TecBD 7
PUC-Rio TBDSIU
Adicionando Imagem em item de MenuAdicionando Imagem em item de Menu
Um item de Menu é da classe TMenuItem. Sua propriedade BitMap é uma referencia para o nome do bitmap desejadopara o menu ou item de menu.As imagens para sua aplicação devem ser organizadas em uma lista de imagens. Porex.: Bitmaps de mesmo tamanho, usualmentesão colocados em uma lista de imagens. Uma lista de imagens facilita a introduçãodas mesmas no Menu.
Ícones são encontrados em: Arquivos Comuns/ Borland/ Shared/Images/Icons/
O PICTURE EDITOR proporciona: selecionar a imagem desejada (Load..)salvar a imagem selecionada (Save..)
Imagens ajudam os usuários a navegarem em Menus quando estas são similares às da barra de ferramentas. Por ex.:
O O MainMenuMainMenuEx.: O uso de ícones no Menu
DI-TecBD 8
PUC-Rio TBDSIU
Para usar um Template:- Insira um objeto MainMenu- Clicar com o botão direito do
mouse sobre ele.- Selecionar Menu Designer...- Clicar com o botão direito domouse sobre o item de menu.
- Selecionar Insert From Template...- Selecionar o Template desejado.
Otimizam o desenvolvimento de novas aplicaOtimizam o desenvolvimento de novas aplica ççõesõesOs Templates de Menus não contém códigos associados a eventos.
Menus com opções mais freqüentes podem ser salvos como Templatesusando o Menu Designer.
Help de Contextosobre o primeiro item
no Menu Designer
Vantagens de uso de Templates:- Menus previamente criados por você,
podem ser guardados como Templateagilizando a criação novas aplicações.
Help de Contextosobre o
MainMenu
O O MainMenuMainMenuEx.: O uso de Templates
DI-TecBD 9
PUC-Rio TBDSIUPropriedades dos Itens de Menus
Checked - serve para criar itens de menu de verificação. Seu valor (default) é false.Visible - serve para esconder ou não um item de menu. Seu valor (default) é true. Enabled - serve para habilitar ou não um item de menu. Seu valor (default) é trueEx.:procedure TForm1.FormCreate(Sender: TObject);Begin
mnutesteC1. Enabled := false // desabilita mas não escondemnuTesteA1.Checked := true // inicializa como marcado
end;procedure TForm1.mnuTesteA1Click(Sender: TObject);begin
mnuTesteA1.Checked := not mnuTesteA1.Checked ; // marca ou desmarcamnuTesteB1.Visible := not mnuTesteB1.Visible ; // mostra ou escondemnutesteC1.Enabled := not mnutesteC1.Enabled // habilita ou desabilita
end;
As propriedades Checked , Visible e Enabled permitem configurar adequadamente os itens de uma barra de menus.
DI-TecBD 10
PUC-Rio TBDSIU
Menu Menu PopUpPopUp
DI-TecBD 11
PUC-Rio TBDSIU
Ex. utilizando os dois tipos de Menus
TMainMenu e TPopupMenu são as classes dos objetos inseridos no formulário.
O MenuPopup deverá ter as opções de ajuda sobre o contexto, ou seja, quando o usuário não sabe o que fazer ele pode chamar o help de contexto. O MenuPopup deve oferecer as possíveis ações que podem ser aplicadas no local (respectivo contexto, neste caso o formulário).
Durante a execução do programa clicar com o botão direito do mouse no formulário principal.
O PopupMenu flutuasobre o formulário
Todos os componentes visuais possuem a propriedade PopupMenuNo Form: PopupMenu = PopupPrincipal
O O PopUpMenuPopUpMenu
DI-TecBD 12
PUC-Rio TBDSIU
Ex.: Como construí-lo ?
Duplo Click no componente PopUpMenu Inserido no formulário
Em tempo de execução
Em tempo de projeto
O O PopUpMenuPopUpMenu
Por default, a propriedade name éPopUpMenu1. No ex. alteramos essa
propriedade
DI-TecBD 13
PUC-Rio TBDSIU
Ex.:
Uma aplicação éencerrada quando se fecha o formulário principal.
procedure TFrmPrincipal.MnuSairClick(Sender: TObject);begin // Finaliza a execução da aplicação
Application.Terminateend;
procedure TFrmPrincipal.popupSocioSairClick(Sender: TObject);begin
Application.Terminate // Finaliza a execução da aplicaçãoend;
typeTFrmPrincipal = class( TForm)PopupPrincipal: TPopupMenu;PopupSocios: TMenuItem;PopupDependentes: TMenuItem;PopupSocioIncluir: TMenuItem;popupSocioAlterar: TMenuItem;popupSocioExcluir: TMenuItem;N1: TMenuItem;popupSocioSair: TMenuItem;
Atributos
Classes
Application.Terminate=
FrmPrincipal.Close
O O PopUpMenuPopUpMenu
DI-TecBD 14
PUC-Rio TBDSIU
Diferenças entre Terminate e Close
TerminateTerminate é o nome do método que fecha uma aplicação.Uso:
Application.Terminate
Um formulário pode não ser o formulário principal de uma aplicação.CloseClose é o nome do método que fecha um formulário.HideHide é o nome do método que esconde o formulário ajustando a
propriedade visible para false.Uso:
Form1.Close; Form1.Hide; Quando a aplicação contém apenas um formulário então este é o formulário principal e neste caso sim, Application.Termination equivale a Form1.Close.
Uma aplicação é encerrada quando se fecha o formulário principal .
Application.Terminate=
FrmPrincipal.Close ??
O O -- PopUpMenuPopUpMenu
DI-TecBD 15
PUC-Rio TBDSIU
Ex.:
Ao selecionar no menu suspenso,o item Sócios/ Incluir , o formulário FormSocioIncluir deverá ser exibido!
Idem ao selecionar item Incluir do menu popupSocio.
procedure TFrmPrincipal.MnuIncluirClick(Sender: TObject);begin // Exibe o formulário FormSocioIncluir
FormSocioIncluir.ShowModalend;procedure TFrmPrincipal. popupSocioIncluirClick(Sender: TObject);begin // Exibe o formulário FormSocioIncluir
FormSocioIncluir.ShowModalend;
Duas vezes a mesma tarefa ?
Seria possível ambos usarem a mesma procedurede evento?
Sim! Como?
O O PopUpMenuPopUpMenu
ShowModalShowModal - método que mostra um formulário previamente fechado.DI-TecBD 16
PUC-Rio TBDSIU
Ex.: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 faça:
Verifique a lista de eventos do item Incluir do menu popupPrincipalAbra a caixa de lista do evento OnClickSelecione o nome da procedure de evento que será associada ao item Incluir do popupPrincipal, por exemplo MnuSociosIncluirClick.
O O PopUpMenuPopUpMenu
DI-TecBD 17
PUC-Rio TBDSIUUsando Usando UnitsUnits de outros formulde outros formul áários rios
A Unit de um formulário principal de uma aplicação deve usar as Unitsdos formulá rios por ela chamados. UNIT UPrincipal;
INTERFACEUsesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus ;
TypeTFrmPrincipal = class(TForm)
MainMenu1: TMainMenu;:PopupPrincipal: TPopupMenu;:
private{ Private declarations }
public{ Public declarations }
end;VARFrmPrincipal: TFrmPrincipal;
IMPLEMENTATIONUses USocioIncluir; É a Unit do formulário FrmSocioInluir
DI-TecBD 18
PUC-Rio TBDSIU
Para reflexão ... pensar quando vale a pena usPara reflexão ... pensar quando vale a pena us áá--lolo
É possível existir diversos menus do tipo PopUpMenu em um mesmo formulário? R: Sim, os componentes visuais possuem a propriedade PopupMenu.
Por ex., cada o objeto da IU ao lado pode receber a ação de um MenuPopUp.
Selecione um objeto da IU e faça a sua propriedade PopupMenu receber o objeto PopUpMenu definido em seu formulário mais apropriado (aquele que representa melhor o
contexto).Não exagere !!!
O O PopUpMenuPopUpMenu
IUBarras de Ferramentas
Professores: Rubens Melo e
Ana Maria Laurentiz Pacifico
Laboratório de Tecnologias de BD
DI – Departamento de Informática
TBDS – Técnicas Básicas de Desenvolvimento de Sistemas
DI-TecBD 20
PUC-Rio TBDSIUBARRA DE FERRAMENTAS
PopupMenu1
* Quando ImageIndex =-1 nenhuma imagem
será exibida.
ToolBar1
ToolButton6
1 2 3 4 5 6 7 8 ToolButtons
Lista de Imagens
DI-TecBD 21
PUC-Rio TBDSIU
• Outra opção para a construção da Barra de Ferramentas é usar o componente Panel, e sobre
INCLUINDO UMA BARRA DE FERRAMENTAS
* no ex.:
1 – insere-se o BitBtn,
2- Seleciona-se bkCancel para a
propriedade Kind
3- Altera-se a propriedade Caption para Fechar
ele inserir botões do tipo BitButton com a com a propriedade Glyph
definindo imagens adequadas e com um LayOut definido em relação ao Caption.
DI-TecBD 22
PUC-Rio TBDSIU
INCLUINDO UMA BARRA DE FERRAMENTAS
• no ex.:
são cadastrados os Clientes,
Produtos e também os Pedidos
de Produtos pelos Clientes
A Barra de Ferramentas agiliza o uso do Sistema, é mais rápido clicar nos botões
DI-TecBD 23
PUC-Rio TBDSIU
INCLUINDO UMA BARRA DE FERRAMENTAS
• Novo, para entrar com um registro que ainda não foi cadastrado.
• Alterar, para modificar um registro já cadastrado.
• Apagar, para eliminar um registro já cadastrado.
• Gravar, para gravar os dados do registro em edição.
• Cancelar, para suspender qualquer operação em andamento.
Dada uma tela de cadastro, pode-se definir as seguintes operações :
Exemplo 1
Exemplo 2
DI-TecBD 24
PUC-Rio TBDSIUINCLUINDO UMA BARRA DE FERRAMENTAS
• Inicialmente insere-se um ToolBar na aplicação.
• Através do Help de Contexto sobre o ToolBaradiciona-se os botões e separadores necessários.
• Os separadores e botões são objetos denominados ToolButton1, ToolButton2, ...., ToolButtonN.
• Separadores são recomendados quando se quer agrupar botões que atendem melhor uma das funcionalidades da aplicação.
• Cada botão desta barra será um componente individual, com seu próprio manipulador de eventos (evento click).
• Insere-se o componente ImageList (que permitea vinculação de uma Lista de Imagens).
ToolBar (página Win 32). É o componente usado para conter um conjunto de ícones
(imagens).
DI-TecBD 25
PUC-Rio TBDSIU
• Seleciona-se a instância do objeto ImageList no formulário e adiciona-se as imagens desejadas para a aplicação através do ImageList Editor ...
INCLUINDO UMA BARRA DE FERRAMENTAS
•Algumas imagens de botões podem ser encontradas em Arquivos de Programas/Arquivos Comuns/BorlandShared/Images/Buttons porém você pode também criar suas próprias imagens.•As Imagens devem corresponder às operações de sua aplicação, por ex.: "novo arquivo", "abrir arquivo", "salvar arquivo“, etc..
Ao selecionar um botão como por exemplo o FileNew pode aparecer uma mensagem avisando que o tamanho do .bmp é maior que as dimensões 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 sugestão 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 botão
Add... DI-TecBD 26
PUC-Rio TBDSIU
INCLUINDO UMA BARRA DE FERRAMENTAS
•Confirme se você deseja separar a imagem.
•Delete uma das imagens. •Para adicionar outra imagem ao
componente ImageList pressionar o botão Add...
e assim por diante...por ex.:
Apply
DI-TecBD 27
PUC-Rio TBDSIU
• Vincula-se o ImageList1 ao ToolBar1, atribuindo ‘a
propriedade Images do ToolBar o componente
ImageList1 como visto ao lado, para que os botões
possam ser preenchidos com as imagens
previamente armazenadas no ImageList1.
INCLUINDO UMA BARRA DE FERRAMENTAS
* a numeração das imagens no ImageList começa de 0 “zero”.
• 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.
DI-TecBD 28
PUC-Rio TBDSIU
O componente ToolBar1 pode ser ajustado na janela da aplicação através 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 execução
quando o mouse pousar sobre o botão
•Hint - Define a dica que aparecerá quando ShowHint = true.
•Style - Define o estilo do botão (tbsButton, tbsChecked,
tbsDivider, tbsDropDown, tbsSeparador)
INCLUINDO UMA BARRA DE FERRAMENTAS
Se um ToolButton for do estilo tbsDivider, isto é, um separador, então não
será possível que uma imagem seja associado a ele. Isto o delphi não resolve e
neste caso, você deve modificar os índices para as imagens nos próximos botões.
DI-TecBD 29
PUC-Rio TBDSIU
INCLUINDO UMA BARRA DE FERRAMENTAS•Style - Define o estilo do botão.
� tbsButton - botão clicável tipo "push button" (liga com um clique e desliga com o próximo clique)
�tbsCheck - botão clicável tipo "push button" (liga com um clique e desliga com o próximo clique)
�tbsDivider – não clicável, aparece como uma linha divisória vertical
�tbsDropDown- não clicável; aparece como uma linha divisória vertical
�tbsSeparator - não clicável; aparece como um espaço separador.
Exemplos:do estilo tbsDropDown:
do estilo tbsCheck:
Do estilo tbsDivider: note que é apenas alinha dividindo os dois outros toolButtons que foi redimensionada.
DI-TecBD 30
PUC-Rio TBDSIUA BARRA DE STATUS E O EDITOR DE PANELS
StatusBar1
StatusBar1.Panels[1].Text := TimeToStr(Time);
O form tem o evento OnTimer
DI-TecBD 31
PUC-Rio TBDSIUUso de Templates: A Tela Sobre (About)
• File/New/Other...• Forms• Selecione:
About Box
* O FormAbout, do
repositório de dados éinserido em seu projeto, Em seguida faça as adaptações necessárias e salve o projeto com este novo Form.
Este form será automaticamente inserido em seu projeto. Para removê-lo selecione Project/Remove form Project ...