Professional Documents
Culture Documents
Objetivo do mdulo
Apresentar os principais elementos do Visual Basic sem, no entanto, se
aprofundar demais em nenhum tpico. Nos prximos captulos, todos estes
tpicos sero discutidos mais detalhadamente.
A Caixa de Propriedades
efetuada.
Barra de Ferramentas
Barra de Ferramentas
New Form
New Module
Open Project
Save Project
Menu Design Window
Properties Window
Start
Break
End
Janela de Cdigo
A janela de cdigo o lugar onde voc escreve o cdigo que a mquina deve executar
para responder s aes do usurio. Para abrir uma janela de cdigo, basta dar um
click-duplo em cima do objeto do qual um evento deva ser tratado.
Para Inicializar o VB :
1. Dar duplo-click no cone do Visual Basic.
Visual Basic ser inicializado com um formulrio em branco na tela.
2. Redimensionar o formulrio.
Na Caixa de Propriedades, definir Height = 2700 e Width = 4065.
txtBox1
Apagar o texto existente nesta propriedade
Comando
Descrio
New Form
Add File
Remove File
Save File As
Save File
Save Project
Save Project As
Comando
Descrio
Find
Replace
Undo
Desfaz as mudanas.
Comando
Descrio
Start
End
Comando
Descrio
Properties
Toolbox
Project Window
Color Palette
Menu Help
Comando
Descrio
Contents
Search
Product Support
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
Multi-tarefa
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
Mtodos - Procedimentos que podem ser aplicados aos objetos. Cada objeto
possui uma lista de mtodos prpria.
Para instalar o executvel para os usurios ou clientes, voc precisa levar tambm uma
cpia da biblioteca do Visual Basic VBRUN300.DLL. Este arquivo faz parte dos
arquivos de instalao do Visual Basic e pode ser distribudo livremente.
11
Determinaes Bsicas :
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).
Clareza - Ter certeza de que o propsito de cada tela est bem claro para o usurio.
Esttica
Configurao do Ambiente
12
13
Objetivo do mdulo
Apresentar a ferramenta principal para o programador : o Formulrio. Apesar de
ser apresentado de uma maneira simples, os conceitos e termos mostrados aqui
sero necessrios para um entendimento completo deste ambiente de
programao.
14
Propriedade
Default
Definio / Comentrios
BorderStyle
2 - Sizeable
Caption
Form1
Ttulo da tela.
ControlBox
True
FontSize
8.25
Tamanho da Letra.
FontName
Helv
Name
Form1
Height
4425 twips
Altura do formulrio.
Icon
Left
MaxButton
True
MinButton
True
MousePointer 0 Default
Top
Visible
True
Width
7485 twips
Largura do formulrio.
15
Unload
O comando Unload utilizado para retirar um formulrio de memria. Note que ao
Sintaxe :
Unload objeto
Principais Eventos
Load
Acontece sempre antes que um formulrio seja carregado em memria. utilizado
normalmente para inicializar os controles do formulrio.
16
Principais Mtodos
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
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
17
18
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 do menu Options.
O text box Start Up Form deve conter o nome (propriedade Name) do formulrio
inicial.
Message Box
Existem ocasies em que o sistema deve enviar alguma mensagem para o usurio. Na
maioria destas ocasies, criar um formulrio especialmente para isso, seria
demorado demais. Para solucionar tais casos, o Visual Basic oferece uma
ferramenta chamada Message Box.
Em uma Message Box, voc pode definir a mensagem, o ttulo e as respostas (botes)
possveis. Como retorno, a Message Boxdiz qual o boto utilizado.
Msg = "Este um exemplo de um erro crtico." + Chr(13) + Chr(10)
Msg = Msg & " Deseja continuar?"
DgDef = MB_YESNO + MB_ICONSTOP + MB_DEFBUTTON2' Define botes utilizados.
Resp = MsgBox(Msg, DgDef,"MsgBox Demo")'Recebe resposta do usurio.
so constantes numricas
Parmetro
1
0
Criando Menus
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.
Padro de Menus Windows
A seguir destacamos alguns tens que devem ser observados para que um menu esteja
dentro do padro Windows.
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.
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).
20
Descrio
Caption
Name
Index
ShortCut
Checked
Enabled
WindowList
novos tens e apaga outros. Para qualquer uma das operaes, o item deve estar
selecionado.
Manipulao de Lay-Out
Item
Funo
Next
Insert
Delete
Item de Menu
Caption
Name
Identao
Arquivo
&Arquivo
MNUArquivo
Abrir
&Abrir
MNUAbrir
MNUSeparador
Sair
&Sair
MNUSair
Editar
&Editar
MNUEditar
Copiar
&Copiar
MNUCopiar
Colar
Co&lar
MNUColar
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.
Utilizando Controles
Objetivo do mdulo
Apresentar os controles, suas principais propriedades e eventos. No inteno do
curso, que ao final deste mdulo, voc tenha domnio absoluto de todos os
controles e propriedades existentes no Visual Basic.
Ao longo do mdulo, uma srie de pequenos exerccios e apresentaes sero feitas de
modo que voc se familiarize com o uso de cada controle, e perceba como as
propriedades os afetam.
Os controles apresentados sero :
Labels
Text boxes
Frames
Command Buttons
Check Boxes
23
Option Buttons
Combo Boxes
List Boxes
Timers
Picture Boxes
Grid
Panel 3d
File Browsers
Tipos de Controles
Caixa de Ferramentas
24
25
Descrio
Alignment
Backcolor
BorderStyle
Caption
FontName
FontSize
ForeColor
Cor da letra.
Height
Altura do label.
Left
Name
Tag
Top
Text Boxes
Propriedade
Descrio
Alignment
FontName
Height
Left
MaxLegth
Multiline
Name
PasswordChar
ScrollBars
Text
Top
Width
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.
Exemplo - Utilizando Labels e Text Boxes
Suponha que voc tivesse que montar a seguinte tela para o envio de mensagens :
10. Com o Text Box selecionado, pressione F4 para ter acesso lista de propriedades.
11. Na propriedade Text, apagar o que estiver escrito.
11. Na propriedade Name, escrever TXBnome.
10. Com o Text Box selecionado, pressione F4 para ter acesso lista de propriedades.
11. Na propriedade Text, apagar o que estiver escrito.
11. Na propriedade Name, escrever TXBmensagem.
13. Na propriedade Multiline, escrever True, sem esta propriedade o scroll bar vertical
no funcionar.
Masked Edit
28
Descrio
ClipMode
ClipText
Format
HideSelection
Mask
MaxLength
PromptChar
PromptInclude
Text
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.
29
Frames
Frames permitem agrupar, grfica e funcionalmente, um grupo de controles. Um
Propriedades
Descrio
Caption
O ttulo do frame.
Name
Visible
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).
31
Descrio
Alignment
Font 3D
ShadowColor
Cor da sombra.
ShadowStyle
Tipo da sombra.
Check Boxes
Propriedades
Descrio
Caption
Enabled
Name
Value
Visible
EVENTOS
Click
O evento click indica que o usurio fez uma seleo. Ao ocorrer este
32
Descrio
Caption
Name
Enabled
Value
Visible
EVENTOS
Click
Descrio
Alignment
Font 3D
33
14. Clique duas vezes sobre OPTGrande, uma janela de cdigo deve aparecer.
15. Escreva os seguintes comandos :
Text1.FontSize = 14
34
17. Com o Check Box selecionado pressione F4 para ter acesso lista de
propriedades.
18. Nomeie este Check Box "CKBItalico".
24. Clique duas vezes sobre CKBUnderline, 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.
Command Buttons Normais e Tridimensionais
35
Descrio
Cancel
Caption
Default
Enabled
Height
Altura do boto.
Left
Name
Top
Width
Largura do boto.
Value
propriedade Enabled.
EVENTOS
Click
Descrio
Bevel Width
Name
Outline
Picture
36
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.
37
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.
Nas pginas seguintes, sero apresentados Combo Boxes e List Boxes mais
detalhadamente.
List Boxes
List Boxes mostram um conjunto de tens entre os quais o usurio pode escolher um
ou mais. Atravs de cdigo, voc pode adicionar ou remover tens do list box.
38
Descrio
Name
Sorted
Text
O vetor boleano SELECTED() indica quais os tens selecionados da lista, caso voc
tenha escolhido uma lista de seleo mltipla.
EVENTOS
Click
Double-Click
MTODOS
Mtodo
AddItem
RemoveItem
Clear
Descrio
Sintaxe
List1.Clear
39
Propriedade
Descrio
Name
Style
Tipo da combo :
0 - Drop-Down Combo
1 - Simple Combo
2 - Drop-Down List
Text
Texto selecionado.
Height
Altura do Combo
EVENTOS
Change
alterado. No caso de combo boxes, o evento change ocorre toda vez que, a parte
editavel do combo alterada.
40
5. Com o List Box selecionado pressione F4 para ter acesso lista de propriedades.
6. Nomeie esta lista "LSBNomes".
Criando os Command Buttons
7. Crie trs botes de nomeie-os "CMDInclui", "CMDRemove" e "CMDLimpa".
12. Clicar duas vezes sobre CMDRemove. Uma janela de cdigo ir aparecer.
Certifique-se que o evento Click.
41
14. Clicar duas vezes sobre CMDLimpa. Uma janela de cdigo ir aparecer.
Certifique-se que o evento Click.
Executando a Aplicao
16. Pressione F5 ou selecione Start do menu Run.
17. Experimente adicionar e retirar nomes da lista.
Spin Buttons
Spin Buttons so utilizados para facilitar a entrada de dados em uma Text Box,
quando se trabalha com nmeros. Dependendo da seta pressionada, o contedo da
Text Box ser incrementado ou decrementado.
Propriedade
Descrio
Name
Delay
SpinOrientatio
n
EVENTOS
SpinUp
controle.
42
controle.
Exemplo - Utilizao de Spin Buttons
Suponha que voc queira criar uma aplicao onde seja necessrio criar um campo
numrico. Este campo deve ser incrementado apenas atravs do mouse. A tela do
exemplo est abaixo.
Executando a Aplicao
11. Pressione F5 ou selecione Start do menu Run.
12.Compostas
43
Descrio
LargeChange
Max
Min
Name
SmallChange
Value
EVENTOS
Change
44
5. Com o Scroll Bar selecionado pressione F4 para ter acesso lista de propriedades.
6. Nomeie este Scroll Bar "HSBValor".
7. Coloque o valor 100 na propriedade Max.
8. Coloque o valor 0 na propriedade Min.
Executando a Aplicao
13. Pressione F5 ou selecione Start do menu Run.
14. Movimente-se pele scrollbar.
15. Experimente alterar o valor das propriedades Large Change e SmallChange.
45
Descrio
Enabled
Interval
Name
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.
46
Criando o Timer
5. Clique duas vezes sobre a ferramenta Timer da Caixa de Ferramentas.
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
47
Executando a Aplicao
15. Pressione F5 ou selecione Start do menu Run.
16. Ligue e desligue o relgio.
Picture Box
mostrando parte de um picture box que inicialmente estava escondido. Este evento
48
de um picture Box com valor True; isto pode consumir muita memria do seu
micro-computador.
Propriedade
Descrio
AutoRedraw
AutoSize
Name
Picture
Exemplos :
Sub Command1_Click()
'Carrega uma figura na Picture Box
Picture1.picture = LoadPicture ("c:\vb\icons\arrows\point12.ico")
End Sub
Sub Command2_Click()
'Limpa uma Picture Box
Picture1.picture = LoadPicture ()
End Sub
49
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
Descrio
Rows, Cols
Row, Col
FixedRows, FixedCols
ColWidth
Clip
ColAlignment
GridLines
Text
Picture
SelStartRow,
SelEndRow
SelStartCol,
SelEndCol
50
Exemplos :
Sub Command1_Click ()
'Determina a clula inicial e a preenche
Grid1.col =0
Grid1.Row =0
Grid1.Text = "Nome"
End Sub
Sub Command2_Click ()
'Seleciona um grupo de clulas e as preenche
Grid1.SelStartCol = 1
Grid1.SelEndCol = 3
Grid1.SelStartRow = 1
Grid1.SelEndRow = 3
tab = chr(9)
carriage_return = chr(13)
texto = "L1C1" + tab + "L1C2" + carriage_return
texto = texto + "L2C1"+ tab + "L2C2"
Grid1.clip = texto
End Sub
51
52
15. Clicar duas vezes sobre CMDSair. Uma janela de cdigo ir aparecer. Certifiquese que o evento Click.
16. Digitar as seguintes linhas de cdigo:
End
Executando a Aplicao
17. Pressione F5 ou selecione Start do menu Run.
3D Panel
53
Propriedade
Descrio
Alignment
BevelInner
BevelOuter
BevelWidth
FloodColor
FloodShowPct
FloodType
Exemplo - Painel 3D
Para demostrar o uso de um painel 3D, vamos marcar a passagem do tempo com o
auxlio de um temporizador.
54
Inicializando a Varivel
15. Clique duas vezes sobre o formulrio para abrir para abrir uma janela de cdigo.
Certifique-se que o evento selecionado o Load.
Codificando o Timer
17. Clique duas vezes sobre o objeto Timer. Uma janela de cdigo dever aparecer.
18. Digite as seguintes linhas de cdigo :
cont = cont + 0.25
If cont <= 10 Then
SSPMarcador.FloodPercent = cont * 10
Else
TIMSegundo.Enabled = False
End If
Executando a Aplicao
19. Pressione F5 ou selecione Start do menu Run.
55
Group Push Buttons trabalham como se fossem uma combinao de command buttons
e de option buttons. Trabalham como Command Buttons porque, quando
pressionados, aes so executadas. Tambm trabalham como Option Buttons
porque se voc ajustar suas propriedades corretamente, eles funcionam como
grupos de opes.
Propriedade
Descrio
GroupAllowAllU
p
GroupNumber
Outline
PictureDisabled
PictureDn
PictureDnChange
PictureUp
OBS.1: Para a criao de botes exclusivos entre si, deve-se obedecer a ordem de
criao dos botes, ou seja, um grupo de botes somente ser exclusivo em
relao aos outros do grupo se eles tiverem sido criados um aps o outro.
OBS.2: Para a criao de um toolbar os botes devem ser criados dentro de um
3DPanel, que para se alinhar ao formulrio deve ter a propriedade Align ajustada.
56
Esta ferramenta do Visual Basic permite que voc utilize as caixas de dilogo padro
do Windows. O tipo da caixa utilizada ser definida pelo valor da propriedade
action do controle.
Exemplo :
Sub Command1_Click
CMDialog1.action = 2
End Sub
Abrir Arquivo
Salvar Arquivo
Escolher Cores
Escolher Fonte
Configurar Impressora
57
Estes trs controles so uma forma especial de List Boxes. Com eles, voc pode criar
O File List Box uma lista que contm o nome de todos os arquivos pertencentes ao
diretrio atual. Alm das propriedades normais de uma lista, ele apresenta uma
srie de propriedades inerentes sua funo.
Propriedade Descrio
Archive
FileName
Hidden
Normal
Path
Pattern
ReadOnly
System
58
Descrio
Name
Path
EVENTO CHANGE
Sempre que o valor do Directory List Box alterado, um evento change acontece.
Neste evento, voc deve codificar a sincronizao deste controle com o File List
Box.
Exemplo :
Sub Dir1_Change ()
File1.Path = Dir1.path
End Sub
O Drive List Box um tipo combo box que mostra os drives disponveis no sistema.
Propriedade
Descrio
Name
Drive
EVENTO CHANGE
Sempre que o valor do Drive List Box alterado, um evento change acontece. Neste
evento, voc deve codificar a sincronizao deste controle com o Directory List
Box.
Exemplo :
Sub Drive1_Change ()
Dir1.Path = Drive1.drive
End Sub
59
propriedades.
4. Nomeie este Drive List Box "DVBdrive".
Criando o Directory List Box
5. Clique duas vezes sobre a ferramenta Directory List Box da Caixa de Ferramentas.
6. Com o Directory List Box selecionado pressione F4 para ter acesso lista de
propriedades.
7. Nomeie este Directory List Box "DLBDirectory".
Criando o File List Box
8. Clique duas vezes sobre a ferramenta File List Box da Caixa de Ferramentas.
9. Com
propriedades.
10. Nomeie este File List Box "FLBFile".
Codificando os eventos Change
11. Clique duas vezes no Drive List Box para abrir a janela de cdigo.
12. Certifique-se que o evento selecionado Change.
13. Escrever a seguinte linha de cdigo :
DLBDirectory.Path = DVBDrive.Drive
60
Executando a Aplicao
17. Pressione F5 ou selecione Start do menu Run.
Tipos de Dados
Objetivo do mdulo
Introduzir os tipos de dados do Visual Basic e suas regras de escopo e durabilidade.
Tipo
Integer
Long
Single
Double
Currency
String
Variant
%
&
!
#
@
$
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.
61
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
Dim I as Integer
Dim I%
Dim Total#
Dim Nome$
Dim Valor@
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
62
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. Nomes de variveis podem ter, no mximo, 40 caracteres.
2. Nomes podem conter letras, nmeros e underscores (_).
Variant o tipo de dado default do Visual Basic. Uma varivel do tipo variant pode
conter qualquer tipo de dado : nmeros, letras ou datas. No necessrio fazer
qualquer tipo de converso para atribuir valores destes tipos a um variant; o
Visual Basic se encarrega de fazer a converso automaticamente.
Para saber o tipo de dado que est dentro de um variant, voc pode utilizar as
seguintes funes boleanas do VB : IsNumeric e IsDate.
Para somar variveis do tipo variant, as mesmas devem conter valores numricos.
Para concatenar variveis do tipo variant utilizar o smbolo & para evitar
ambigidade.
Sub Command1_Click ()
Dim a
Dim b
63
'resulta em 35
'resulta em 8
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.
Constantes
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).
64
Pode-se definir o escopo como sendo o nvel de visibilidade de uma varivel dentro
65
ou Function nome_funcao (parametros) que o Visual Basic abre uma janela para
que o cdigo seja escrito.
Escopo
Local
Mdulo ou
Formulrio
Global
Declarao
Dim, Static (dentro de um procedimento)
Dim (dentro da General Declarations de
um mdulo de procedimentos ou
formulrio)
Visibilidade
dentro do procedimento
dentro de todas as rotinas
de um formulrio ou
mdulo
de
procedimentos
Global (dentro do General Declarations em todos os pontos da
de um mdulo de procedimentos)
aplicao
Declarar uma varivel como static dentro de uma rotina significa dizer que aquela
varivel no ser reinicializada cada vez que a rotina for chamada (apenas no Load
do formulrio), no entanto ela s estar visvel dentro daquela rotina. Ou seja, ela
ter escopo Local e durabilidade enquanto o formulrio estiver ativo.
66
registro do seu arquivo, ou criar variveis que serviro de padro para a aplicao
( Ex.: Tipo nome um string de 50 posies; qualquer nome do seu sistema ser
declarado como sendo do tipo nome, para que todas tenham o mesmo tamanho).
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
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
67
Vetores Dinmicos
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
68
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 :
Sub Command1_click ()
ReDim Preserve Vetor (List1.listcount)
End Sub
69
Name
CMDOutroForm
CMDBotao1
CMDBotao2
Criao de Variveis
7. Declarar uma varivel global do tipo inteiro com o nome de VAR_GL.
8. Declarar uma varivel a nvel de formulrio no Form1 do tipo inteiro com o nome
de VAR_FRM.
9. Declarar uma varivel esttica local ao evento Timer do Timer no Form1 do tipo
single com o nome de VAR_TIM.
10. Declarar uma varivel esttica local ao evento click do CMDBotao1 no Form1 do
tipo inteiro com o nome de VAR_LOC.
70
Escrevendo o cdigo
12. Associar ao evento Timer do Timer no Form1, as seguintes linhas de cdigo :
Var_Tim = Var_Tim + 1
If Var_Tim MOD 2 = 0 Then
Var_Frm = Var_Frm + 1
Endif
Executando a Aplicao
17. Pressionar F5 ou selecione Start do menu Run.
18. Pressione vrias vezes os botes e observe o comportamento das variveis.
Objetivo do mdulo
Fornecer as ferramentas necessrias para que voc possa comear a escrever o cdigo
por trs das interfaces em Visual Basic.
71
Argumentos
72
parmetro1
as
Integer,
parmetro2
as
Tipos de Procedimentos
74
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.
Fromulrio/Mdulo
Pode ver
Form1.frm
Form2.frm
Modulo.bas
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
76
Mtodos so um tipo especial de procedimentos que o Visual Basic fornece para voc.
Mtodos sempre esto associados a objetos, mas voc que os ativa.
Caractersticas de um mtodo :
Sintaxe :
nome_controle.mtodo
Exemplos :
Form1.Hide
List1.AddItem
GRDAgenda.RemoveItem
Picture1.Drag
77
Descrio
Chr
Format
LCase
Left
Len
LTrim
Mid
Right
Rtrim
Trim
Ucase
Val
Funo
Descrio
CCur
Cdbl
CInt
CLng
CSng
CStr
CVar
OBS.: A funo CVAR reconhece o indicador de decimal do Brasil (,). Para capturar
78
Objetivo
Sendo este um curso direcionado a profissionais de informtica acostumados
utilizao de estruturas de controle como condies e repeties, este mdulo
apresentar apenas as sintaxes das estruturas j conhecidas e tambm quaisquer
novidades que estas estruturas no Visual Basic possuam.
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-
If condio1 Then
Bloco de comandos
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 :
Case expresso
Bloco de comandos
Case Else
bloco de comandos
End Select
estrutura
de
comandos
Select
Case
funciona
como
uma
estrutura
80
Exemplos :
Select case varivel
case 1,3,5,7 to 11
comandos
'Entra se varivel for igual a 1,3,5,7,8,9,10,11
case 2, 4, 6, IS >=12
comandos
'Entra
se
varivel
for
igual
a
2,4,6,12,13,14,15,...
End Select
Do While condio
bloco de comandos
Loop
Do
bloco de comandos
Loop While
Do Until condio
bloco de comandos
Loop
Do
bloco de comandos
Loop Until
Next contador
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.
Objetivo
Neste mdulo sero mostradas as ferramentas que o Visual Basic oferece para auxlio
na identificao de erros de execuo.
83
84
Permite a criao e a alterao de variveis de watch. Estas variveis exibem seu valor
sempre que o programa entrar em break mode.
Uma varivel de watch pode parar a execuo de um programa, se assim for
especificado na criao da varivel. Existem duas opes : Break when True, que
pra a execuo do programa quando seu valor atingir verdadeiro, ou, Break when
Changed, que para a execuo do programa sempre que seu valor for alterado.
85
As opes Single Step /Procedure Step esto no menu Debug, mas tambm podem ser
encontradas no barra de ferramentas.
cursor na prxima linha a ser executada. O comando Show Next Statement fica no
menu Debug.
86
O Set Next Statement funciona como um GoTo dinmico. Ele desvia o fluxo do
programa para a linha selecionada, e continua a partir dali. O comando Set Next
Statement tambm fica no menu Debug.
Impresso
Objetivo
Apresentar o meio que o Visual Basic utiliza para fazer impresso em telas ou em
impressoras. A impresso no Visual Basic no ser muito detalhada, pois dentre os
seu utilitrios, o Visual Basic possui um gerador de relatrios, o Crystal Report.
O Objeto Printer
Coerentemente ao resto de sua estrutura, para realizar impresses o Visual Basic
tambm utiliza o conceito de objetos. Assim sendo, da mesma forma que existe o
Mtodos de Impresso
Print
utilizado para imprimir conjuntos de caracteres na impressora, em um formulrio ou
em um Picture.
Sintaxe :
default
PrintForm
Joga para impressora um bitmap do formulrio corrente, ou daquele especificado pelo
Sintaxe :
nome-formulrio.PrintForm
Cls
Limpa o contedo de um formulrio ou Picture, especificado pelo objeto.
Sintaxe :
Objeto.Cls
Funes de Impresso
Spc
Pula o nmero de espaos especificados em uma impresso.
Sintaxe :
Printer.Print
Spc."
Tab
Posiciona o cursor para prxima impresso no nmero da coluna especificada.
Sintaxe :
88
Objetivo
Este mdulo tem como objetivo mostrar a utilizao e manipulao de uma base de
dados qualquer de dentro de uma aplicao Visual Basic via ODBC (Open
DataBase Connectivity). Deste ponto em diante, voc estar realmente capacitado
para o desenvolvimento de aplicaes comerciais.
Data Manager
O Data Manager uma ferramenta do Visual Basic que permite a criao de bancos
de dado com estrutura Access. Ele permite tambm a criao de tabelas e a
alterao da estrutura de tabelas. Alm disso, ele tambm compacta e descompacta
banco de dados, e repara banco de dados corrompidos.
89
Opo
Descrio
File
New DataBase
Open DataBase
Close DataBase
Repair Database
Compact Database
Compacta/Descompacta DataBases.
Exit
Windo
w
Cascade
Help
Contents
ma vez com o um banco de dados aberto, voc pode: ver os dados de qualquer tabela
dentro dele, criar novas tabelas, adicionar campos a tabelas j existentes, alterar
7. Uma nova janela aparecer. Esta janela possui duas regies: a de campos e a de
ndices. Na parte de campos, pressionar o boto Add. Criar os seguintes campos :
Field Name
Field Type
cd_cargo
integer
nm_cargo
Text
Field Size
20
Field Type
cd_func
integer
nm_func
Text
cd_cargo
integer
endereco
Text
Field Size
20
80
91
Objeto DataBase
O objeto DataBase mantm informaes sobre o banco de dados aberto, suas regras de
acesso e sua estrutura ( a propriedade TableDefs do objeto DataBase possui todas
as informaes sobre as tabelas de um banco de dados ). Possui tambm funes
de controle de transaes. O Objeto DataBase a representao lgica de um
banco de dados no Visual Basic.
Assim como qualquer objeto, o DataBase possui propriedades e mtodos, atravs dos
quais voc pode manipular seus dados.
Para abrir uma banco de dados, usa-se a funo OpenDataBase. A sintaxe desta
funo depende do banco de dados que estiver sendo utilizado
Sintaxe : ( abertura de banco de dados Access )
OpenDatabase ( nome_bd [,exclusivo[,readonly [,string de conexo]]])
Exemplo :
Dim DB as database
Set DB = Open DataBase("C:\CURSO\EMPRESA.MDB", False, False)
Coleo
de
objetos
TableDef,
que
TableDefs Collection
O objeto TableDefs Collection, que tambm uma propriedade do objeto DataBase,
um conjunto de objetos TableDef , isto , o conjunto de todas as tabelas do
banco de dados.
Sua propriedade Count retorna o nmero de tabelas do banco de dados.
No exemplo abaixo, um boto foi criado, e ao click do boto, o seguinte cdigo foi
anexado. Veja o resultado que este produziu :
Sub Command1_Click ()
Dim db As database
Set db = OpenDatabase("c:\curso\empresa.mdb")
For i = 0 To db.TableDefs.Count - 1
Print db.TableDefs(i).Name
Next i
End Sub
94
Atravs dele, podemos ver o contedo de uma tabela, porm no possvel fazer
qualquer alterao nele, e tambm quaisquer alteraes feitas sobre a tabela no
sero refletidas no snapshot.
Abertura de Tables
Para a abertura de tables, utiliza-se o mtodo OpenTable sobre o objeto database.
necessrio criar anteriormente uma varivel do tipo Table.
Exemplo :
Dim DB As Database
Dim Tabela As Table
Set DB = OpenDatabase("BIBLIO.MDB")
Set Tabela = DB.OpenTable("Publishers")
95
Criao de Dynasets
Para a abertura de dynasets, utiliza-se o mtodo CreateDynaset sobre o objeto
database. necessrio criar anteriormente uma varivel do tipo Dynaset.
A abertura de um dynaset pode ser feita baseando-se em um comando SQL, ou
diretamente em cima de uma tabela.
Exemplo :
Dim DB As Database
Dim DS As Dynaset
Set DB = OpenDatabase("BIBLIO.MDB")
Set DS = DB.CreateDynaset("Publishers")
Exemplo :
Dim DB As Database
Dim DS As Dynaset
Set DB = OpenDatabase("BIBLIO.MDB")
Set DS = DB.CreateDynaset("Select * from Publishers")
Criao de SnapShots
Para a abertura de snapshot, utiliza-se o mtodo CreateSnapShot sobre o objeto
database. necessrio criar anteriormente uma varivel do tipo SnapShot.
Assim como Dynasets, A abertura de um snapshot pode ser feita baseando-se em um
comando SQL, ou diretamente em cima de uma tabela.
Exemplo :
Dim DB As Database
Dim SS As Snapshot
Set DB = OpenDatabase("BIBLIO.MDB")
Set SS = DB.CreateSnapshot("Publishers")
Exemplo :
Dim DB As Database
Dim SS As Snapshot
Set DB = OpenDatabase("BIBLIO.MDB")
Set SS = DB.CreateSnapshot("Select * from Publishers")
96
97
A criao real do novo registro somente ser efetivada pelo mtodo Update
(descrito a seguir ). O mtodo AddNew s aplicvel a Tables e Dynasets.
Sintaxe : [recordset].AddNew
Fecha um Table, Dynaset ou SnapShot.
Close
Sintaxe : [recordset].Close
Delete
Edit
Abre o registro corrente para alterao. A alterao efetiva somente ser feita
Sintaxe : [recordset].Edit
FindFirst, FindLast, FindNext, FindPrevious
[recordset].FindFirst Critrio
primeiro, ltimo, prximo ou anterior registro seja o registro corrente. Caso voc
esteja tentando mover para antes do primeiro registro ou para depois do ltimo
[recordset].MoveFirst
98
Exemplo :
Dim DB As Database, Tabela As Table
Set DB = OpenDatabase("BIBLIO.MDB")
Set Tabela = DB.OpenTable("Publishers")
Tabela.Index = "Chave_Primria 'Define
ndice corrente.
Tabela.Seek "=", 3
'Procura registro.
If Tabela.NoMatch Then...
Controle de Transaes
CommitTrans - define o fim com sucesso de uma transao. Todas as aes sero
realmente efetuadas no banco de dados.
Ex.: DB.CommitTrans
99
Um comando deve ser passado por vez e deve ser uma action query, ou seja, uma
query que inclua, altere ou exclua registros. Mltiplos registros podem ser
afetados pela action query de uma nica vez.
ExecuteSQL
Exemplo :
Dim DB as database
Dim linhas as long
linhas = DB.ExecuteSQL "Delete * from funcs where cidade =
'So Paulo'"
Execute
Exemplo :
Dim DB as database
DB.Execute "Delete * from funcs where cidade = So Paulo'"
A aplicao ser composta por um menu, que permite acessar uma tela de cargos e
outra de funcionrios. Na tela de cargos, inicialmente voc poder incluir um
cargo novo, ou procurar por um j existente. Caso voc escolha por uma procura, a
aplicao disponibilizar o registro procurado para alterao ou excluso.
100
Caption
Identao
MNUArquivo
Arquivo
MNUCargos
Cargos
MNUFuncs
Funcionrios
MNUSeparador
MNUSair
Sair
MNUAjuda
Ajuda
MNUSobre
Sobre
8. Crie dois Text Boxes, de Name TXBCodigo e TXBCargo, e propriedade Text = "".
9. Crie cinco Botes, com as seguintes propriedades :
Caption
Name
Visible
Enabled
101
CMDIncluir
True
True
Procurar
CMDProcurar
True
False
Alterar
CMDAlterar
False
True
Excluir
CMDExcluir
False
True
Cancelar
CMDCancelar
False
True
Alterar, logo abaixo Incluir, e mais abaixo, Procurar. Sobre o boto de Incluir,
DB , tipo database
DS, tipo Dynaset
Programando os menus
12. No Click de MNUCargos, digitar as seguintes linhas de cdigo :
Set ds = db.CreateDynaset("Cargos")
102
BOTO PROCURAR
15. Digitar as seguintes linhas de cdigo :
Dim Criterio as string
criterio = "cd_cargo = " + TXBCodigo.Text + " or nm_cargo = '" +
TXBCargo.Text + "'"
ds.FindFirst criterio
If Not ds.NoMatch Then
TXBCodigo.Text = ds("cd_cargo")
TXBCargo.Text = ds("nm_cargo")
CMDExcluir.Visible = True
CMDAlterar.Visible = True
CMDCancelar.Visible = True
CMDIncluir.Visible = False
CMDProcurar.Visible = False
Else
MsgBox "Registro No Encontrado"
End If
BOTO ALTERAR
16. Digitar as seguintes linhas de cdigo :
Dim Resp as integer
resp = MsgBox("Comfirma Alterao ?", 52)
If resp = 6 Then
ds.Edit
ds("cd_cargo") = TXBCodigo.Text
ds("nm_cargo") = TXBCargo.Text
ds.Update
End If
TXBCodigo.Text = ""
TXBCargo.Text = ""
103
BOTO EXCLUIR
17. Digitar as seguintes linhas de cdigo :
Dim resp as integer
resp = MsgBox("Confirma Excluso ?", 52)
If resp = 6 Then
ds.Delete
End If
TXBCodigo.Text = ""
TXBCargo.Text = ""
CMDExcluir.Visible = False
CMDAlterar.Visible = False
CMDCancelar.Visible = False
CMDIncluir.Visible = True
CMDProcurar.Visible = False
BOTO CANCELAR
18. Digitar as seguintes linhas de cdigo :
TXBCodigo.Text = ""
TXBCargo.Text = ""
CMDExcluir.Visible = False
CMDAlterar.Visible = False
CMDCancelar.Visible = False
CMDIncluir.Visible = True
CMDProcurar.Visible = False
Executando a aplicao
20. Incluir, excluir e alterar cargos. Tente agora reescrever o cdigo para incluso,
alterao e excluso de funcionrios.
104
Descrio
Connect
DataBase
DataBaseName
Exclusive
Name
Options
ReadOnly
RecordSet
Utilizando-se
esta
propriedade,
pode-se
onde,
Index o ndice do controle, caso exista Control Array, que est causando o evento
Reposition.
Evento Validate
Ocorre sempre antes que outro registro se torne o registro corrente. Qualquer
validao de dados deve ser feita neste momento, pois pode-se cancelar a alterao
do registro corrente.
Sintaxe :
Nome-do-DataControl_Validate
Integer,
Index
as
Integer, Action as
Save as Integer)
onde,
Index o ndice do controle, caso exista Control Array, que est causando o evento
Validate.
Action o tipo de ao que est causando a mudana do registro corrente. Se, durante
o evento Validate, voc quiser cancelar a ao, propriedade Action deve ser
atribudo o valor zero (0).
Save o parmetro que indica se os controles vinculados foram alterados ou no. Save
tem valor True quando qualquer um dos controles vinculados tem propriedade
DataChanged com valor True.
106
pode reabrir um Database, se uma das seguintes propriedades tiver sido alterada :
DataBaseName, ReadOnly, Exclusive ou Connect. Tambm pode reconstruir um
Dynaset se a propriedade RecordSet tiver sido alterada.
Exemplo :
Data1.Exclusive = True
Data1.Refresh
UpdateControls
usurio desiste de fazer uma alterao nos campos vinculados, porm no possui
mais os valores antigos.
Exemplo :
Sub Form_KeyDown (KeyCode As Integer, Shift As Integer)
Const KEY_ESCAPE = &H1B
If KeyCode = KEY_ESCAPE Then
Data1.UpdateControls
End If
End Sub
UpdateRecord
107
Valor
Name
Data1
Caption
""
DatabaseName
"c:\curso\empresa.MDB"
RecordSource
"Cargos"
Name
Text
DataSource
DataField
5. Criar
dois
Text1
Text2
TXBCodigo
TXBCargo
""
""
Data1
Data1
cd_cargo
nm_cargo
CommandButtons.
Nomeie-os
CMDInclui
CMDExcluir,
Executando a Aplicao
9. Inclua e exclua registros. Tente agora fazer o mesmo para Funcionrios.
Entrada de Dados
Objetivo
Apresentar algumas tcnicas para facilitar a entrada de dados para o usurio, alm de
introduzir conceitos de validao de dados, logo na entrada destes no sistema.
Controlando a Tabulao
109
Tab Index dos controles do formulrio. Esta propriedade vai sendo atribuda
medida que os controles vo sendo criados dentro do formulrio. Portanto, a
ordem de tabulao default a ordem de criao dos controles. No entanto, para
alterar esta ordem, basta alterar a propriedade Tab Index dos controles.
Tab Stop
Quando esta propriedade estiver com o valor false, o cursor no parar aqui
quando o usurio estiver usando o Tab para se movimentar pelo formulrio.
110
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.
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
111
O evento KeyPress ocorre sempre que o o usurio pressionar uma tecla que faa parte
do padro ASCII.
pressionada pelo usurio. Cada tecla unicamente identificada por um cdigo que
pode ser encontrado no arquivo CONSTANT.TXT. Desta forma, pode-se mapear
teclas de funo (F1, F2, ...), o Delete, etc..
112
Funo
Descrio
InStr
String
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.
113
EVENTOS
GotFocus
ou porque o usurio pressionou Tab, ou porque ele clicou sobre o outro controle,
ou atravs de aplicao.
Activate
um formulrio sempre que este passa a ser o formulrio ativo ( com foco ).
Deactivate
MTODOS
SetFocus
Obs.: No evento Click de botes cujas propriedades Default ou Cancel tenham valor
UnloadMode
Significado
115
Executando a Aplicao
3. Criar um executvel, coloc-lo em uma janela de programas do Windows, e
executr o programa. Tentar fechar o programa de todas as maneiras.
116