Академический Документы
Профессиональный Документы
Культура Документы
Autor:
ALONCIO DE CARVALHO SANTOS
ndice i
ndice
Apresentao _______________________________________1 O que o Visual Basic ? ___________________________1 Vantagens do Visual Basic _________________________1 Edies do Visual Basic ___________________________2
V I S U A L B A S I C
Objetivos do Curso _______________________________2 Introduo _________________________________________3 Ambiente de Trabalho do Visual Basic________________3 Terminologia do Visual Basic_______________________5 Projetos e Executveis do Visual Basic _______________6 Passos para a criao de uma aplicao em VB _________6 Tcnicas de Programao __________________________7 Fundamentos _______________________________________8 Objetos ________________________________________8 Nomeando Objetos _______________________________9 Propriedades ___________________________________10 Mtodos ______________________________________11 Eventos _______________________________________12 Controles Bsicos _______________________________13 Manipulando Cdigo e Formulrios ___________________17 Trabalhando com Cdigo _________________________17 Trabalhando com Formulrios _____________________22 Exibindo e Escondendo Formulrios ________________22 Formulrios Modal ______________________________23 Configurando o Startup Form ______________________23 Encerrando sua Aplicao_________________________24
ndice ii
Variveis _________________________________________26
ndice
O que uma Varivel? ___________________________26 Tipos de Variveis do Visual Basic _________________26 Nomeando Variveis_____________________________27
V I S U A L B A S I C
Declarao_____________________________________28 Converses ____________________________________31 Manipulando Strings_____________________________32 Manipulando Datas ______________________________32 Procedures ________________________________________35 Procedures_____________________________________35 Procedures de Evento ____________________________35 General Declarations_____________________________35 Sub Procedures _________________________________35 Function Procedures _____________________________36 Passagem de Parmetros __________________________36 Controlando a Execuo_____________________________38 Estruturas de Seleo ____________________________38 Estrutura de Repetio ___________________________40 Depurao de Aplicativos ____________________________45 Tipos de Erros __________________________________45 Ferramentas de Depurao ________________________45 Break Mode____________________________________46 Debug Window _________________________________46
ndice iii
Controles _________________________________________48
ndice
V I S U A L B A S I C
CommonDialog _________________________________52 Indexando Controles _____________________________53 Projetando Menus _______________________________54 Acessando Banco de Dados __________________________57 Conceitos Bsicos _______________________________57 Acessando Dados com o Visual Basic _______________57 Trabalhando com o Data Control ___________________58 RecordSet _____________________________________59 Usando SQL ___________________________________60 Data Form Designer _____________________________61 Manipulando Registros ___________________________61 Detalhes Finais ____________________________________65 Projetando sua Interface __________________________65 Desenvolvimento em 16 e 32 Bits __________________66 Distribuindo seus Aplicativos ______________________66 Glossrio _________________________________________68
ndice iv
1
APRESENTAO
Veremos neste captulo: o que Visual Basic conhecer as edies do Visual Basic objetivos do Curso
Aloncio de C. Santos
pgina 1
Enterprise Edition
OBJETIVOS DO CURSO
O Curso Fundamentos do Visual Basic tem por objetivos bsicos: Manipular o ambiente de desenvolvimento. Conhecer conceitos de orientao evento, propriedades e mtodos. Conhecer os conceitos bsicos de programao no VB como: declarao e escopo de variveis, subrotinas, funes, estruturas de controle. Desenvolver e depurar aplicaes simples, usar controles padres. O Curso de Fundamentos do Visual Basic exige, como prrequisito, o conhecimento bsico de Lgica de Programao (variveis, estruturas de controle, algoritmos estruturados) sendo recomendvel, portanto, noes em alguma linguagem de programao.
Questes
1. Porque utilizar o Visual Basic como linguagem de programao ? Para quais plataformas podemos desenvolver nossos aplicativos com o Visual Basic ? 2. Se eu desejo desenvolver aplicativos para serem executados no Windows 3.1, qual edio do Visual Basic devo adquirir?
Aloncio de C. Santos
pgina 2
2
INTRODUO
Barra de Ferramentas
Formulrio
Janela de Projeto
Aloncio de C. Santos
pgina 3
Properties Window A janela de propriedades lista as propriedades de um ou mais objetos selecionados (controles ou formulrios), (janela de estas propriedades podem ser alteradas quando o propriedades) formulrio o controle criado. Code Window (janela de cdigo) Toolbar (barra de ferramentas) A janela de cdigo aonde o cdigo do o seu projeto pode ser exibido ou editado. A barra de ferramentas facilita o trabalho, contendo botes que servem de atalhos para os comandos mais comuns no desenvolvimento de projetos.
Quando voc inicia o Visual Basic, um projeto default (padro) criado com um formulrio genrico denominado Form1. A Caixa de Ferramentas exibir as ferramentas (controles) padro.
Caso no estejam sendo mostrados alguns destes elementos, voc pode exibi-los, atravs do menu View escolhendo o elemento desejado (Project, Properties, Toolbox, etc)
Aloncio de C. Santos
pgina 4
Forms (formulrios) Controls (controles) Properties (propriedades) Methods (mtodos) Events (eventos)
Como usaremos a verso do Visual Basic em ingls (pois este no possui verso em lngua portuguesa), diversos termos sero mencionados como no software e outros sero citados na apostila j traduzidos, quando isto for apropriado. Noes de Ingls so teis ao trabalhar com o Visual Basic, uma vez que seus menus, mensagens e principalmente sua Ajuda toda exibida em ingls.
Aloncio de C. Santos
pgina 5
Aloncio de C. Santos
pgina 6
Questes
Procedural
de
Programao
Aloncio de C. Santos
pgina 7
3
FUNDAMENTOS
OBJETOS
No Visual Basic um objeto algo que voc controla. Um objeto pode ser um formulrio em sua aplicao, qualquer controle (caixa de texto, boto de comando, imagem, etc) e at mesmo classes de objetos. Para controlar um objeto usamos suas Propriedades (caractersticas) e seus Mtodos (aes que podem ser exercidas pelos objeto). Para compreender melhor os conceitos de Objeto, Propriedades e Mtodos, vamos exemplific-los atravs de uma comparao: Um rdio seria um Objeto. Este rdio possuiria Propriedades como tamanho, cor, nome. Os Mtodos seriam as aes a serem tomadas, como aumentar volume, mudar de estao, desligar. Cada objeto possui seus prprios Eventos, Propriedades e Mtodos, sendo alguns destes comuns a diversos objetos. Como o Visual Basic possui um ambiente grfico de desenvolvimento, para criarmos controles em um formulrio basta selecionar o controle desejado na Caixa de Ferramentas e desenh-lo no formulrio (arrastando com o mouse). Para selecionar um controle, selecione a ferramenta Ponteiro do Mouse e clique no controle desejado ou arraste em sua rea. Voc pode selecionar vrios controles ao mesmo tempo, para mov-los ou exclui-los.
Aloncio de C. Santos
pgina 8
Aloncio de C. Santos
pgina 9
Voc pode tambm obter o valor de uma propriedade, atribuindo tal valor a uma varivel em run time. Sintaxe: Varivel = Objeto.Propriedade Exemplo:
atribui o contedo do controle txtNome a uma varivel strNomeCliente = txtNome.Text
Algumas propriedades podem ser alteradas somente em design time e outras so apenas para leitura em run time.
Aloncio de C. Santos
pgina 10
Aloncio de C. Santos
pgina 11
Cada objeto no Visual Basic tem seus prprios eventos. Os eventos acima listados no se aplicam a todos os objetos. Explorar os Eventos disponveis para cada objeto parte importante no aprendizado do Visual Basic.
Aloncio de C. Santos
pgina 12
LABEL As Labels (Etiquetas) so textos que no podem ser alterados pelo Usurio, como etiquetas indicando a finalidade de uma textbox, mas podem ser alterados via programao. As Labels so normalmente utilizadas para exibir um nome de um campo que o usurio deve preencher. Para se criar um atalho para um campo, no estilo ALT + Letra sublinhada, devemos colocar um & (e comercial) antes da letra desejada na propriedade Caption.
Aloncio de C. Santos
pgina 13
1. Cite 4 exemplos de Objetos no Visual Basic. 2. Defina o que um evento? Cite 4 Eventos.
Questes
3. Por que devemos utilizar uma nomenclatura padronizada para objetos, variveis, etc? 4. Como posso alterar em Design Time e em Run Time o texto exibido em uma textbox e em um label ?
Aloncio de C. Santos
pgina 14
(continuao) Exercci o
Label de Titulo
Caption = Entre com seu nome e sua senha Name = lblTitulo
Label Nome
Caption = Nome: Name = lblNome
Label Senha
Caption = Senha: Name = lblSenha
(continua)
Aloncio de C. Santos
pgina 15
Boto Cancelar
Name = cmdCancelar Caption = &Cancelar Cancel = True
3. Pressione o boto direito do mouse sobre o Boto OK, no menu de contexto escolha a opo View Code e digite o seguinte cdigo:
MsgBox Seu nome & txtNome.Text & _ sua senha & txtSenha.Text
4. Pressione o boto direito do mouse sobre o Boto Cancelar, no menu de contexto escolha a opo View Code e digite o seguinte cdigo:
End
5. Salve o projeto com as seguintes definies: Diretrio de trabalho: C:\VB40FUND\CAP03 Nome do Formulrio: frmLogin.frm Nome do projeto: Login 6. Execute o programa pressionando a tecla F5 ou no menu Run escolha a opo Start.
Aloncio de C. Santos
pgina 16
4
MANIPULANDO CDIGO E FORMULRIOS
No exemplo anterior, ao omitirmos a propriedade Caption na coordenada Y, o Visual Basic assume uma propriedade padro para cada controle, que no caso da label a Caption.
Aloncio de C. Santos
pgina 17
Procedure Box
Split Bar
MDULOS DE CDIGO Os mdulos de cdigo podem conter cdigo que comum a vrios formulrios na sua aplicao. O cdigo Pblico por padro, o que quer dizer que ele compartilhado por todos outros itens do seu projeto. Mdulos de cdigo no podem conter Procedures de Evento pois eles no tem objetos. Os mdulos de cdigo so armazenados como arquivos de extenso .BAS. EDITANDO CDIGO Os principais recursos de edio de texto do ambiente Windows esto disponveis na janela de cdigo, tais como seleo, utilizao rea de Transferncia e outros. Para aumentar a legibilidade do cdigo, devemos usar alguns recursos de programao que so simples, porm eficientes. Ao escrevermos um programa, devemos ter em mente que este dever ser o mais claro e bem documentado possvel, facilitando desta forma tambm sua manuteno.
Aloncio de C. Santos
pgina 18
Os Comentrios servem para facilitar a vida do programador documentando o seu cdigo. Os comentrios so precedidos por uma Aspas Simples () ou um comando REM. Veja o exemplo anterior acrescido de comentrios.
Procedimento para testar um valor e exibir uma Mensagem Private Sub AnalisaValor(Valor) If Valor = 0 Then ElseIf Valor < 0 Then zero Msgbox Valor Negativo Else zero MsgBox Valor Positivo Endif End Sub Fim do procedimento AnalisaValor Seno Valor maior que Se o valor for Zero ento Exibe mensagem Se o valor for menor que Msgbox Valor igual a Zero
O caracter de continuao de linha o sublinhado (_) que permite que uma linha de cdigo possa ser dividida em vrias partes para melhor exibio na tela. Veja o exemplo:
iResposta = MsgBox(Deseja continuar operao, _ vbExclamation + vbYesNo, Sistema)
Aloncio de C. Santos
pgina 19
Valor 0 1 2 3 4 5 OK
Exibe Botes OK e Cancelar Abortar, Repetir e Ignorar Sim, No e Cancelar Sim e No Repetir e Cancelar
Ao executarmos a funo MsgBox, esta ir retornar um valor correspondente ao boto de comando clicado, segundo as constantes: Boto OK Abortar Ignorar No Constante vbOK vbAbort vbIgnore vbNo Boto Cancelar Repetir Sim Constante vbCancel vbRetry vbYes
Aloncio de C. Santos
pgina 20
SOLICITANDO DADOS (FUNO INPUTBOX) A funo InputBox solicita que o Usurio digite uma informao, como por exemplo um nome ou um valor. Sintaxe: Varivel = InputBox(mensagem[, ttulo][, default]) mensagem ttulo default Exemplo
strNacional = InputBox(Digite sua Nacionalidade, _ Nacionalidade, brasileira)
o texto da sua mensagem. o ttulo que ser exibido na caixa de dilogo. o valor padro que ser exibido como sugesto.
Aloncio de C. Santos
pgina 21
Mtodo Eventos
Aloncio de C. Santos
pgina 22
FORMULRIOS MODAL
Um formulrio Modal no deixa que o usurio passe de um formulrio para outro na mesma aplicao. A maioria das caixas de dialogo no Visual Basic so modais. Quando um formulrio modal exibido, a aplicao gera um beep caso o usurio clique fora do formulrio modal. Um formulrio modeless (que o padro do VB ao usar o mtodo Show) permite ao usurio passar de um formulrio para outro. Exemplos de formulrio modeless no Ambiente de Desenvolvimento do Visual Basic so as janelas Project, Properties, Code e Formulrios.
Private Sub cmdSobre_Click() frmSobre.Show vbModal exibe o formulrio como modal End Sub
Aloncio de C. Santos
pgina 23
Quando o usurio escolhe uma opo que descarregue um formulrio, para este formulrio gerado um evento UNLOAD(cancel as integer) onde ns podemos tratar o evento e podemos cancelar tal evento, perguntando se o usurio deseja realmente fechar o formulrio. Veja o exemplo a seguir:
Sub Form_Unload(Cancel as Integer) If MsgBox(Deseja fechar este formulrio?,_ vbYesNo,Fechar) = vbNo Then Cancel = True End if End Sub
1. O que uma Procedure de Evento? Por que uma procedure de evento no pode estar contida em um mdulo standard?
Questes
2. Comente sobre as caractersticas da funo MsgBox. 3. Quando usar o comando LOAD e o mtodo SHOW para exibir formulrios? 4. Quando devemos usar um formulrio Modal?
Aloncio de C. Santos
pgina 24
1. Abra, na pasta C:\VB4FUND\CAP04, o projeto Saldo.vbp Exercci o 2. Insira e construa o formulrio abaixo, usando as convenes de nomenclatura de objetos estabelecida
3. Para o boto Calcular Saldo, crie um cdigo que exiba em uma caixa de mensagem a diferena entre a receita e a despesa. 4. Para o boto Limpar Valores, crie um cdigo que apague o contedo das caixas de texto receita e despesa. 5. Para o boto Sair, crie um cdigo que encerre o programa. 6. Crie um novo formulrio, como Caption = Sobre, no qual exiba seu nome e contenha um boto OK, que o descarregue da memria. 7. Para o boto Sobre, exiba o formulrio Sobre, criado no item anterior, de maneira Modal. 8. Salve os formulrios criados e tambm seu projeto Saldo.vbp.
Aloncio de C. Santos
pgina 25
5
VARIVEIS
Aloncio de C. Santos
pgina 26
Aloncio de C. Santos
pgina 27
Pblico
Aloncio de C. Santos
pgina 28
DECLARAO IMPLCITA E EXPLCITA Podemos usar uma varivel sem declar-la, simplesmente atribuindo um valor, o que chamamos de declarao implcita. Uma varivel declarada implicitamente ter escopo Local e ser do tipo Variant.
Temp = 20
Devemos evitar o uso de declaraes implcitas, declarando cada varivel. Para obrigar a declarao de todas as variveis, no menu Tools escolha a opo Options e na guia Environment clique na caixa de seleo Require Variable Declaration. Ser includo, automaticamente, em seu cdigo (na General Declaration) a definio Option Explicit. Usando a declarao explcita, o VB ir verificar a sintaxe das variveis automaticamente, acusando erros de digitao VARIVEIS STATIC Variveis do tipo Static so variveis que no perdem seu valor quando o procedimento que as criou terminar. Quando o procedimento for chamado mais uma vez ela manter o valor da chamada anterior.
Static iCounter As Integer Static strNome As String
Aloncio de C. Santos
pgina 29
CONSTANTES PR-DEFINIDAS DO VISUAL BASIC As Constantes Pr-definidas do Visual Basic so valores incorporados linguagem, representados por constantes iniciadas por vb. Veja os exemplos: vbModal vbCascade Exemplo
iConfirma = MsgBox(Confirma Operao? , vbYesNo + _ vbCritical + vbDefaultButton2 If iConfirma = vbNo Then Msgbox Operao Cancelada, vbExclamation Else Msgbox Operao Confirmada, vbExclamation End if
vbMaximized vbExclamation
vbYesNo vbLeftButtons
vbNormal vbCancel
Aloncio de C. Santos
pgina 30
Text1.Text = CStr(HScroll1.Value) txtPixels.Text = CStr(CInt(txtPixels)+1) sngMoney = 1.22 curNewMoney = CCur(iMoney) MyDouble = 437.324 MyString = CStr(MyDouble) Valor single Valor convertido em moeda ' MyDouble um Double. ' MyString contm "437.324".
Aloncio de C. Santos
pgina 31
Descrio Retorna iCont letras de strText a partir da esquerda Retorna iCont letras de strText a partir da direita Retorna iCont letras de strText a partir da posio iStart Retorna strText em maisculas Retorna strText em minsculas Retorna o tamanho de strText
MANIPULANDO DATAS
As datas e horas so armazenadas internamente como nmeros. Isto permite que voc faa clculos com as datas, tais como adicionando dias ao dia de hoje para ter uma nova data num futuro. O Visual Basic prove funes para retorno da data e hora atual, e para gerar datas baseado em strings ou outra expresso.
Aloncio de C. Santos
pgina 32
Funo Date Time Now Hour, Minute, Second Day, Month, Year DataDiff Retorna a data atual Retorna a hora atual
Descrio
Retorna a data e hora atual Retornam Hora, Minuto e Segundo atual Retornam Dia, Ms e Ano de uma data qualquer Retorna a diferena entre duas datas
MsgBox Data atual: & Date MsgBox Dia de Hoje: & Day(Date) MsgBox Ms Atual: & Month(Date) MsgBox Ano Atual: & Year(Date)
Questes
2. Quais os nveis de escopo para declarao de variveis? 3. O que so constantes? E o que so constantes pr-definidas?
Aloncio de C. Santos
pgina 33
Primeira Parte Exercci o 1. Abra, na pasta C:\VB4FUND\CAP05\CONVERTE, o projeto converte.vbp 2. No evento KeyUp de cada uma das caixa de texto, codifique a frmula de converso entre as unidades: 1 Polegada = 2,54 centmetros 1 P = 30,4 centmetros 3. Para formatar os valores numricos calculados, utilize a funo Format, cujo cdigo de formatao : ##0.0000 4. Para evitar problemas com valores no numricos, verifique se o contedo digitado numrico (funo IsNumeric), antes de efetuar os clculos 5. No boto Limpar Valores, criar o cdigo para limpar as caixas de texto. 6. Salve o projeto na pasta C:\VB40FUND\CAP05\CONVERTE Segunda Parte 1. Abra, na pasta C:\VB4FUND\CAP05\DATAS, o projeto Datas.vbp 2. Crie uma linha de cdigo que faa a caixa de texto Hoje receber o valor da data de hoje quando o programa for iniciado 3. Crie um cdigo para que sempre que o formulrio se tornar ativo a caixa de texto txtDataIni receba o foco 4. Crie dois procedimentos de eventos para as caixas de texto Data Inicial e Data Final para que quando uma delas for alterada a caixa de texto Diferena seja limpa 5. Para o boto calcular use a funo DateDiff para calcular a diferena das datas entradas e atribuir o resultado a caixa de texto Diferena 6. Salve o projeto na pasta C:\VB40FUND\CAP05\DATAS
Aloncio de C. Santos
pgina 34
6
PROCEDURES
PROCEDURES
Procedures so blocos de cdigo que escrevemos, visando modularizar nossos programas, tornando-o mais organizado, reutilizvel e de manuteno mais simples.
PROCEDURES DE EVENTO
Uma procedure de evento (event procedure) contm linhas de cdigo que so acionadas somente quando ocorre tal evento. Cada controle possui uma srie de eventos, que so disponibilizados pelo VB, atravs de procedures de evento.
GENERAL DECLARATIONS
A General Declaration uma rea disponvel em Formulrios e Mdulos onde podemos codificar procedures que sero genricas para o formulrio ou mdulo. Usamos tambm para declararmos constantes e variveis dentro de seu escopo.
SUB PROCEDURES
So procedimentos independentes que executam comandos, no retornando valor nenhum. Veja o exemplo de uma sub procedure a seguir:
Sub AbreArquivo() Abre um arquivo para leitura Open LogFile.Log For Input as #1 End Sub
Aloncio de C. Santos
pgina 35
Exemplo 2:
Function CalculaComissao (Vendas As Single,_ Comissao as Single) As Single Dim sngRetorno As Single sngRetorno = (Vendas * Comissao) / 100 CalculaComissao = sngRetorno End Function
PASSAGEM DE PARMETROS
Parmetro um valor que passado uma Sub ou uma Function para que seja executado um processamento com este valor. Como visto no exemplo anterior, a funo CalculaComissao recebe dois parmetros: Vendas e Comissao que serviro de base para o clculo da comisso de um vendedor. Quando desejarmos passar um parmetro para um procedimento, devemos declar-lo juntamente com a declarao do procedimento, dentro dos parnteses e separados por vrgulas.
Function CalculaComissao (Vendas As Single,_ Comissao as Single) As Single
Aloncio de C. Santos
pgina 36
Questes
2. Cite exemplos de procedimentos que caracterizariam Sub procedures e Function procedures. 3. Por que passarmos parmetros a uma procedure?
1. Abra o projeto Temp na pasta C:\VB40FUND\CAP06 Exercci o 2. Crie um mdulo novo e nele crie uma sub para centralizar um formulrio qualquer 3. Neste mesmo mdulo crie duas funes para converso entre temperaturas Fahrenheit e Celsius usando as seguintes frmulas: Temp.Fahrenheit = Temp.Celsius * (9 / 5) +32 Temp.Celsius = (Temp.Fahrenheit - 32) * (5 / 9) 4. No boto Converter para Celsius crie um cdigo que converta o valor digitado na caixa de texto da temperatura e defina o foco para o boto Converter para Fahrenheit 5. No boto Converter para Fahrenheit crie um cdigo que converta o valor digitado na caixa de texto da temperatura e defina o foco para o boto Converter para Celsius 6. No boto Sair coloque o cdigo para finalizar a aplicao 7. Salve o projeto
Aloncio de C. Santos
pgina 37
7
CONTROLANDO A EXECUO
ESTRUTURAS DE SELEO
Estruturas de Seleo permitem a execuo de um bloco de cdigo de acordo com o resultado de um teste lgico (comparao). IF...THEN...ELSE Sintaxe: If teste lgico Then [comandos...] [ElseIf teste lgico Then [comandos...] ] [Else [comandos...] ] End If Exemplo:
If sVendas > 50000 Then sComisso = 0.11 ElseIf sVendas > 15000 Then sComisso = 0.07 ElseIf sVendas > 8000 Then sComisso = 0.04 Else sComisso = 0.02 End If vendas menores ou iguais a 8000 vendas maiores que 8000 vendas maiores que 15000 vendas maiores que 50000
Aloncio de C. Santos
pgina 38
A estrutura Select Case mais apropriada para verificar a igualdade de diversos valores discretos, enquanto a estrutura If...Then...Else mais indicada para testes lgicos de expresses. Podemos inserir uma estrutura de seleo dentro de outra estrutura de seleo para manipularmos lgicas mais complexas.
Aloncio de C. Santos
pgina 39
Aloncio de C. Santos
pgina 40
Aloncio de C. Santos
pgina 41
Questes
2. Podemos usar estruturas de controles dentro de outras estruturas de controle? 3. Para que serve o comando Exit Do?
Aloncio de C. Santos
pgina 42
2. Quando for selecionado o relatrio anual devem ser desabilitados os seguintes controles: Caixa de combinao ao lado do boto de opo Mensal Caixas de texto Inicio e Fim para o relatrio de perodo 3. Quando for selecionado o relatrio mensal devem ser desabilitados os seguintes controles: Caixa de texto ao lado do boto de opo Anual Caixas de texto Inicio e Fim para o relatrio de perodo O contedo da caixa de combinao ser uma seqncia numerada de 1 at 12 representando os meses 4. Quando for selecionado o relatrio mensal devem ser desabilitados os seguintes controles Caixa de texto ao lado do boto de opo Anual Caixa de combinao ao lado do boto de opo Mensal (continua)
Aloncio de C. Santos
pgina 43
(continuao) 5. Quando for pressionado o boto de imprimir o programa dever exibir, numa caixa de mensagem, para cada cpia desejada as seguintes mensagens de acordo com o tipo de relatrio pedido: Anual: Imprimindo <Cpia Atual> pgina de <Total de cpias> do Relatrio Anual de <Ano> Mensal: Imprimindo <Cpia Atual> pgina de <Total de cpias> do Relatrio do ms de <Ms por extenso> Perodo: Imprimindo <Cpia Atual> pgina de <Total de cpias> do Relatrio do Perodo de <Data inicial> e <Data Final> 6. Salve o projeto e o formulrio com o nome de Imprime.vbp na pasta C:\VB40FUND\CAP07
Aloncio de C. Santos
pgina 44
8
DEPURAO DE APLICATIVOS
TIPOS DE ERROS
Sintaxe Run-time Lgicos
so erros provocados por erros de digitao de comandos so erros durante a execuo do programa so erros causados por lgicas incorretas
FERRAMENTAS DE DEPURAO
Breakpoint um local no cdigo onde o Visual Basic para a execuo do programa e entra em break mode. Via teclado, pressione a tecla F9. Exibe o valor atual de uma expresso sobre o cursor ou que esteja selecionada. Lista todas as chamadas de funes durante a execuo da aplicao. Executa passo a passo o contedo de uma procedure, Via teclado, pressione a tecla F8. Roda o prximo cdigo executvel, passando atravs de cada linha de cdigo que se segue. Se o cdigo chamar uma procedure definida pelo usurio, esta procedure ser executa diretamente. Inicia a sua aplicao Entra em Break Mode Termina a sua aplicao
Aloncio de C. Santos
pgina 45
DEBUG WINDOW
A Debug Window dividida em duas partes, a parte superior exibe as variveis que foram adicionadas na janela com o comando Add Watch para monitorar os valores durante a execuo do programa. Na parte inferior temos a janela imediata, onde podemos exibir variveis, alterar seu valor e chamar funes do prprio Visual Basic .
Watch Pane
Immediate Pane
Para acompanhar o contedo de uma varivel voc deve fazer: 1. No menu Tools selecione a opo Add Watch. 2. Na caixa de texto Expression digite a varivel desejada. 3. Pressione o boto de OK. 4. Visualize seu contedo em Watch Pane.
Aloncio de C. Santos
pgina 46
1. Explique os tipos de erros que podem ser gerados no VB? 2. Como podemos entrar em Break Mode?
Questes
1. Abra um projeto criado anteriormente Exercci o 2. Execute o aplicativo, utilizando as diversas ferramentas de depurao descritas neste captulo 3. Encerre seu projeto
Aloncio de C. Santos
pgina 47
9
CONTROLES
CONTROLES PADRES
Controle Descrio Pointer (ponteiro)- Este boto no desenha nenhum controle, ele utilizado para redimencionar ou selecionar controle j criados PictureBox (figura) - Use este controle para a exibio de imagens, tanto decorativas como ativas), como container para mtodos grficos ou container para outros controles Label (etiqueta)- Use para exibir texto que voc no deseja que o usurio altere. Como o ttulo de um grfico TextBox (caixa de texto)- Use para editar um texto onde o usurio pode entrar com um texto ou alter-lo Frame (moldura) - Use este controle para criar uma diviso grfica ou funcional para agrupar os controle. Para agrupar os controle, crie primeiro a frame depois desenhe os controle dentro dela CommandButton (boto de comando) - Use este controle para criar um boto que quando pressionado executa uma ao CheckBox (caixa de verificao) - Use este controle para que o usurio possa rapidamente escolher se uma informao verdadeira ou falsa ou exibir mltiplas escolhas quando o usurio puder escolher mais de uma opo OptionButton (boto de opo) - Use dentro de um grupo com mltiplas opes de onde o usurio s poder escolher uma opo
Aloncio de C. Santos
pgina 48
Aloncio de C. Santos
pgina 49
Nota: Quando um projeto contendo um .VBX control aberto, a ao padro atualizar este controle para um .OCX se a verso .OCX do controle estiver disponvel.
Alguns custom controls so controles que s podem ser utilizados em Sistemas Operacionais de 32 bits, como o Windows 95 e Windows NT 3.51 ou superiores.
Se voc desenvolveu aplicativos na verso 3.0 do Visual Basic, usando controles personalizados de terceiros, e quer migrar seus aplicativos, verifique com seu fornecedor de controles .VBX se j est disponvel uma verso atualizada (.OCX) do controle para ser utilizado no Visual Basic 4.0.
Aloncio de C. Santos
pgina 50
A procedure abaixo ativada quando ocorrer uma mudana no diretrio selecionado, atualizando a lista de arquivos exibida:
Sub dirDirectory_Change() filFileList.Path = dirDirectory.Path End Sub
A procedure abaixo utiliza o caminho de diretrio e o arquivo selecionado para exibir uma figura:
Sub filFileList_Click() Image1.Picture = LoadPicture(dirDirectory.Path _ & \ & filFileList.FileName) End Sub
Para inserir caixas de dilogo de Abrir, Salvar, Fontes e outras, em nossos aplicativos, podemos usar o controle CommonDialog, que veremos a seguir
Aloncio de C. Santos
pgina 51
Para exibir uma caixa de dilogo, utilizamos os mtodo do CommonDialog: ShowColor, ShowFont, ShowOpen, ShowSave, ShowHelp e ShowPrinter. Exemplo:
Sub cmdAbrirFigura() CommonDialog1.DialogTitle = Escolha um arquivo CommonDialog1.Filter = Figuras(*.bmp) *.bmp CommonDialog1.ShowOpen If CommonDialog1.FileName Like *.BMP Then image1.Picture = LoadPicture(CommonDialog1.FileName) Else MsgBox Escolha um arquivo *.bmp , vbOKOnly + _ vbExclamation End If End Sub
Aloncio de C. Santos
pgina 52
+ CDbl(txtOp2)
- CDbl(txtOp2)
* CDbl(txtOp2)
/ CDbl(txtOp2)
Aloncio de C. Santos
pgina 53
Item de Menu
Barra de Menus Menu Item de Menu SubMenu Menu Popup Tecla de Atalho
Barra que contm os menus de sua aplicao, localizada abaixo da barra de ttulo Contm uma lista de itens (comandos) uma opo (comando) dentro de um menu um subordinado a um item de menu um menu de contexto, que exibido no local onde o Usurio clicou uma tecla ou combinao de teclas que permite o rpido acesso a um item de menu
Aloncio de C. Santos
pgina 54
MENUS POPUP Menus pop-up so os menus de contexto, aqueles que aparecem quando pressionamos o boto direito do mouse sobre alguma rea da aplicao. Para se exibir um menu de contexto, basta utilizar o mtodo PopupMenu de um formulrio, passando para ele o nome do menu que voc deseja exibir.
Private Sub Form_MouseUp(Button As Integer, _ Shift As Integer, X As Single, Y As Single) If Button = vbRightButton Then Form1.PopupMenu mnuFormatar End If End Sub
Aloncio de C. Santos
pgina 55
1. Podemos expandir os controles disponveis no VB? 2. Para que usamos controles indexados?
Questes
2. Adicione ao formulrio um controle Timer e faa com que a propriedade Interval seja igual a 1000 3. No evento Timer altere a propriedade Caption para que seja igual a hora atual. Se a hora atual for igual ou maior hora digitada na caixa de texto e o boto de opo Ativo estiver selecionado, exiba uma caixa de mensagem com uma mensagem de alarme
Aloncio de C. Santos
pgina 56
10
ACESSANDO BANCO DE DADOS
CONCEITOS BSICOS
Banco de Dados (database) Tabela (table) Registro (record) Campo (fields) Chave (primary key)
um conjunto de informaes relacionadas, armazenadas em forma de Tabelas. Ex.: banco de dados de vendas. um conjunto de registros relativos a uma mesma entidade. Ex.: tabela de vendedores. um conjunto de campos relacionados a uma ocorrncia especfica. Ex.: registro do vendedor. uma categoria de informao armazenada em um registro. Ex.: campo Nome do vendedor. uma identificao unvoca de um registro, cujo propsito diferenci-lo dos demais. Ex.: matrcula do vendedor.
Aloncio de C. Santos
pgina 57
Por padro, o Visual Basic trabalha com banco de dados .MDB (do MS-Access, pois usa o mesmo Jet Engine), mas voc pode escolher outros como Dbase e at formato .XLS do Excel. DatabaseName normalmente o nome do arquivo de banco de dados, porm se seu banco de dados separado em diversos arquivos (caso tpico de arquivos Xbase), indique o nome do diretrio onde esto contidos tais arquivos. RecordSource normalmente indica uma tabela, mas podemos indicar uma consulta em SQL, para buscar um subconjunto dos dados de acordo que critrios que iremos estabelecer.
Aloncio de C. Santos
pgina 58
Ao trabalhar com o Data Control, voc est acessando diretamente o banco de dados, podendo manipul-lo indevidamente. Para obter maior controle sobre seus dados, usamos tcnicas mais sofisticadas de manipulao, utilizando DAO - Objetos de Acesso a Dados, que demandam maior trabalho de programao, mas oferecem maior flexibilidade (Este tpico, no faz parte do presente curso).
RECORDSET
Um RecordSet um Objeto que contm um conjunto de registros fornecidos pelo Data Control. Existem propriedades e mtodos do Data control relacionados com o RecordSet, como: Propriedades RecordSet.EOF RecordSet.Bookmark RecordSet.NoMatch Mtodos Refresh Descrio Retorna indicao de final dos registros Retorna ou define um indicador para o registro corrente Retorna TRUE se nenhum registro foi encontrado atravs do mtodo Find Descrio Reestabelece a exibio do banco de dados
RecordSet.FindFirst, Localizam um registro de acordo com um determinado FindLast, FindPrevious, critrio, posicionando-o como registro corrente. FindNext
Aloncio de C. Santos
pgina 59
O comando SELECT utilizado para gerar consultas, oferecendo vrias clusulas e sintaxes: FROM WHERE ORDER BY indica a tabela onde esto armazenados os dados especifica condies de filtragem dos dados indica a ordenao dos registros por um determinado campo
Sintaxe SELECT lista de campos FROM tabela WHERE condies ORDER BY campos
Exemplo SELECT [codigo aluno], [nome aluno] FROM alunos WHERE sexo = F ORDER BY [nome aluno] DESC
Voc pode usar o Microsoft Access para gerar a consulta e abria-la como recordsource de um Data Control
Aloncio de C. Santos
pgina 60
MANIPULANDO REGISTROS
Apresentamos a seguir as procedures bsicas de manipulao de banco de dados. INCLUINDO A procedure abaixo inclui um novo registro em branco no final do RecordSet, permitindo a entrada de um novo registro.
Private Sub cmdAdd_Click() Data1.Recordset.AddNew End Sub
Aloncio de C. Santos
pgina 61
REESTABELECER A procedure abaixo reestabelece o contedo dos controles de acordo com o contedo original dos campos do banco de dados, desprezando as alteraes que voc acabou de digitar.
Private Sub cmdRefresh_Click() Data1.Refresh End Sub
Note que voc s pode Reestabelecer os campos de um registro alterado enquanto voc no tenha navegado entre os registros, pois ao navegar as alteraes j so automaticamente salvas. MODIFICANDO E ATUALIZANDO A procedure abaixo atualiza o registro, posicionando como registro atual o registro modificado.
Private Sub cmdUpdate_Click() Data1.UpdateRecord Data1.Recordset.Bookmark = Data1.Recordset.LastModified End Sub
Aloncio de C. Santos
pgina 62
Ao encontrar a primeira ocorrncia, ser posicionada como registro corrente. Caso no seja encontrado nenhum registro de acordo com o critrio estabelecido, posiciona novamente no registro onde estava originalmente posicionado.
Questes
1. Quais as vantagens e desvantagens que voc v na utilizao do Data Control? 2. Que tipos de banco de dados podemos acessar no VB? 3. O que um RecordSet? 4. Quais so as propriedades que devemos definir para o Data Control? E para os controles relacionados em seu formulrio? 5. Por que usar SQL? Cite as principais clusulas?
Aloncio de C. Santos
pgina 63
Primeira Parte Exercci o 1. Crie com o Data Form Designer um formulrio para manipular os dados da tabela Agenda do Banco de dados Agenda.mdb que est na pasta C:\VB40FUND\CAP10 2. Salve o projeto com o nome de Agenda na mesma pasta
Segunda Parte 1. Sem o auxilio do Data Form Designer crie um formulrio para visualizar os dados da tabela de Produtos do Banco de Dados Nwind.mdb. Crie botes para Inserir novos registros, Alterar os registros e Excluir os registros 2. Salve o projeto com o nome de Produtos na pasta C:\VB40FUND\CAP10
Aloncio de C. Santos
pgina 64
11
DETALHES FINAIS
Aloncio de C. Santos
pgina 65
Aloncio de C. Santos
pgina 66
Questes
2. Podemos usar um projeto criado em uma verso anterior do Visual Basic (verso 3) nas plataformas 16 e 32 bits? Quais os problemas que poderiam ocorrer? 3. Um programador novato em VB desenvolveu em seu trabalho um aplicativo interessante, gerou um arquivo executvel deste aplicativo e levou-o para casa. Ao tentar us-lo em casa, o programa no conseguiu ser executado. O que pode ter acontecido? Qual o procedimento correto para evitar tal problema?
Aloncio de C. Santos
pgina 67
12
GLOSSRIO
code window - janela de cdigo, que permite a edio das linhas de cdigo
de seu aplicativo.
data control - controle utilizado para acesso a banco de dados. depurao - processo de verificao e correo de erros em um aplicativo. design time - projeto, momento em que desenvolvemos nossa aplicao. escopo - nvel de abrangncia, visibilidade de um objeto.
Aloncio de C. Santos
pgina 68
events - eventos, as aes reconhecidas pelo seu aplicativo, que podem ser
efetuadas pelo Usurio, por seu programa ou pelo prprio Sistema Operacional.
objeto - algo que voc pode controlar no VB, como uma varivel, um
controle, um formulrio, etc.
parmetros - so valores passados a uma procedure para que esta execute sua
lgica.
Aloncio de C. Santos
pgina 69
Properties - so caractersticas, valores que um objeto possui. Properties window - janela de propriedades, de so exibidas e alteradas as
propriedades de um objeto.
run time - execuo, o momento quando sua aplicao est sendo executada. setup wizard - aplicativo que automatiza a criao de um programa de setup,
para distribuio de seus aplicativos.
startup form - formulrio inicial, que ser carregado quando sua aplicao for
executada.
varivel - armazena em seu contedo um valor, que pode ser alterado durante
a execuo de seu programa.
Aloncio de C. Santos
pgina 70