Visual Basic 6
Visual Basic 6
Visual Basic 6
O formulrio o centro de uma aplicao grfica. com ele que o usurio interage de
modo a executar suas tarefas. Nele, voc define e posiciona os controles que
apresentaro ao usurio as opes disponveis
A Janela de Projeto ( Project Window ) uma lista usada pelo Visual Basic para
controlar que arquivos fazem parte da sua aplicao. Esta lista poder ser composta
por arquivos do tipo :
Visual Basic
Visual Basic
Adiciona um Projeto
Adiciona um Formulrio
Editor de Menu
3
Grava um Projeto
Recorta
Copia
Cola
Visual Basic
Visual Basic
Visual Basic
Objetivo do mdulo
Apresentar vrios conceitos interrelacionados que o ajudaro na transio do mundo
procedural para o mundo orientado a eventos. Este mdulo ser a base lgica utilizada no
resto do curso. Aqui, cria-se o contraste entre a programao voltada para ambiente Windows
e aquela para DOS.
Procedural
Orientada a Eventos
Programao Linear
Baseada em caracteres
Mono-tarefa
Programador tem controle do
ambiente
Objetos - So ferramentas que o Visual Basic fornece com as quais voc construir aplicaes.
Um formulrio um tipo de objeto; controles dentro do formulrio, como: botes, caixas de
texto e figuras tambm so objetos. Cada objeto possui uma lista de propriedades;
alterando-as voc estar caracterizando, criando a identidade do seu objeto. A objetos voc
pode aplicar mtodos: mostrar um formulrio o mtodo mostrar aplicado a um formulrio,
adicionar um item a uma lista o mtodo adicionar aplicado a uma lista, etc.. A objetos
6
Visual Basic
tambm acontecem eventos. Eventos so percebidos pelo sistema, e voc pode programar a
sua aplicao para que ela reaja a estes eventos.
Vimos portanto vrios conceitos importantes :
Propriedades - so as caractersticas que personalizam seu objeto. Cada objeto tem uma lista
de propriedades prpria.
Mtodos - Procedimentos fornecidos pelo Visual Basic que podem ser aplicados aos
objetos. Cada objeto possui uma lista de mtodos prpria.
Caractersticas de um mtodo :
Voc no pode criar um mtodo, o VB j os cria para voc. Mtodos somente podem ser
chamados.
No possvel ver ou alterar o cdigo de um mtodo.
Os nomes de mtodos so palavras reservadas do Visual Basic.
Sintaxe :
nome_controle.mtodo
Exemplos :
Form1.Hide
List1.AddItem
GRDAgenda.RemoveItem
Picture1.Drag
Visual Basic
Projetar a interface para o usurio, no para o sistema. - Tpico caso de criar telas diferentes
para Incluso, Alterao e Excluso ( quando, na maioria dos casos, estas trs funes
poderiam estar agrupadas em uma nica tela).
Ter em mente que agora o usurio que mantm o controle da aplicao, e no mais o
programa.
Clareza - Ter certeza de que o propsito de cada tela est bem claro para o usurio.
Esttica
A letra, normalmente utilizada em aplicaes Windows, qualquer uma Sans Serif. Ao usar
tipos de letras diferentes, cuidado para no abusar da variedade.
Visual Basic
Visual Basic
Propriedade
BorderStyle
Default
2 - Sizeable
Caption
ControlBox
Form1
True
FontName
Name
Helv
Form1
Height
Icon
4425 twips
Left
MaxButton
True
MinButton
True
MousePointer 0 Default
Top
Visible
Width
True
7485 twips
Definio / Comentrios
No padro de interface Windows, o tipo da borda
segue o seguinte padro :
Fixed Single - para caixas de dilogo no modais.
Sizeable - borda padro para qualquer tela que no
seja uma caixa de dilogo.
Fixed Double - para caixas de dilogo modais.
Ttulo da tela.
False inibe a apario do controlbox na barra de ttulo
do programa.
Tipo da letra utilizada.
Nome pelo qual o formulrio ser conhecido dentro da
aplicao.
Altura do formulrio.
cone default para o formulrio. Se este for o Startup
Form, ser o cone default da aplicao.
Distncia da margem esquerda da tela.
False inibe a apario do boto de maximizar na barra
de ttulo do programa.
False inibe a apario do boto de minimizar na barra
de ttulo do programa.
Altera o formato do mouse. Quando algo estiver sendo
executado, o cursor deve assumir o formato de
ampulheta (11).
Distncia da margem superior da tela.
False torna o formulrio invisvel.
Largura do formulrio.
3.2.1 Load
O comando LOAD utilizado para carregar um formulrio ou controle em memria.
Normalmente aparece dentro de event procedures de outros formulrios ou controles.
Sintaxe :
Load objeto
10
Visual Basic
3.2.2 Unload
O comando Unload utilizado para retirar um formulrio de memria. Note que ao retirar um
formulrio de memria apenas a parte grfica da tela descarregada, o cdigo continua em
memria.
Sintaxe :
Unload objeto
11
Visual Basic
3.3.2 Unload
Este evento ocorre sempre momentos antes de um formulrio ser descarregado. Nele devem ser
tratados procedimentos de finalizao de banco de dados, clculos e etc.
3.3.3 Query Unload
O Evento QueryUnload de um formulrio permite que voc consiga detectar como o Unload do
formulrio foi iniciado. Este evento possui dois parmetros : o UnloadMode e o Cancel. O
UnloadMode indica como o Unload foi iniciado. O Cancel, que inicialmente possui valor
False, se receber o valor True impede que o Unload do Formulrio continue.
UnloadMode
0
1
2
3
4
Significado
O usurio iniciou o Unload a partir do Control Menu do formulrio.
Pelo comando Unload, utilizado no cdigo.
O Usurio est saindo do Windows.
O usurio selecionou Finalizar Tarefa a partir do Gerenciador de
Tarefas.
Um formulrio MDI-filho est sendo fechado porque o MDI-pai est
sendo fechado.
Exemplo :
Sub Form1_QueryUnload ( Cancel as Integer, UnloadMode as Integer )
If UnloadMode <> 1 Then
MsgBox "Utilize o boto 'Sair' para finalizar a tarefa"
Cancel = true
12
Visual Basic
1.
2.
3.
4.
Executando a Aplicao
1. Tecle F5 ou clique na opo RUN / START do Menu
13
Visual Basic
3.3.4 Activate
Funciona como o GotFocus, mas para formulrios. O Activate ocorre a um formulrio
sempre que este passa a ser o formulrio ativo ( com foco ).
3.3.5 Deactivate
Funciona como o LostFocus, mas para formulrios. O Deactivate ocorre a um formulrio
sempre que este deixa de ser o formulrio ativo.
3.4 Principais Mtodos
3.4.1 Mtodo Hide
O mtodo Hide esconde um formulrio. O formulrio continua carregado em memria porm
no mais visvel. O metdo Hide atribui o valor False propriedade Visible do formulrio.
Se voc tentar esconder um formulrio que no esteja carregado em memria, este
carregado porm fica escondido.
Sintaxe :
[formulrio].Hide
3.4.2 Mtodo Show
O mtodo Show utilizado para mostrar um formulrio. Assim como o mtodo Hide, o
Show trabalha com a propriedade Visible do formulrio, atribuindo-lhe o valor True. Caso o
formulrio no esteja carregado em memria, o mtodo show executa automaticamente o
comando Load.
Sintaxe :
[formulrio].Show [estilo%]
Observao :
O parmetro estilo% um valor inteiro que determina se um formulrio
ser mostrado de forma modal ou no. Estes conceitos sero explicados mais adiante.
14
Visual Basic
15
Visual Basic
Visual Basic
Executando a Aplicao
24. Tecle F5 ou clique na opo Run / Start do menu.
Normalmente uma aplicao contm mais de um formulrio. Se este for seu caso, voc
precisa definir o formulrio inicial da aplicao (que por default aquele que foi criado
primeiro). Para fazer isto selecionar a opo Project Properties do menu Project. O text box
Startup Object deve conter o nome (propriedade Name) do formulrio inicial.
17
Visual Basic
O MsgBox() uma funo que produz uma caixa de mensagem pop-up. A figura abaixo
mostra uma caixa de mensagem. Como podemos ver, uma caixa de mensagem exibe um cone e
uma mensagem com pelo menos um boto de comando. O boto de comando d ao usurio uma
chance de ler a mensagem dentro da caixa e dar um clique no boto depois de concluir.
Os argumentos que voc fornece para a funo MsgBox() determinam qual cone a
funo exibir, a mensagem o nmero de botes de comando. Portanto, o programador
controla exatamente como a caixa de mensagem aparecer para o usurio. Quando a
MsgBox() for concluda, seu valor de retorno especificar em qual boto de comando o
usurio clicou. Portanto o seu programa far sempre um teste no valor de retorno da funo
MsgBox(), caso a funo tenha dois botes de comando. O programa pode ento utilizar uma
instruo If a fim de determinar o melhor curso de ao com base na seleo do boto de
comando do usurio.
O formato bsico da funo MsgBox() a seguinte:
MsgBox(mensagem)
Essa linha de comando exibir na tela:
Note que a mensagem ficou simples, ou seja, sem cone e o ttulo ficou sendo o nome do
projeto. Para melhorar a aparncia de uma MsgBox() podemos utilizar argumentos opcionais.
Esses argumentos podem ser:
Resposta=MsgBox(Mensagem, TipodoBoto + cone + BotoDefault , Titulo)
Tipo do Boto
18
Constante Identificada
VbOKOnly
VbOKCancel
VbAbortRetryIgnore
VbYesNoCancel
VbYesNo
vbRetryCancel
Visual Basic
Descrio
Boto OK
Botes OK e Cancel
Botes Abort, Retry e Cancel
Botes Yes, No e Cancel
Botes Yes e No
Botes Retry e Cancel
Voc pode utilizar tanto o valor numrico como a cosntante identificada para expecificar o
tipo do boto.
cone
Visual Basic
Boto Default
O primeiro boto de comando em uma caixa de mensagem sempre o boto de comando
padro. O Visual Basic seleciona o primeiro boto de comando ( esquerda) e, se o usurio
pressionar Enter sem dar um clique em um boto de comando, o boto de comando
selecionado ser acionado.
Voc pode alterar o boto que aparece como boto padro quando a caixa de mensagem
aparecer pela primeira vez ao adicionar um dos seguintes valores ao argumento Boto
Default:
Valor
Cosntante Identificada
Descrio
VbDefaultButton1
256
VbDefaultButton2
512
VbDefaultButton3
Exemplo de uma funo MsgBox() utilizando botes , cone e definido o segundo boto como
padro:
Resposta = MsgBox(Confirma Gravao, 4 + 32 + 256)
20
Visual Basic
Ttulo
O argumento Ttulo utilizado quando voc deseja especificar um ttulo para sua caixa de
mensagem, como por exemplo:
Resposta = MsgBox(Deseja Realmente Sair , 4 + 32 + 256 , Sair)
Cosntante Identificada
Descrio
VbOk
VbCancel
VbAbort
VbRetry
VbIgnore
VbYes
vbNo
21
Visual Basic
22
Visual Basic
Objetivo do mdulo
Mostrar como trabalhar com aplicao composta por mais de um formulrio, montando
menus. Nos mdulos anteriores, trabalhamos com um nico formulrio, basicamente, para
mostrar o funcionamento de uma aplicao Visual Basic.
Trs pontos devem ser colocados ao final do comando para indicar a existncia de uma caixa
de dilogo, quando esta existir;
Para indicar que uma opo est ativa, colocar um check-mark () ao lado da opo.
Barras de separao devem ser utilizadas para separar, visualmente, tens relacionados ou
opes perigosas para o usurio.
Teclas de acesso ou atalho devem ser definidas para todos os tens do menu. ( Pelo padro
Windows, as aplicaes devem possibilitar seu uso, mesmo quando o usurio no tem um
mouse).
23
Par
24
Visual Basic
25
Visual Basic
26
Visual Basic
27
Visual Basic
28
Visual Basic
29
Visual Basic
Caption
Name
Index
30
Visual Basic
Visual Basic
Negotiate Position
ShortCut
Checked
Enabled
HelpContextId
31
Visual Basic
Visible
WindowList
Na parte de manipulao de tens, voc define a hierarquia dos tens de menu, inclui novos tens
e apaga outros. Para qualquer uma das operaes, o item deve estar selecionado.
Manipulao de Lay-Out
Item
Funo
32
Visual Basic
Delete
33
Visual Basic
Item de Menu
Caption
Name
Arquivo
Abrir
- MNUSeparador
&Arquivo
&Abrir
MNUArquivo
MNUAbrir
Sair
&Sair
MNUSair
34
&Editar
MNUEditar
Copiar
&Copiar
MNUCopiar
Colar
Co&lar
MNUColar
35
Visual Basic
Visual Basic
4. Pressione F5 para executar o programa e verifique o encadeamento dos menus. Note que,
para que os menus executem alguma ao necessrio que o evento Click de cada objeto
menu seja codificado. No caso acima, deveramos codificar o evento click dos seguintes
objetos : MNUAbrir, MNUSair, MNUCopiar e MNUColar.
Labels
Text boxes
Frames
Command Buttons
Check Boxes
Option Buttons
Combo Boxes
List Boxes
Timers
Picture Boxes
Grid
Panel 3d
36
Visual Basic
Alm de controles, neste captulo tambm introduziremos dois conceitos muito importantes,
que so diretamente relacionados aos controles. So eles :
/
Foco
Control Arrays
37
38
Visual Basic
Visual Basic
Labels
Labels so normalmente utilizados para exibir textos que o usurio no deve modificar. Um
exemplo clssico seria o ttulo de campos em formulrios.
Propriedade
Alignment
Backcolor
BorderStyle
Caption
Font
FontSize
ForeColor
Height
Left
Name
Top
Descrio
Alinhamento do texto dentro do label.
Cor de fundo do label.
Tipo de borda do label. Recomendvel no utilizar borda.
Texto que aparece no label.
Tipo de letra utilizada.
Tamanho da letra utilizada.
Cor da letra.
Altura do label.
Posio do extremo esquerdo do label em relao ao formulrio.
Nome do controle a ser utilizado no programa.
Posio do topo do label em relao ao formulrio.
39
Visual Basic
Text Boxes
O text box um controle utilizado, basicamente, para a exibio de informao pelo sistema
ou para a entrada de dados do usurio.
Propriedade
Alignment
Font
Height
Left
MaxLegth
Multiline
Name
PasswordChar
ScrollBars
Text
Top
Width
Descrio
Alinhamento do texto dentro do text box.
Tipo de letra utilizada.
Altura do text box.
Indica margem esquerda do text box em relao ao formulrio.
Tamanho mximo do texto.
Indica se um text box tem mais de uma linha.
Nome do controle a ser utilizado pelo programa.
Caracter utilizado para esconder palavras secretas. Funciona
apenas quando a propriedades Multiline tem valor False. Ex.:
senhas.
Indica a existncia de barras de rolagem.
Texto do text box.
Indica do topo do text box em relao ao formulrio.
Largura da text box.
EVENTOS
Change
Este evento acontece toda vez que o usurio altera o contedo de uma Text Box.
Por exemplo, quando o usurio escreve a palavra "papel", o evento Change ocorre cinco (5)
vezes.
40
Visual Basic
Executando a Aplicao
15. Tecle F5 ou clique na opo Run / Start do menu.
41
Visual Basic
Maxlength de TextBoxes
Determina o nmero mximo de caracteres que uma caixa de texto pode conter. Se o usurio
digitar mais que o permitido, o sistema emitir um beep, e ignorar tudo que o usurio digitar
que ultrapasse o limite.
PassWordChar de TextBoxes
Determina o caracter a ser mostrado na tela, independente do que o usurio estiver digitando.
Normalmente utilizado para que senhas e cdigos secretos no apaream na tela.
Normalmente o caracter utilizado em aplicaes Windows o astersco (*).
42
Visual Basic
43
Visual Basic
Assim como podemos usar o & ( E comercial) para designar teclas de acesso a menus e
botes, podemos tambm utiliz-lo para acessar caixas de texto. Para isso, basta inserir um
label na frente ( na ordem de tabulao ) de um TextBox, e utilizar o & para designar uma
tecla de acesso para o label.
Como labels no recebem foco, o foco ir para o controle que tenha o TabIndex
imediatamente maior, portanto o Text Box receber o foco.
Exemplo - Utilizando Labels e Text Boxes
Suponha que voc tivesse que montar a seguinte tela para o envio de mensagens :
Visual Basic
45
Visual Basic
um controle que se assemelha a um Text box. No entanto, ele permite restringir a entrada
de dados do usurio e tambm formatar a sada dos dados.
Essa ferramenta Masked Edit dever ser inserida na caixa de feramentas da seguinte forma:
Na opo Components do menu Project selecionar o item Microsoft Masked Edit Control.
46
Visual Basic
Descrio
Determina se os caracteres de mscara so includos ou no
quando operaes de Cut/Copy so executadas. Valores
possveis: 1 = inclui; 2 = no inclui.
Formato com que nmeros, data, hora e strings sero mostrados
na Masked Edit.
Determina a mscara de entrada de dados.
Tamanho mximo do campo.
Caracter utilizado para pedir input ao usurio.
Indica se os caracteres PromptChar sero includos na
propriedade Text.
Caracteres de Mscara
,
.
:
/
&
?
A
#
Descrio
Separador de casas decimais.
Separador de milhar.
Separador de hora.
Separador de data.
Reserva lugar para caracter.
Reserva lugar para letras.
Reserva lugar para alfanumrico.
Reserva lugar para dgito.
47
Visual Basic
48
Visual Basic
Frames, check boxes e option buttons possibilitam mostrar ao usurio conjuntos de opes
entre as quais ele pode escolher. O arranjo na tela dos frames e option buttons definem
grupos independentes de opes. A escolha em um grupo no afeta a escolha em outro.
49
Visual Basic
5.4.1 Frames
Frames permitem agrupar, grfica e funcionalmente, um grupo de controles. Um exemplo
clssico do uso de Frames o agrupamento de Option Buttons mutuamente exclusivos.
Propriedades
Caption
Name
Visible
Descrio
O ttulo do frame.
Nome do controle usado no cdigo.
Indica se um frame e seus controles esto visveis ou no.
Observao : Para colocar controles dentro de um frame, voc tem que criar primeiro o
frame; selecion-lo e, ento, criar os controles dentro dele. Ou ento, caso os controles
tenham sido criados anteriormente, deve-se recort-los, selecionar o frame e, dentro deste,
col-los (Cut e Paste).
Check Boxes so usados, normalmente, para permitir uma ou mais escolhas independentes,
no exclusivas, em relao a outras j efetuadas.
Pro priedades
Caption
Enabled
Name
Value
Visible
Descrio
Ttulo da opo na tela.
Habilita e desabilita o acesso do usurio.
Nome do controle usado internamente.
Indica se um check box est marcado ou no.
Mostra ou esconde o controle.
EVENTOS
Click
O evento click indica que o usurio fez uma seleo. Ao ocorrer este evento , o
Check Box marcado/desmarcado conforme o seu valor anterior.
50
Visual Basic
Descrio
Valor da opo na tela.
Nome interno do controle.
Define se o controle est ativo ou no.
Indica se um option button est marcado ou no.
Define se o controle est aparente ou no.
EVENTOS
Click
Quando o usurio clica sobre o option button, uma srie de acontecimentos
ocorrem : o option button selecionado marcado, os outros Option Buttons do contexto so
desmarcados e a propriedade value, para cada option button do contexto atualizada com a
nova seleo.
51
Visual Basic
14. Clique duas vezes sobre OPTGrande, uma janela de cdigo deve aparecer.
15. Escreva o seguinte comando :
TXBExemplo.FontSize = 18
52
Visual Basic
Text1.FontItalic = False
End If
24. Clique duas vezes sobre CKBSublinhado, uma janela de cdigo deve aparecer.
25. Escreva os seguintes comandos :
If CKBSublinhado.Value = 1 Then
Text1.FontUnderline = True
Else
Text1.FontUnderline = False
End If
Executando a Aplicao
26. Pressione F5 ou selecione Start do menu Run.
27. Experimente apertar os botes e os Check boxes para ver o que acontece.
53
Visual Basic
Propriedade
Cancel
Caption
Default
Enabled
Height
Left
Name
Top
Width
Descrio
Ativa o boto quando o Esc for pressinado.
Valor do boto que aparece na tela.
Ativa boto quando o Enter for pressionado.
Permite, ou no, o acesso ao boto.
Altura do boto.
Posio da borda esquerda em relao ao formulrio.
Nome do controle usado internamente.
Posio da borda superior em relao ao formulrio.
Largura do boto.
EVENTOS
Click
Normalmente, significa que o usurio deseja que alguma ao seja tomada. Neste
caso, voc dever escrever o cdigo correspondente.
54
Visual Basic
Obs.:
No evento Click de botes cujas propriedades Default ou Cancel tenham valor
True, deve existir um comado transferindo o foco para o prprio boto
(nome_boto.setfocus), porque se o click do boto for ativado porque o usurio pressionou
ENTER ou CANCEL, o LostFocus do controle onde o foco estava anteriormente no ocorre.
55
Visual Basic
1.
2.
3.
4.
13. Clicar duas vezes sobre CMDLimpa. Uma janela de cdigo ir aparecer.
14. Digitar a seguinte linha de cdigo:
TXBHora.Text = ""
Executando a Aplicao
13. Pressione F5 ou selecione Start do menu Run.
14. Experimente apertar os botes.
56
Visual Basic
Existem quatro tipos de controles de listas, cada um com uma funo ligeiramente diferente.
Ambas as listas que caem ( Drop Down Combo Box e Drop Down List Combo Box ) foram
projetadas para economizar o espao de tela utilizado pelo controle. Usurios somente podem
adicionar tens a uma lista do tipo Drop-Down Combo Box ou Simple Combo Box, pois os
outros tipos permitem apenas escolha entre os tens existentes.
Todas os List Boxes e combo boxes apresentaro automaticamente uma barra de rolagem,
caso o tamanho da lista ou combo ultrapasse a sua prpria altura ( definida pela propriedade
Height).
Nas pginas seguintes, sero apresentados Combo Boxes e List Boxes mais detalhadamente.
57
Visual Basic
Propriedade
Columns
List
Index
MultiSelect
Name
Sorted
Text
Descrio
Permite a exibio de mltiplas colunas em uma nica lista.
Vetor que contm a lista dos tens da ListBox.
ndice do item ,da lista, selecionado.
0 - Permite selecionar apenas um item por vez.
1 - Permite selecionar mais de um item da lista.
2 - Permite seleo do tipo File Manager do Windows,
usando teclas CTRL e SHIFT.
Nome interno do controle.
Indica se a lista estar em ordem alfabtica ou no.
Retorna o item selecionado da lista.
O vetor boleano SELECTED() indica quais os tens selecionados da lista, caso voc tenha
escolhido uma lista de seleo mltipla.
EVENTOS
Click
Double-Click
Combina dois eventos : a seleo do item da lista e a inicializao de um
processo associado quele item.
58
Visual Basic
MTODOS
Mtodo
AddItem
RemoveItem
Clear
Descrio
Adiciona um item lista.
Normalmente executado no
Form Load.
Remove um item especfico da
lista.
Remove todos os tens da lista.
Sintaxe
list1.additem "Joo da Silva"
list1.removeitem (ListCount)
List1.Clear
Propriedade
Name
Style
Text
Height
Descrio
Nome do controle internamente.
Tipo da combo :
0 - Drop-Down Combo
1 - Simple Combo
2 - Drop-Down List
Texto selecionado.
Altura do Combo
EVENTOS
Change
O evento Change indica que o contedo do controle foi alterado. No caso
de combo boxes, o evento change ocorre toda vez que, a parte editavel do combo alterada.
Obs.: Os mtodos AddItem, RemoveItem e Clear, demonstrados no item anterior sobre listas,
tambm so vlidos para Combo Boxes.
59
Visual Basic
12. Clicar duas vezes sobre CMDRemove. Uma janela de cdigo ir aparecer. Certifique-se que
o evento Click.
13. Digitar as seguintes linhas de cdigo:
If LSBNomes.ListIndex <> -1 Then
LSBNomes.RemoveItem LSBNomes.ListIndex
End If
TXBNome.SetFocus
14. Clicar duas vezes sobre CMDLimpa. Uma janela de cdigo ir aparecer. Certifique-se que o
evento Click.
15. Digitar as seguintes linhas de cdigo:
LSBNomes.Clear
TXBNome.SetFocus
60
Visual Basic
Executando a Aplicao
16. Pressione F5 ou selecione Start do menu Run.
17. Experimente adicionar e retirar nomes da lista.
61
Visual Basic
"Estagirio"
"Analista de Sistemas"
"Gerente de Desenvolvimento"
"Analista de Suprimentos"
"Gerente de Marketing"
CMBDepartamento.AddItem
CMBDepartamento.AddItem
CMBDepartamento.AddItem
CMBDepartamento.AddItem
"Marketing"
"Sistemas"
"Suprimentos"
"Recursos Humanos"
Executando a Aplicao
12. Pressione F5 ou selecione Start do menu Run.
62
Visual Basic
Scroll Bars so utilizados quando se deseja demonstrar a posio corrente em uma escala.
Propriedade
LargeChange
Max
Min
Name
SmallChange
Value
Descrio
Mudana de valor que ocorrer quando o usurio clicar sobre
o marcador de posio da barra.
Valor mximo da barra.
Valor mnimo da barra.
Nome interno do controle.
Mudana de valor que ocorrer quando o usurio clicar sobre
as setas da barra.
Valor correspondente posio da barra.
EVENTOS
Change
O evento Change indica que o contedo do controle foi alterado. No caso
de scroll bars , ocorre quando o usurio rola a barra.
63
Visual Basic
Executando a Aplicao
13. Pressione F5 ou selecione Start do menu Run.
14. Movimente-se pelo scrollbar.
15. Experimente alterar o valor das propriedades Large Change e SmallChange.
5.8 Timer
64
Visual Basic
Timers so utilizados para ativar eventos, periodicamente, em um prazo definido por voc.
Um exemplo seria sair de uma tela qualquer, quando o usurio deixasse o computador parado
por um intervalo de tempo.
O controle timer somente visvel em design time.
Propriedade
Enabled
Interval
Name
Descrio
Indica se o timer est ativo.
Intervalo de tempo que o controle ser ativado.
Nome interno do controle.
Obs.: Para um timer funcionar, a propriedade Enabled deve ter o valor True e a propriedade
Interval deve ser diferente de 0.
EVENTOS
Timer Este evento ocorre a cada intervalo de tempo especificado na propriedade Interval do
controle.
65
Visual Basic
11. Clicar duas vezes sobre CMDDesliga. Uma janela de cdigo ir aparecer. Certifique-se que o
evento Click.
12. Digitar a seguinte linha de cdigo:
TIMsegundo.enabled = False
Codificando o Timer
13. Clicar duas vezes sobre TIMSegundo, uma janela de cdigo ir aparecer. Certifique-se que o
evento Timer.
14. Digitar a seguinte linha de cdigo:
TXBHora.text = Format (Now, "hh:mm:ss")
Executando a Aplicao
15. Pressione F5 ou selecione Start do menu Run.
16. Ligue e desligue o relgio.
17.Pare a execuo do programa e experimente alterar o valor do Interval do timer.
66
Visual Basic
67
Propriedade
AutoRedraw
AutoSize
Name
Picture
Visual Basic
Descrio
Indica se a pintura da Picture Box ser feita automaticamente
ou no
Se True, ajusta o tamanho da Picture Box de acordo o
tamanho da figura.
Nome interno do controle.
Exibe um Dialog Box para definir uma figura, no formato
BMP, WMF ou ICO, com o qual o Picture Box deve ser
preenchido.
Executando a Aplicao
15. Pressione F5 ou selecione Start do menu Run.
68
Visual Basic
5.10 Grid
Para inserir a feramenta GRID na caixa de ferramentas devemos selecionar o item Microsoft
FlexGrid Control da opo Components do menu Project
Este controle trabalha com um conjunto de propriedades atravs das quais possvel
selecionar linhas e colunas ( como clulas em uma planilha ), escrever dentro delas e copiar
dados para elas. Um grid possui um nmero inicial de linhas e colunas que no pode ser
menor que o seu nmero de linhas e colunas fixas. O dados que preenchem um grid so
representados por um texto no qual separa-se colunas por Tabs e linhas por CarriageReturn.
Propriedade
Rows, Cols
FixedRows, FixedCols
Principais Mtodos
Descrio
Indica o numero de linhas e colunas do grid.
Nmero de linhas e colunas fixas do grid.
69
Visual Basic
1.
2.
3.
4.
70
Visual Basic
15. Clicar duas vezes sobre CMDSair. Uma janela de cdigo ir aparecer. Certifique-se que o
evento Click.
16. Digitar a seguinte linha de cdigo:
End
Executando a Aplicao
17. Pressione F5 ou selecione Start do menu Run.
5.11 Foco
Em Windows, apenas um controle, formulrio ou janela pode ter o foco de cada vez. Ter o
foco significa que qualquer ao do usurio recai sobre aquele elemento, seja ele um controle
ou uma janela. O foco pode ser transferido pelo usurio ou pela aplicao.
O Visual Basic possui alguns eventos e mtodos para o tratamento de foco. A seguir
detalharemos cada um deles.
EVENTOS
GotFocus
Acontece sempre que um controle recebe o foco, ou porque o usurio pressionou
Tab, ou porque ele clicou sobre o controle, ou atravs de aplicao. Note que o Formulrio
somente recebe o evento GotFocus quando no h nenhum controle visvel dentro dele.
Lost Focus Acontece em um controle sempre que um outro controle recebe o foco, ou porque
o usurio pressionou Tab, ou porque ele clicou sobre o outro controle, ou atravs de
aplicao.
MTODOS
SetFocus
Este mtodo, aplicado a qualquer controle, transforma aquele controle no controle
ativo. O SetFocus em um controle, provoca o LostFocus do controle que possua o foco
anteriormente e o GotFocus do controle ao qual foi aplicado o mtodo.
Sintaxe : controle.Setfocus
Cuidado !!!! No utilize nunca o mtodo SetFocus dentro de um evento LostFocus.
Dependendo da lgica de programao, isto pode causar loop infinito !!
71
Visual Basic
%
&
!
#
@
$
Descrio
Inteiro de 2 bytes
Inteiro de 4 bytes
Num. Ponto Flutuante de 4 bytes
Num. Ponto Flutuante de 8 bytes
Num. Ponto Decimal Fixo de 8 bytes
String de caracteres
Data/Hora, string, num de ponto Flutuante
Obs.: Operaes que utilizam o tipo de dado Currency so mais rpidas e exatas do que as que
utilizam o tipo Single e Double.
6.2 Declarao de Variveis
Voc pode declarar um varivel de duas maneiras : usando o comando Dim ou ento, uma das
duas palavras reservadas - Global ou Static. A declarao de variveis no Visual Basic
extremamente importante, pois qualquer varivel no declarada considerada como sendo do
tipo Variant.
Existem duas sintaxes de declarao explcita de variveis :
Usando a palavra reservada AS
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
I as Integer
Total as Double
Nome as Sring
Valor as Currency
I%
Total#
Nome$
Valor@
Cuidado !!! Em declaraes de variveis compostas, especificar o tipo para cada uma delas.
No exemplo abaixo, apenas a ltima varivel ser do tipo Integer, as outras sero do tipo
Variant.
Dim I, J, K as Integer
Visual Basic
Inicializao de Variveis
O Visual Basic, automaticamente, inicializa todas as variveis numricas com zero (0) e
todas as strings, de tamanho fixo, com brancos.
Nomenclatura de Variveis
1.
2.
3.
4.
Variant tem o valor Empty at que algum valor seja atribudo a ela. Empty um valor
especial diferente de Null, brancos ou zero. Para verificar se uma varivel est Empty,
utilizara funo IsEmpty do Visual Basic.
6.4 Constantes
73
Visual Basic
Constantes so entidades do programa cujo valor voc necessita apenas saber, sem ter que
atualizar. O Visual Basic mantm um arquivo, o CONSTANT.TXT que contm uma srie de
constantes predefinidas.
Este arquivo poder ser adicionado ao seu projeto.
Para declarar uma constante, utilize a palavra reservada Const dentro do general declarations de
qualquer formulrio ou de um mdulo de cdigo (*.BAS).
74
Visual Basic
Pode-se definir o escopo como sendo o nvel de visibilidade de uma varivel dentro de uma
aplicao. J vimos anteriormente que, uma aplicao Visual Basic composta de
formulrios e mdulos de procedimentos. Assim sendo, podemos ter variveis visveis,
dentro de :
75
Visual Basic
Escopo
Local
Mdulo ou
Formulrio
Declarao
Dim, Static (dentro de um procedimento)
Dim (dentro da General Declarations de
um mdulo de procedimentos ou
formulrio)
Global
Visibilidade
dentro do procedimento
dentro de todas as rotinas
de um formulrio ou
mdulo de
procedimentos
em todos os pontos da
aplicao
76
Visual Basic
Sintaxe :
Type tipo-do-usurio
elemento as string
elemento as string
End Type
Exemplo :
Type Reg_cliente
nome as string *50
telefone as string *11
End Type
77
Visual Basic
78
Visual Basic
6.7 Vetores
Assim como vrias outras linguagens de programao, o Visual Basic tambm permite a criao
de vetores. Vetores so grupos de variveis de um mesmo tipo que compartilham um nome.
Cada elemento do vetor identificado por um ndice nico.
Sintaxe :
Dim nome_vetor(limite_superior) as tipo_de_dado
Dim nome_vetor(limite_inferior To limite_superior) as tipo_de_dado
Observao Por default o primeiro elemento de um vetor tem ndice 0, portanto se voc
declarar um vetor com o comando Dim vetor(10) as integer, voc ter um vetor de 11
elementos e no de 10. Para evitar problemas prefira utilizar a segunda sintaxe, declarando
Dim vetor(1 to 10) as integer.
Vetores Multidimensionais ou Matrizes
O Visual Basic permite a criao de vetores com mais de uma dimenso. Desta forma, voc pode
criar vetores de at 60 dimenses (matrizes).
Exemplo :
Dim matriz(9, 9) as single
Dim Matriz (1 to 10, 1 to 10) as single
Vetores Dinmicos
Em alguns casos, voc sentir a necessidade de utilizar um vetor, mas o tamanho do vetor
somente ser definido em runtime. O VB permite que voc crie vetores dinmicos, ou de
tamanho varivel. Para isso, o vetor deve ser declarado sem tamanho dentro do general
declarations de um formulrio ou mdulo.
Exemplo :
'Colocar dentro do general declarations de um formulrio ou mdulo
Dim Vetor() as string * 25
Feito isto, dentro da rotina onde vai ser definido o tamanho, redimensionar o vetor usando o
comando ReDim.
Exemplo :
Sub Command1_click ()
ReDim Vetor (List1.listcount)
End Sub
Importante: Sempre que voc usa o comando ReDim, todos os valores contidos no vetor so
perdidos e o vetor todo preenchido com o valor NULL. Para aumentar o tamanho de um
vetor sem que seu contedo seja perdido, utilizar a palavra chave Preserve.
Exemplo :
79
Visual Basic
Sub Command1_click ()
ReDim Preserve Vetor (List1.listcount)
End Sub
80
Visual Basic
Criao de Controles
5. Em FRMPrimeiro, criar trs botes. Atribuir os seguintes valores s suas propriedades :
Caption
Outro Form
Boto 1
Boto 2
Name
CMDOutroForm
CMDBotao1
CMDBotao2
Executando a Aplicao
17. Pressionar F5 ou selecione Start do menu Run.
18. Pressione vrias vezes os botes e observe o comportamento das variveis.
81
Visual Basic
If condio Then
bloco de comandos
End If
Existem dois tipos de estrutura condicional do tipo If...Then... . A primeira sintaxe, escrita em
apenas uma linha, deve ser utilizada quando apenas um comando for ser executado como
resultado de uma condio verdadeira. Quando, como resultado de uma condio, um bloco
de comandos tiver que ser executado, torna-se necessria a utilizao do End If como
demarcador do final do bloco de comandos.
Os seguintes operadores podem ser usados na composio de condies : =, <>, <, >, <=, >=.
If condio1 Then
Bloco de comandos
ElseIf condio2 Then
Bloco de comandos
Else
Bloco de Comandos
End If
Nesta estrutura permite-se testar vrias condies em um nico bloco de ifs, e reagir
diferentemente a cada uma das situaes. Esta estrutura de comandos possui as seguintes
caractersticas :
82
Visual Basic
83
Visual Basic
7.3 Do While
Formato:
Do While condio
bloco de comandos
Loop
Do
bloco de comandos
Loop While condio
Do
bloco de comandos
Loop Until condio
Ambas sintaxes acima tem a mesma funcionalidade : executar um bloco de comandos at que
uma condio se torne verdadeira. A diferena entre elas : a composio do until/loop testa
a condio antes de executar o bloco de comandos. J a composio do/loop until executa o
bloco de comandos uma vez e depois testa a condio.
Visual Basic
Formato:
For contador = valor_inicial To valor_final {Step incremento}
bloco de comandos
{Exit For}
bloco de comandos
Next contador
Esta estrutura de controle permite a execuo de um bloco de comandos por um nmero fixo
de vezes. O incremento pode ser positivo, negativo e em valores no inteiros. Cuidado para
no criar loops infinitos!!!
O Exit For permite a finalizao da execuo do For Next a partir daquele ponto. Deve-se ter
cuidado para no desestruturar o programa.
7.6 Go to
Formato:
GoTo label
GoTo linha
Este comando faz com que a execuo do programa pule para o label ou linha especificada.
Deve ser usado basicamente em rotinas de tratamento de erro, pois sua utilizao
generalizada pode causar desestruturao do programa.
85
Visual Basic
8.0 Codificando em VB
Objetivo do mdulo
Fornecer as ferramentas necessrias para que voc possa comear a escrever o cdigo por trs
das interfaces em Visual Basic.
8.1 Procedimentos (Sub e Functions)
Procedimentos so conjuntos de comandos Visual Basic que podem ser chamados de
unidades lgicas. Existem dois tipos de procedimentos : subrotinas e funes.
Subrotinas Conjunto de comandos que no obrigatoriamente retorna um valor ao
procedimento que o chamou. Ao chegar ao final de sua execuo retorna ao mdulo que fez a
chamada.
Sintaxe :
Sub Nome_da_subrotina()
Bloco de comandos
End Sub
Funes Similar a uma rotina. No entanto, de um tipo de dados, assim como variveis. Ao
final de sua execuo, retorna um valor ao mdulo que fez a chamada.
Sintaxe :
Function nome_funo() As tipo_de_dados
Blocos de comandos
nome_funo = Valor
End Function
86
Visual Basic
Argumentos
Qualquer procedimento pode receber dados, se tiver sido declarado para tal. Cada argumento
passado deve ter seu equivalente ( do mesmo tipo de dado ) na lista de parmetros da
subrotina ou funo.
Sintaxe - declarao da subrotina :
Sub nome_subrotina ( parmetro1 as Integer, parmetro2 as Integer)
Bloco de comandos
End Sub
87
parmetro2 as Integer) as
Visual Basic
88
Visual Basic
Event Procedures
Procedimentos de Eventos, ou Event Procedures, so sempre ativados a partir de um evento
acionado pelo usurio ou ento pelo sistema (Windows).
Event Procedures esto sempre ligados a um formulrio ou controle. O nome do
procedimento indica o evento e a qual formulrio/controle que o evento est associado.
Sintaxe : Sub nome-objeto_nome-evento()
Exemplo : Command1_Click, Form1_Load, Text1.Change, etc.
89
Visual Basic
90
Visual Basic
Assim como variveis, procedimentos gerais tambm tm escopo. Veja no exemplo abaixo
de onde as funes e subrotinas declaradas podero ser vistas :
Fromulrio/Mdulo
Form1.frm
Form2.frm
Modulo.bas
Pode ver
Rotina A, Funo1, Funo 3
Rotina B, Funo2, Funo 3
Rotina C, Funo 3
Como voc pde observar no exemplo acima, existem trs escopos de rotinas: a nvel de
formulrio, a nvel global e a nvel privado em mdulos.
Escopo a nvel de formulrio
Declarada com as palavras reservadas Sub ou Function dentro de um formulrio. Somente
podem ser chamadas de dentro dele.
Escopo a nvel global
Declarada com as palavras reservadas Sub ou Function dentro de um mdulo. Podem ser
chamadas de qualquer ponto da aplicao.
Escopo privado em mdulos
Utilizar a palavra reservada Private antes de Sub ou Function dentro de um mdulo. Somente
podem ser chamadas de dentro dele.
91
Visual Basic
Funo
CCur
Cdbl
Cint
CLng
CSng
CStr
CVar
Descrio
Retorna um caracter para o cdigo ANSI informado. Ex.: Chr(13) +
Chr(10) , CarriageReturn e LineFeed.
Rotina que retorna um nmero no formato que voc quiser. Ex.:
Format(Now, "dd-mm-yy"), traz a data de hoje no formato especificado.
Retorna o caracter minsculo do caracter informado. Ex.: LCase("H"),
retorna "h".
Traz os n caracteres mais a esquerda. Ex.: Left("gravador",5), retorna
"grava".
Traz o tamanho de um string. Ex.: Len("Mar"), retorna 3.
Retira espaos esquerda em um string.
Retorna parte de uma string. Ex.: Mid( "reflorestamento", 3, 8), retorna
"floresta".
Traz os n caracteres mais a direita. Ex.: Right("armrio",3), retorna "rio".
Retira espaos direita em um string.
Retira espaos direita e esquerda em um string.
Retorna o caracter maisculo do caracter informado. Ex.: UCase("g"),
retorna "G".
Converte um string de dgitos em um nmero. Ex.: Val("100"), retorna
100; Val("1345,98") retorna 1345.
Descrio
Converte uma expresso caracter para tipo currency.
Converte uma expresso caracter para tipo double.
Converte uma expresso caracter para tipo integer.
Converte uma expresso caracter para tipo long.
Converte uma expresso caracter para tipo single.
Converte uma expresso caracter para tipo string.
Converte uma expresso caracter para tipo variant.
OBS.: A funo CVAR reconhece o indicador de decimal do Brasil (,). Para capturar um nmero
de casas decimais, us-la em conjuno com CDBL, CINT, CLNG, CSNG, dependendo do
tipo de nmero que desejar armazenar.
92
Visual Basic
9. DATA MANAGER
O DataManager um gerenciador de banco de dados, permite criar, modificar e apagar um
banco de dados, inserir, modificar e excluir registros e criar ndices.
Neste captulo ser visto passo-a-passo como construir um banco de dados ACCESS.
9.1 Criando um Banco de Dados
Para criar um banco de dados selecione a opco Visual Data Manager do menu Add-Ins
No Data Manager, escolha a opo New do menu File, no exemplo estamos criando um
Banco de Dados ACCESS da verso 7.0
93
Visual Basic
94
Visual Basic
D um nome para sua tabela e clique no boto Add Field para adicionar um campo sua
tabela. A seguinte janela aparece:
95
Visual Basic
Descrio
Name
Nome do campo
Type
Size
AllowZeroLenght
Required
Ordinal Position
Validation Text
Validadtion Rule
Default Value
Definida as propriedades do novo campo, pressione o boto OK. Repita o mesmo processo
para todos os campos que desejar incluir e pressione o boto Close para finalizar a criao de
novos campos.
Agora vamos criar ndices para a tabela. Clique no boto AddIndex. A seguinte janela
mostrada:
Escolha um nome para o ndice e os campos a serem indexados dando em duplo clique sobre
eles (na caixa Avaliable Fields). Especifique se o ndice primrio (Primary) e se o campo
aceita repeties (Unique).
Para criar outro ndice clique no boto OK e para finalizar a criao de ndices clique no
boto Close.
96
Visual Basic
Aps criar os campos e ndices desejados, voc deve confirmar a estrutura dando um clique
no boto Build the Table.
97
Visual Basic
Para inserir um registro, clique no boto Add e entre com os dados nas caixas referentes aos
campos da tabela. Em seguida clique no boto Update.
Para excluir, primeiro selecione o registro a ser apagado e clique no boto Delete.
Para alterar o valor de algum dado, clique no boto Edit. Nas caixas corespondentes entre
com o novo valor e clique no boto Update.
Com os outros botes voc pode impor um critrio de ordenao (SORT), fazer uma seleo
dos registros (FILTER), mover diretamente a um certo registro (MOVE) e realizar uma busca
(FIND).
98
Visual Basic
10.1 Recordset
o recurso mais importante relacionado com os objetos de acesso a dados. H trs tipos de
Recordset disponveis:
Tabelas so estruturas fsicas que contm os dados em um banco de dados
Dynaset Um conjunto de ponteiros para acesso de campos e registros localizados em uma
ou mais tabelas.
Snapshot Uma cpia somente de leitura dos dados de uma ou mais tabelas.
Nos nossos estudos utilizaremos a Tabela, cujo as vantagens so :
a nica forma de Recordset que aceita o uso de ndices, tordando a pesquisa em uma
tabela muito mais rpida
99
Visual Basic
Ao
MoveFirst
MoveNext
MovePrevious
MoveLast
Move n
100
Visual Basic
O mtodo Seek somente pode ser utilizado com o recordset do tipo tabela (Table).
Um comando Seek s localiza o primeiro registro que satisfaz aos valores de ndice
especificados. Para invocar o mtodo Seek necessrio fazer a chamada ao mtodo usando
operadores de comparao (<, <=, >, >=, =, <>), lembrando que os valores de chaves que
esto sendo comparados devem ter o mesmo tipo de dados dos campos no ndice de controle.
Aps executar o mtodo de localizao voc deve verificar o status da propriedade
NOMATCH. Se Nomatch verdadeira o mtodo no encontrou o registro desejado, se
Nomatch falsa o ponteiro do registro se posiciona no registro encontrado. Veja o exemplo a
seguir :
Dim Banco as Databse
Dim Tabela as Recordset
Set Banco=OpenDatabase(C:\diretorio\banco.mdb)
Set Tabela=Banco.OpenRecordset(Clientes,DbOpenTable)
Tabela.index = nome
Tabale.seek =, Bill Gates
If tabela.nomatch then
Msgbox Cliente no localizado
Else
Msgbox Cliente localizado com sucesso
Endif
No cdigo acima definimos a recordset Tabela do tipo Table e a seguir definimos o ndice
ativo Tabela.index = nome e invocamos o mtodo Seek usando o operador = com nome a
ser procurado. Note que o ndice j deve ter sido criado, o operador deve estar entre aspas e
que deve ser separdo por vrgula do valor a ser localizado.
101
Visual Basic
Ao
AddNew
Delete
Edit
Upadate
102
103
Visual Basic