tbds10iu1

8

Click here to load reader

Upload: joao-moura

Post on 06-Aug-2015

16 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 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.:

Page 2: TBDS10IU1

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

Page 3: TBDS10IU1

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

Page 4: TBDS10IU1

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

Page 5: TBDS10IU1

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

Page 6: TBDS10IU1

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).

Page 7: TBDS10IU1

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.

Page 8: TBDS10IU1

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 ...