Tudo sobre Visual Basic

Tudo sobre Visual Basic

(Parte 7 de 7)

13. Após isso, ainda falta escrevermos a rotina de cálculo que será chamada pelo botão cmdCalcular. Vá até a seção Declarations e adicione uma subrotina de nome Prestação;

14.Na subrotina Prestação escreva a seguinte codificação (note o uso do operador And):

Dim vPrestMensal As Currency
If vValor <> 0 And vJuros <> 0 And vMeses <> 0 Then
If vEntrada >= vValor Then

Public Sub Prestação() Dim vValFinanciado As Currency

vbExclamation + vbSystemModal, "Aviso"
lblValFinanciado.Caption = Empty
lblPrestMensal.Caption = Empty
txtEntrada.SetFocus
Exit Sub
End If
vValFinanciado = vValor - vEntrada
((1 + vJuros) vMeses - 1)
lblValFinanciado.Caption = Format(vValFinanciado, "###,##0.0")
lblPrestMensal.Caption = Format(vPrestMensal, "###,##0.0")
cmdCalcular.Enabled = True
cmdFechar.Enabled = True
Else
lblValFinanciado.Caption = Empty
lblPrestMensal.Caption = Empty

MsgBox "O valor da Entrada deve ser menor que o do Financiamento", _ vPrestMensal = vValFinanciado * vJuros * (1 + vJuros) vMeses / _

End If End Sub

Observações:

O primeiro If verifica se todos os dados necessários para o cálculo estão disponíveis;

O segundo If verifica se o valor da entrada não é maior ou igual ao do financiamento, pois senão o resultado do cálculo seria uma “prestação negativa” (se é que isso existe...);

Microsoft Visual Basic 647

A propriedade Enabled dos botões de comando só foi habilitada dentro dessa rotina pois assumimos que o usuário fará ao menos um cálculo quando acionar o programa.

Private Sub cmdCalcular_Click()

15.Agora só falta fazer com que o botão cmdCalcular execute a subrotina:

Prestação End Sub

16. Você também pode fazer que, após o primeiro cálculo, toda vez que um valor for alterado os resultados sejam imediatamente atualizados. Para isso, altere a procedure txtValor_LostFocus como a seguir:

Private Sub txtValor_LostFocus()
On Error GoTo Valor_Errado

vValor = CCur(txtValor.Text)

'É só incluir a linha abaixo:
Prestação
Valor_Errado:
If Err = vbKeyReturn Then
vbExclamation + vbSystemModal, "Aviso"
"Valor do Financiamento")
Resume 0

MsgBox "Dado inválido na digitação do valor do financiamento", _ txtValor.Text = InputBox("Informe o valor correto do financiamento:", _

End If End Sub

17.Faça o mesmo para as outras caixas de texto;

18. Nosso aplicativo está praticamente terminado. Só falta a programação do botão cmdFechar. Nesse botão, vamos solicitar ao usuário uma confirmação de que ele realmente deseja sair do programa, usando a função MsgBox:

vbYesNo + vbQuestion, "Saída")

Private Sub cmdFechar_Click() Dim vOk As Integer vOk = MsgBox("Tem certeza que deseja encerrar o programa?", _

If vOk = vbYes Then End End Sub

19.Grave o formulário com o nome de frmCarro e o projeto com o nome de Carro;

20. Por fim, execute o aplicativo e teste-o bem. Procure usar vários valores diferentes nas caixas de texto para observar os resultados. Tente também entrar com dados inválidos e verifique se o comportamento do projeto é o esperado. Se necessário, faça os ajustes na programação para que seu funcionamento seja perfeito.

Microsoft Visual Basic 648

Lição 6: Iniciando a Construção de um Sistema

Um projeto em VB é um conjunto de objetos. Até agora trabalhamos com apenas um objeto em cada projeto: o formulário. Sim, o formulário também é um objeto: você não reparou que ele também possui propriedades e responde a métodos? Obviamente, em um aplicativo mais complexo, como será o caso do sistema de Controle de Bibliotecas que começaremos a desenvolver nessa lição, além do formulário principal existem outros destinados a entrada de dados, exibição de mensagens ou de resultados de consultas, etc.

Existem outros tipos de objetos que podem ser adicionados ao projeto, como módulos de programação, relatórios, controles ActiveX e módulos de classe. O que os caracteriza é o fato de serem gravados em arquivos separados. Assim, o projeto pode ser considerado como um conjunto de arquivos, cada um deles correspondente a um objeto.

Trabalhando com Vários Formulários

Quando estamos desenvolvendo um projeto do qual vários formulários farão parte, obviamente vamos precisar adicionar a ele formulários novos e, muitas vezes, prontos. Além disso, uma aplicação Windows freqüentemente trabalha com outros tipos de formulários, diferentes daquele que usamos até agora.

Adicionando formulários ao projeto Para incluir um novo formulário ou um formulário existente em um projeto, siga os seguintes passos:

Abra o menu Project do VB; Escolha a opção Add Form: a janela Add Form será aberta, com várias opções de tipos de formulários:

Se desejar acrescentar um formulário já existente, clique na aba Existing e indique sua localização;

Se o formulário ainda não existe (formulário novo), você deve escolher um dos tipos da aba New. Para um formulário padrão, escolha a opção Form.

Em ambos os casos, o formulário será incluído na lista Forms da janela Projeto. A partir desse momento, ele poderá ser manipulado como outro qualquer. Vejamos alguns recursos necessários a esse trabalho:

Método Show

Esse método é usado para carregar e exibir um formulário. Sua sintaxe é: <formulário>.Show <modalidade>

Microsoft Visual Basic 649

Onde <formulário> é o nome do formulário, e <modalidade> indica se o formulário será exibido como modal ou não. Um formulário modal é aquele que deve ser obrigatoriamente encerrado para que o aplicativo continue: enquanto ele estiver ativo, nenhuma outra janela ou aplicativo pode ser acessado. Para indicar se o formulário deve ser exibido como modal usamos a constante de sistema vbModal:

frmMeuForm.Show vbModal

Se a modalidade for omitida, será assumida como não-modal.

Método Refresh

Durante a execução do sistema, às vezes acontece uma situação que impede a exibição correta do formulário. Normalmente, isso ocorre quando alteramos um objeto de um formulário que já está sendo exibido em uma procedure externa a ele, ou então quando estamos executando ações que demandam uma certa quantidade de recursos do sistema, como na abertura de arquivos. O método Refresh corrige esse problema simplesmente provocando a reconstrução imediata do formulário. Outros objetos, como os controles Data, também aceitam o método Refresh.

Comando Unload

O comando Unload fecha um formulário e devolve o controle do sistema ao formulário que o chamou. Sua sintaxe é muito simples: basta indicar o nome do formulário. Exemplo:

Unload frmMeuForm

Eliminando formulários do projeto

Para excluir um formulário do projeto, basta clicar com o botão direito do mouse sobre o nome do formulário na janela Projeto e escolher a opção Remove <nome do formulário> no menu de contexto.

Formulários MDI

Um formulário MDI (Multiple-Document Interface) funciona como uma janela que contém outros formulários a ela subordinadas (chamados de MDIChild), atuando em background para uma aplicação. Para criar um formulário MDI você deve escolher a opção Add MDI Form no menu Project do VB. Por suas características, o formulário principal de uma aplicação é freqüentemente criado como MDI. Veja as principais:

Uma aplicação pode conter apenas um formulário MDI, mas pode conter vários MDI Child Forms;

Se o formulário MDIChild contém uma estrutura de menus, a barra de menu do formulário MDI é automaticamente atualizada e o menu exibido passa a ser o do MDIChild ativo. Falaremos mais sobre menus logo adiante;

Se o formulário MDI é minimizado, todos os formulários MDIChild abertos também são; Se um formulário MDIChild é minimizado, aparece como um ícone no rodapé do MDI;

A maioria das propriedades, métodos e eventos dos formulários MDI são os mesmos de um formulário comum, mas um MDI não pode ser aberto como modal;

Um formulário MDI só pode conter menus e o controle PictureBox, ou então controles customizados preparados para isso. Você pode usar outros controles no formulário MDI apenas se criar uma PictureBox e então inserir esses controles dentro dela, como se fosse uma “moldura”;

Um formulário MDIChild não aceita a propriedade StartUpPosition.

Propriedade MDIChild

Essa propriedade indica se um formulário será exibido como MDIChild ou não. A propriedade MDIChild só tem efeito quando existe no projeto um formulário MDI. Nesse caso, qualquer outro formulário que não o MDI (obviamente) poderá ser configurado como MDIChild.

Quando o valor de MDIChild é True, o formulário poderá ser maximizado, minimizado ou movido dentro do formulário principal (MDI). Assim como o MDI, um formulário MDIChild não pode ser aberto como modal. MDIChild não pode ser alterada em modo de execução, e o valor padrão é False.

Microsoft Visual Basic 650

Startup Object

O objeto de abertura (ou Startup Object) é o primeiro objeto a ser executado quando iniciamos um aplicativo. Quando criamos um novo projeto, o formulário Form1 é definido como objeto de abertura, por ser o primeiro objeto a fazer parte dele. Mas qualquer formulário pode ser configurado como Startup. Para alterar o objeto de abertura, siga as instruções a seguir:

Abra o menu Project; Escolha a opção Project Properties: será exibida a janela Project Properties:

A caixa de combinação Startup Object contém os objetos que podem ser configurados como Startup: note que só são exibidos os formulários contidos no projeto (além da sub Main, que estudaremos mais adiante);

Indique na combo qual será o objeto de abertura e clique em Ok.

Menus

A barra de menus é um dos mais importantes componentes de um aplicativo Windows. O VB dispõe de uma poderosa e prática ferramenta para o projeto de menus: o Editor de Menu (Menu Editor – veja a figura da próxima página). Com ele, em poucos passos você pode criar menus que funcionam exatamente como nos aplicativos mais conhecidos.

Existem algumas regras de padronização que devem ser seguidas na criação de menus para os aplicativos Windows:

O usuário já sabe o que esperar em determinados menus, quando presentes em um aplicativo. No menu Editar, por exemplo, ele espera encontrar ao menos as opções Copiar, Recortar e Colar. Outros menus também possuem opções padronizadas: Abrir, Salvar e Imprimir são freqüentemente encontradas no menu Arquivo;

As opções da barra de menus devem permitir o acesso através da combinação Alt+Letra Sublinhada;

Para as opções mais comuns é interessante que existam teclas de atalho. Mas, cuidado: algumas teclas de atalho também são padronizadas no Windows. Por exemplo: Ctrl+C é o atalho para copiar algo para a área de transferência, não importa qual seja o aplicativo;

Itens relacionados devem ser agrupados e separados dos demais por barras separadoras. Exemplo: as opções Localizar, Localizar Próximo e Substituir do menu Editar do WordPad;

Microsoft Visual Basic 651

A janela Menu Editor

Quando o item leva o usuário a uma caixa de diálogo, seu rótulo deve ser seguido de reticências (...). Quando leva a um submenu, deve ser seguido de uma seta ;

Itens selecionáveis, como a opção Régua do menu Exibir do WordPad, devem ser precedidos pela marca de seleção quando estiverem ativos;

Quando algum pré-requisito para o funcionamento de uma opção não estiver sendo cumprido, ela deve aparecer desabilitada. Por exemplo: se não houver texto selecionado, as opções Copiar e Recortar não devem estar disponíveis.

Para acessar a janela Menu Editor, o formulário deve estar selecionado. Escolha então a opção no menu Tools do VB, acione a combinação Ctrl+E ou escolha o botão Menu Editor na barra de ferramentas.

Vamos descrever alguns componentes da janela Menu Editor:

Caption: neste campo deve ser digitado o rótulo que aparecerá na barra de menus ou dentro do menu: corresponde à propriedade Caption de um controle;

Name: neste campo informamos o valor da propriedade Name do menu; ShortCut: permite a definição de uma tecla de atalho; Checked: permite a definição da propriedade Checked (marca de seleção); Enabled e Visible: o mesmo que as propriedades Enabled e Visible dos controles; Index: quando o menu fizer parte de uma matriz, permite indicar seu índice;

Botões Up e Down: permitem a movimentação do menu selecionado para cima ou para baixo, mudando sua posição na barra;

Botões Left e Right: permitem a mudança de nível do menu, ou seja: se a opção aparecerá na barra de menu ou se fará parte de um submenu. Podem ser criados até quatro níveis;

Microsoft Visual Basic 652

Botão Next: move a seleção para a próxima linha, se houver. Se não houver, insere uma nova linha no final da lista;

Botão Insert: insere uma nova linha acima da selecionada; Botão Delete: exclui da lista a linha selecionada.

O Aplicativo Bibliotecário

Para exercitar os vários assuntos que veremos nessa lição, vamos iniciar a construção no nosso sistema, que chamaremos de Bibliotecário:

1.Inicie um novo projeto; 2.Remova a formulário Form1 do projeto;

3.Adicione ao projeto um formulário MDI, e altere suas seguintes propriedades:

Name: frmBiblio Caption: Bibliotecário – Controle de Acervo de Bibliotecas BackColor: Amarelo Claro (ou outra de sua preferência – mas não escolha uma cor muito forte para não ofuscar o coitado do usuário); Icon: Writing\Books01.ICO; WindowState: 2 - Maximized

4. Configure-o como Startup Object. Aproveite que já está na janela Project Properties e altere também a propriedade Project Name para Bibliotecário. Essa propriedade equivale a um rótulo a ser exibido na janela Project para identificação do projeto, mas sua definição não é obrigatória;

5.Salve o formulário com o nome de FrmBiblio e o projeto como Bibliotecario; 6.Abra a janela Menu Editor;

7. Defina os campos para a primeira opção do nosso menu: Caption = &Cadastros e Name = mnuCadastros;

8.Clique no botão Next para passar para a próxima linha:

9.O próximo item é a opção Livros do menu Cadastros:

Caption: &Livros Name: mnuCadLivros

Microsoft Visual Basic 653

10. Clique no botão Ok e veja o resultado. Note que as opções estão no mesmo nível, pois a opção Livros está ao lado de Cadastros. O correto seria que Livros fosse um item do menu Cadastros;

1.Acione novamente o Menu Editor e selecione a linha que contém o menu Livros; 12.Clique na seta para a direita. O nível do menu Novo foi alterado, e agora está abaixo do menu Cadastro:

13.Clique no botão Ok e observe se o resultado agora é o esperado;

14.Inclua mais dois três opções ao menu Cadastros:

Caption: &UsuáriosName: mnuCadUsuarios Caption: &Categorias Name: mnuCadCategorias Caption: &EditorasName: mnuCadEditoras

Microsoft Visual Basic 654

15.Vamos incluir agora uma barra separadora. Selecione a opção Editoras e clique no botão Next;

16. Indique para a propriedade Caption um hífen (-), e altere Name para BS1 (de Barra Separadora nº 1). Clique em Next;

17.Para terminar o menu Cadastros, vamos incluir nele uma opção para sair do sistema:

Caption: &Sair do Sistema Name: mnuSair

18.Clique no botão Ok e confira o menu. Faça correções, se necessário; 19.Adicione as demais opções do menu de acordo com a tabela abaixo:

Caption: Name: &Operações mnuOperacoes

&Empréstimo de LivrosmnuEmprestimos
&Devolução de LivrosmnuDevolucoes
&Livros mnuConLivros
&Todos mnuConTodos
- BS2
por A&utor mnuLivrosPorAutor
por &Categoria mnuLivrosPorCategoria
por E&ditora mnuLivrosPorEditora
- BS3
&Emprestados mnuConEmprestados
Em &Atraso mnuConAtrasados
&Usuários mnuConUsuarios
&Categorias mnuConCategorias
&Editoras mnuConEditoras
&Livros mnuRelLivros
&Usuários mnuRelUsuarios
&Categorias mnuRelCategorias
&Editoras mnuRelEditoras
&Sobre o BibliotecáriomnuSobre

C&onsultas mnuConsultas &Relatórios mnuRelatórios &? mnuHelp

20. Verifique o funcionamento do menu. Note que na barra devem constar cinco opções: Cadastros,

Operações, Consultas, Relatórios e ?. Além disso, nos menus Consultas e Relatórios, o item Livros leva a submenus. Seu formulário agora deve estar parecido com o do exemplo a seguir:

(Parte 7 de 7)

Comentários