Sie sind auf Seite 1von 83

Controlando

a
Porta
Paralela

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 1
Apostila de PM – Programação para
Manufatura
Conteúdo
* Comunicação através da porta paralela
COMUNICAÇÃO VIA PORTA PARALELA DO PC

INTRODUÇÃO
Nosso objetivo principal é a comunicação de um PC com um dispositivo de hardware que permita o
controle de sistemas externos por um software específico feito pelo aluno, nas nossas aulas trabalharemos com
a porta paralela do PC, conhecida como a porta da impressora (LPT), na qual pode ser utilizada como saída ou
entrada. Inicialmente vamos concentrar nossos estudos para a saída de dados.
A porta paralela conhecida também como porta Centronics é utilizada no interfaceamento entre o
computador e um hardware específico (periférico). Atualmente vários dispositivos utilizam-se dela, tais como:
• Zip Drivers;
• Scanners;
• Câmeras e outros;
A Porta paralela é baseada na tecnologia TTL, isto é, trabalha com 0V ou 5V que significam respectivamente,
nível baixo e nível alto, ou ainda desligado e ligado.

ENDEREÇAMENTO DA PORTA PARALELA

Para começarmos o trabalho, primeiramente deve-se saber onde está à porta, o computador as nomeia de
LPT1, LPT2, LPT3 etc., mas a porta física default (padrão) é a LPT1 e seus endereços são 378H, 379H e
37AH. O “H” faz referência ao sistema hexadecimal de numeração.

Endereço Descrição

378H Envia um byte de dados para a porta.


379H Utilizado para receber um byte através da porta.
37AH Utilizada para enviar dados.

DESCRIÇÃO DA PINAGEM DA PORTA CONFORME O ENDEREÇO

Endereços 278H e 378H Endereços 279H e 379H Endereços 27AH e 37AH


D7 Pino 9 D7 Pino 11 D7 NC
D6 Pino 8 D6 Pino 10 D6 NC
D5 Pino 7 D5 Pino 12 D5 NC
D4 Pino 6 D4 Pino 13 D4 NC
D3 Pino 5 D3 Pino 15 D3 Pino 17
D2 Pino 4 D2 NC D2 Pino 16
D1 Pino 3 D1 NC D1 Pino 14
D0 Pino2 D0 NC D0 Pino 1

Legenda:
NC: Não conectado; CONECTOR DB25
D0..D7: Dado 1.. Dado 7;

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 2
Macho Fêmea

O conector DB25 localiza-se na parte de trás do seu gabinete e é através dele, que o cabo paralelo se
conecta ao computador para poder enviar e receber dados.

Cabo Paralelo, pronto para ser


ligado no gabinete

DESCRIÇÃO DA FUNÇÃO DE CADA PINO DO CONECTOR DB25


Conector Macho Conector Fêmea

Pino Sinal Direção Descrição


01 Strobe Out Sinal de Controle
02 Dado 00 Out Bit de dado 00
03 Dado 01 Out Bit de dado 01
04 Dado 02 Out Bit de dado 02
05 Dado 03 Out Bit de dado 03
06 Dado 04 Out Bit de dado 04
07 Dado 05 Out Bit de dado 06
08 Dado 06 Out Bit de dado 07
09 Dado 07 Out Bit de dado 08
10 Ack In Sinal de Controle
11 Busy In Sinal de Controle
12 Pe In Sinal de Controle
13 --- --- ---
14 Auto Feed XT out Out Sinal de Controle
15 --- --- ---
16 --- --- ---
17 --- --- ---
18 GND --- Sinal de terra
19 GND --- Sinal de terra
20 GND --- Sinal de terra
21 GND --- Sinal de terra
22 GND --- Sinal de terra
23 GND --- Sinal de terra
24 GND --- Sinal de terra
25 GND --- Sinal de terra

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 3
Não há necessidade do uso de todos os pinos, pode-se utilizar apenas pinos 2 a 9 (Vcc = 5V) e os pinos
18 a 25 (GND).

Um detalhe muito importante, é tomar muito cuidado com a corrente (I) na porta paralela, é
aconselhável a utilização de Buffers que serão responsáveis tanto pela isolação quanto a amplificação do sinal.
Mesmo sabendo-se que a porta paralela do computador trabalha sob a tecnologia TTL, não se pode
simplesmente ligar CI’s TTL na sua saída, pois seu computador pode utilizar tanto a tecnologia TTL LS (Low
Power Schottky) ou TTL HC (High Speed CMOS), que não possuem corrente suficiente para excitar os CI’s
TTL, no caso do meu computador à porta paralela apresentou uma corrente de saída em torno de 14mA uma
corrente de valor baixo, porém este fato não deve ser encarado como um problema, já que podemos contar
com alguns artifícios eletrônicos, tais como:

• Acopladores ópticos;
• Relés;
• Buffers (a literatura especializada recomenda o CI 74LS514);

SEQÜÊNCIAL DE LED’S
Um circuito muito simples para testar a porta paralela do PC é um circuito chamado
de seqüencial de led’s que é apresentado a seguir.

Lista de Componentes:
• 8 led’s de 5mm; 3 vermelhos; 3 verdes; e 2 amarelos
• 8 resistores de 220Ω (vermelho, vermelho, marrom);
• 1 placa de circuito impresso (10x5cm) de 1 face;
• 1 conector DB25 macho, fios;
• 1 Conector tipo borneira de 9 vias.

O circuito funciona da seguinte maneira: - Em cada uma das 8 saídas (Pinos 2 a 9) é ligado um led em série
com um resistor de 220Ω, sendo que cada led é ligado no pino que possui o sinal de terra (GND pinos 18 a 25)
do DB25. Deve-se tomar muito cuidado com a polaridade dos led’s, pois os mesmo são da mesma categoria dos
Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 4
diodos, isto é, possuem polaridade específica e a corrente (I) flui em apenas um sentido. No início é mandado
um sinal para a porta, com se fora um número binário e esse número corresponde a um byte (8 bits), sendo
assim cada led representa um bit, e agirá como tal. Por exemplo, se mandarmos o número 41 em decimal que
em binário corresponde a 00101001, teríamos acesos os led’s 1,4 e 6, porque são os que correspondem aos uns,
ou seja, estão em nível lógico alto, ou ainda estão injetando corrente no circuito. A seguir é apresenta um
possível diagrama para confecção da placa de circuito impresso.

Os pinos de 2 a 9 do DB25 são conectados na placa onde esta o sinal de “+”.


Os pinos de 18 a 25 são conectados onde tem o sinal de “-”.
No entanto para que o circuito entre em operação, é necessária uma linguagem de programação, que será
responsável pelo acionamento do circuito, ao longo do nosso curso nós utilizaremos o Visual Basic, pois é um
compilador de simples entendimento e rápida aprendizagem para os recursos que nós utilizaremos!

O que é o Visual Basic?


O Visual Basic é um compilador do tipo QuickBasic para criação de aplicativos para Windows, ele é na
realidade, uma aplicação do próprio Windows. É dessa forma que os programas em Visual Basic podem ser
criados, rodados, depurados e compilados diretamente no Windows. O Visual Basic possibilita aos usuários a
programação baseada em eventos e objetos. Isto quer dizer que o programador coloca na janela todas as opções
(menus, botões, ícones, controles, etc...) para que o usuário selecione uma delas com o mouse ou com o teclado.
Antes do Visual Basic uma aplicação era desenvolvida em linguagem C, juntamente com o Kit de
Desenvolvimento de Software do Windows, o que demandava muito tempo de aprendizagem.

Linguagem Baseada em Eventos


Ao darmos um clique com o mouse em um determinado objeto de um aplicativo Visual Basic, por
exemplo, um botão, estamos gerando um evento dentro do Windows o qual fará com que um determinado
pedaço de código seja executado. Podemos, também, colocar da seguinte maneira: um determinado pedaço de
código foi executado em decorrência de um evento gerado com o clique do mouse. Se o tal botão nunca for
apertado aquele código poderá jamais ser executado. Programadores de linguagens voltadas para DOS, estão
acostumados a escrever códigos que são executados de maneira sequencial, ou seja, o programa é orientado por
sequência, isto quer dizer que as linhas de código são executadas uma após a outra durante todo o programa.
Enquanto o programa não chega à última linha de código ele não para a não ser que o usuário intervenha
finalizando o programa antes que ele termine. No Windows é diferente. Não existe um corpo de programa com
início, meio e fim. O programa é orientado por eventos. Normalmente, um programa para Windows apresenta
várias opções possíveis na tela para que o usuário as selecione conforme sua necessidade, representando, assim,
um modo completamente novo de se programar. O Visual Basic é uma linguagem baseada em eventos. Isso
quer dizer que o responsável pelo fluxo do programa é o usuário e não mais o programador. Devemos ter isso
em mente quando estivermos projetando um aplicativo. Na programação orientada por sequência, normalmente
o usuário entra com os dados na sequência determinada pelo programador. O Visual Basic permite que o
usuário entre com os dados na ordem que preferir.

Linguagem Baseada em Objetos


Outra característica importante do Visual Basic é a de ser uma linguagem baseada em objetos. As
linguagens como o C++ e o Pascal, por exemplo, também baseadas em objetos, possuem classe e herança. No
Visual Basic, os objetos são pré-definidos, isto é, já existe uma coleção de objetos que acompanham o software.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 5
Para criar novos objetos, o programador deverá utilizar a opção User Control como sendo o tipo de projeto a ser
realizado. Os novos objetos só poderão ser criados a partir de um outro objeto já existente, portanto
basicamente esse novo objeto terá as mesmas características do objeto que serviu de base. Para criar objetos
capazes de realizar funções diferentes dos objetos existentes, você deverá criá-los em linguagem C. Dentro do
Visual Basic, os objetos são, por exemplo, menus, janelas, botões, quadros de texto, etc... Melhor especificados
no capítulo sobre objetos. Cada um dos objetos possui várias propriedades, métodos e eventos associados a
eles.

Ambiente de Desenvolvimento
O ambiente de programação do Visual Basic é composto pelas seguintes janelas: Janela Principal, Caixa de
Ferramentas, Janela de Propriedades, Janela de Projeto, Janela de Código e Formulário. É através dessas
janelas que podemos escolher os objetos que farão parte do nosso programa, configurar suas propriedades
conforme a especificação do programa, escolher os eventos que serão utilizados, etc.

Janela Principal

Essa janela é a responsável pelo controle geral do ambiente de programação do Visual Basic e contém uma
barra de ferramentas e de menus. O menu Help, fornece informações sobre todos os objetos e características do
Visual Basic. Está também disponível, através da tecla "F1" um Help On-Line, no qual podemos obter
informações detalhadas de um objeto previamente selecionado. Através desses recursos, também podemos
obter informações sobre a linguagem QuickBasic utilizada no Visual Basic. Com a barra de ferramentas,
temos um acesso mais rápido das funções do menu mais utilizadas.

Barra de Título

A barra de título é a barra horizontal localizada no topo da tela; ela informa o nome do aplicativo e é comum a
todos os aplicativos Windows da Microsoft. Interações entre o usuário e a barra de título são manipuladas pelo
Windows e não pelo aplicativo. Tudo o que está abaixo da barra de título e da barra de menu, em um aplicativo
Windows, é chamado de área do cliente. Seu aplicativo é totalmente responsável pela aparência, conteúdo e
resposta dos objetos que você alojou nessa área.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 6
Barra de Objetos
Essa barra está localizada à esquerda da tela do Visual Basic, logo abaixo da barra de ferramentas e
possui os objetos gráficos (botões, caixas de texto, caixa de figura, etc...) disponíveis para serem
utilizados dentro do projeto. O Visual Basic chama esses objetos de controles. O ambiente que você
está utilizando pode apresentar mais figuras do que o mostrado abaixo. Isso deve-se ao fato de o
Visual Basic ser um ambiente de programação aberto e extensível, ou seja, além dos controles
disponíveis no Visual Basic, podemos adquirir outros controles fornecidos por outras empresas ou
construir o nosso próprio controle.

Janela de Propriedades
As propriedades definem as características de cada objeto - controle da
aplicação. O conjunto de propriedades depende do controle selecionado. Por
exemplo, um formulário tem propriedades diferentes de uma figura. As
propriedades podem ser alteradas em tempo de projeto ou de execução, sendo
que algumas delas somente em tempo de execução. Para alterar o valor de uma
propriedade em tempo de execução só por meio de programação a ser carregada
através de um objeto, por exemplo, um botão ou assim que o programa for
carregado, já em tempo de projeto, devemos:

1. Selecionar o controle cuja propriedade deseja alterar;


2. Rolar pela lista de propriedades até encontrar a propriedade desejada;
3. Digitar o novo valor;
4. Pressionar ENTER para confirmar a alteração efetuada.

Janela de Projetos
Essa janela possui uma lista dos arquivos que estão sendo utilizados dentro do
programa que estamos desenvolvendo. Podemos ter arquivos com extensões
"BAS", "FRM”, "VBP" e outros dentro dessa janela. O Visual Basic organiza os
trabalhos por projeto, permitindo que cada projeto possa ter vários módulos.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 7
Janela de Código
Essa janela contém a declaração de variáveis,
constantes e rotinas. Na figura ao lado, podemos ver
dois quadros combo, um contendo a lista de objetos
dentro do nosso programa e o outro uma lista de
eventos disponíveis para cada um dos objetos.
Podemos observar na figura que o evento
selecionado é o "Click" e o objeto é o formulário. O
comando Beep na linguagem do Visual Basic gera
um aviso originário do alto-falante do PC. Portanto
cada vez que o usuário der um clique com o mouse
no formulário o procedimento "Form_Click( )" será executado e gerará um "beep".

Funções e Sub-Rotinas
As funções (functions) e sub-rotinas (subs) são chamadas de procedimentos (procedures). Existem três tipos de
procedimentos:
1.) do Visual Basic;
2.) associados aos eventos;
3.) criados pelo programador.

Os procedimentos do Visual Basic são, por exemplo, os métodos, as funções matemáticas, as funções
manipuladoras de "Strings", etc. Os procedimentos associados aos eventos são aqueles procedimentos que são
chamados em resposta a um evento. Adicionamos códigos a eles através da Janela de Código do formulário.
Os procedimentos criados pelo programador são aquelas sub-rotinas e funções utilizadas para melhorar a
estruturação do código. Podemos ter, por exemplo, uma função que abre um arquivo. Essa função trataria os
possíveis erros e retornaria o número do arquivo aberto. Esse procedimento estaria declarado dentro do objeto
"General" da Janela de Código de um formulário ou de um módulo. Dentro do Visual Basic, a diferença entre
uma função e uma sub-rotina é que a função retorna um valor e a sub-rotina não.

Formulário

Essa é a janela do nosso aplicativo. Quando o usuário iniciar o programa, a mesma aparecerá. A janela possui
os quadros minimizar, maximizar, fechar e menu de controle. É nessa janela que colocaremos os controles
gráficos (botões, quadros de texto, etc.) e também o código associado a esses objetos. Para abrir uma janela de
código, basta dar um duplo clique em cima do objeto do qual um evento deve ser tratado.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 8
Agora vamos colocar em pratica!

Visual Basic – Comunicação


Porta paralela
Como uma linguagem de alto nível, o Visual Basic não oferece recursos para
acesso direto ao hardware. Desta forma, para acessar, por exemplo, a porta
paralela ou serial devemos possuir um componente externo, o qual atuará como
interface entre nosso programa e o hardware.

Componentes para acesso direto ao hardware devem ser desenvolvidos através de


linguagens que permitem instruções de baixo nível (como Assembly ou C).
Porém, para acesso à porta paralela, temos à disposição na Internet uma série de
DLLs gratuitas.

No nosso curso estamos utilizando a "inpout32.DLL" – uma DLL gratuita que


permite a entrada (input) e saída (output) de dados através da porta serial RS232.
Essa DLL deve residir na pasta do projeto ou na pasta c:\windows\system32.

O uso da "inpout32.DLL" é bastante simples! Basta introduzirmos as seguintes


declarações em um módulo do projeto:
Public Declare Function Inp Lib "inpout32.dll" _
Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Public Declare Sub Out Lib "inpout32.dll" _
Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As
Integer)

Esta instrução faz a declaração da função Inp, que na realidade se


encontra na biblioteca “inpout32.dll” sob o nome “Inp32”.

Observe que o underline (_) indica apenas que o comando continua na linha de
baixo. A mesma instrução pode ser escrita em uma única linha, conforme
mostrado abaixo:

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 9
Esta segunda instrução faz a declaração da função Out, que se encontra
na biblioteca “inpout32.dll” sob o nome “Out32”.

Aqui também o underline (_) indica que o comando continua na linha de baixo. A
mesma instrução pode ser escrita em uma única linha, conforme abaixo:
Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 10
Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 11
Vamos elaborar um projeto VB para praticar:
Para colocar em prática as funções estudadas (Inp e Out), inicie um projeto em VB e, primeiramente,
adicione um módulo através do menu Project/Add Module. Insira, dentro do módulo, as declarações das
funções Inp e Out, conforme figura abaixo:

Após isso, siga os seguintes passos orientados pelo professor:

1 Adicionar um total de 8 Command Button’s e distribuí-los no formulário de forma


organizada e simétrica, cada botão deve conter em sua propriedade “caption” o valor
correspondente a um número, de acordo com sua propriedade “name”, por exemplo: “(name):
Command1 (Caption): 1”, “(name): Command2 (Caption): 2”, “(name): Command3 (Caption)
3”, e assim sucessivamente até o oitavo botão.
2 Crie mais dois botões, agora um com o “(Caption): Apagar (name): cmdapagar”, e
outro com o “(Caption): Sair (name): cmdsair”
3 Insira acima dos botões uma Label, que vai ter sua propriedade “(caption)” vazia,
modifique a propriedade Border Style para opção 1-Fixed Single e vamos modificar o tamanho
da fonte também, na propriedade (fonte) clique nos três pontinhos e altere o tamanho da fonte
para 24 coloque em negrito.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 12
Agora que terminamos a construção da interface gráfica, vamos para parte da
programação. Como é nosso primeiro projeto, vamos fazer juntos desde o início, para que o
formulário fique centralizado na tela do Windows, basta dar dois cliques no formulário e
colocar a seguinte linha de comando no evento Load, que quer dizer, ao carregar:

Private Sub Form_Load ( )


Top = (Screen.Height - Height) / 2
Left = (Screen.Width - Width) / 2
End Sub

Vamos ao funcionamento do nosso programa:


Quando um daqueles oito botões for pressionado, ira acender o led
correspondente ao seu numero, e ira aparecer na Label à seguinte frase:
O led “nº?” está aceso. O botão “apaga”, apaga todos os leds acesos, e o
botão “sair”, sai do programa.

Formulário pronto com todos os botões e a label.

Código fonte do programa acima:

Private Sub cmdapagar_Click() 'linha de código do botão apagar (evento Click)


Out &H378, "&h" & 0 'envia para o endereço H378(porta paralela)
'o valor zero, que apaga todos os led's
Label1.Caption = "" 'muda o valor da propriedade caption do objeto label1
'para vazio
End Sub ‘fim da linha de comando

Private Sub cmdsair_Click() 'linha de código do botão sair (evento Click)


End 'comando simples para encerrar o programa
End Sub ‘fim da linha de comando

Private Sub Command1_Click() 'linha de código do botão 1 (evento Click)


Out &H378, "&h" & 1 'envia para o endereço H378(porta paralela)
'o valor 1 que acende o primeiro led
Label1.Caption = "O led nº1 está aceso" 'muda o valor da propriedade
'caption do label1 para o texto entre aspas
End Sub ‘fim da linha de comando

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 13
Private Sub Command2_Click()
Out &H378, "&h" & 2
Label1.Caption = "O led nº2 está aceso"
End Sub

Private Sub Command3_Click()


Out &H378, "&h" & 4
Label1.Caption = "O led nº3 está aceso"
End Sub

Private Sub Command4_Click()


Out &H378, "&h" & 8
Label1.Caption = "O led nº4 está aceso"
End Sub

Private Sub Command5_Click()


Out &H378, "&h" & 10
Label1.Caption = "O led nº5 está aceso"
End Sub

Private Sub Command6_Click()


Out &H378, "&h" & 20
Label1.Caption = "O led nº6 está aceso"
End Sub

Private Sub Command7_Click()


Out &H378, "&h" & 40
Label1.Caption = "O led nº7 está aceso"
End Sub

Private Sub Command8_Click()


Out &H378, "&h" & 80
Label1.Caption = "O led nº8 está aceso"
End Sub

Private Sub Form_Click() 'linha de código do formulário (evento Click)


Beep 'comando que reproduz um som nos auto falantes.
End Sub ‘fim da linha de comando

Private Sub Form_Load() 'linha de comando do formulário (evento Load) = ao carregar

Top = (Screen.Height - Height) / 2 'comandos que mandam o formulário para o


Left = (Screen.Width - Width) / 2 'Centro do monitor ao carregar.

End Sub ‘fim da linha de comando

Observação: As informações que seguem, serão usadas apenas para possíveis consultas, pois para
satisfazer as necessidades das nossas aulas, o conteúdo descrito até aqui basta, as informações complementares
serão passadas durante as aulas.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 14
Menus
Menu File

Você precisará do menu principal File para trabalhar com os arquivos que compõem seu projeto. Esse menu
inclui comandos para salvar, abrir e imprimir arquivos. O menu File também permite que você saia do Visual
Basic através de um item para isso, a outra maneira é utilizando as teclas de combinação do Windows ALT +
F4 quando estiver posicionado na barra de menu principal. Como em qualquer aplicativo Windows, você
também poderá abrir a caixa de controle na barra de menu e escolher Exit ou dar um duplo clique nessa caixa.
A maioria dos itens do menu principal File é útil apenas quando você inicia o desenvolvimento de seu próprio
aplicativo. Abaixo segue um breve resumo sobre os itens para orientá-lo melhor:

Menu Edit

Abaixo segue um breve resumo sobre os itens para orientá-lo melhor:

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 15
Menu Project

O menu Project contém itens que possibilitam a inserção de vários procedimentos, janelas, códigos, módulos,
etc. em seus projetos. Abaixo segue um breve resumo sobre os itens para orientá-lo melhor:

Menu Format

Menu Debug

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 16
Menu Run

Menu Tools

Menu Add-Ins

O menu Add-Ins lhe permite acessar ferramentas separadas que podem ser incorporadas ao Visual Basic.
Existem dois Add-Ins fornecidos com várias versões do Visual Basic. O Report Manager, que é representado
pelo software da empresa Seagate Crystal Reports, atualmente na versão 7.0, é uma ferramenta completa para
modificar e criar relatórios que você poderá utilizar em seu programa. A outra ferramenta inclusa é o Visual
Data Manager, que é usado para gerenciamento de Banco de Dados. Utilize o Add-In Manager para adicionar e
Remover Add-Ins do menu.
Abaixo segue um breve resumo sobre os itens para orientá-lo melhor:

Menu Window

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 17
Menu Help

Barra de Ferramentas

Janelas
Janela de Projetos

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 18
Esta janela contém informações sobre o projeto em uso. É nela que serão exibidos todos os projetos utilizados
ao mesmo tempo, caso existam, ou o único projeto aberto. Abaixo do projeto, estarão definidos os nomes dos
formulários em uso no projeto.
Você notará que existem dois nomes independentemente do que estiver sendo exibido nesta janela. O primeiro
nome é o nome lógico (nome dado ao objeto) e o segundo nome é o nome físico (nome dado ao arquivo), este
estará sendo exibido sempre entre parênteses.
Ainda nesta janela através dos ícones, temos a possibilidade de ir até a janela de código, (janela em que se
programa as atividades para os objetos), voltar para o modo de exibição do formulário e também exibir os
formulários em formato de pastas de um projeto.

Janela de Propriedades

É nesta janela que o programador altera as características originais dos objetos utilizados no(s) formulário(s)
do programa. Quando se cria um objeto dentro do formulário, devemos selecioná-lo clicando apenas uma vez
nele mesmo no formulário e depois clicar na janela de propriedades, onde serão isoladas apenas as propriedades
do objeto selecionado. Então o programador irá alterar algumas das propriedades adequando assim o objeto a
ficar com as características e aparência desejada.
Esta mesma janela, possui uma caixa combo situada ao topo. Esta caixa contém o nome de todos os objetos
utilizados no formulário em desenvolvimento. Esta é a outra forma do programador localizar e selecionar o
objeto para trabalhar com suas propriedades sem ter que selecioná-lo no formulário.

Obs: As propriedades dos objetos também podem ser alteradas através de programação na janela de código,
para que os objetos sofram as alterações no decorrer do programa, devido aos eventos em que foram
programados.

Janela de Posicionamento do Formulário

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 19
É através desta janela que o programador posiciona o local em que o formulário aparecerá assim que o
programa for executado. Outra maneira de fazer isto, é acessando a propriedade do formulário Startup
Position e escolher a opção Center Screen, mas não será possível acessar esta propriedade, caso esteja sendo
usado um formulário do tipo MDI. Então o posicionamento deverá ser feito através de programação ou por esta
janela.

Como centralizar um formulário através de programação:

Private Sub Form_Load ( )


Top = (Screen.Height - Height) / 2
Left = (Screen.Width - Width) / 2
End Sub

Comandos mais Utilizados


Os comandos mais comumente utilizados no Visual Basic, estão descritos nos sub-ítens deste capítulo, são eles:

Comandos Objetivo

MsgBox (Caixa de Mensagem) Emitir um aviso ao usuário


InputBox (Caixa de Entrada) Pedir informação ao usuário
If...End If (Se...Fim) Fazer Perguntas ou Validações
Unload me - End (Encerrar) Fechar um Formulário ou Software

Comentários

Comentários são utilizados, como lembretes de informação junto à programação e são muito importantes
porque poderão auxiliar na documentação do software.

Vamos detalhar os principais comandos:

MsgBox
Descrição
Exibe uma mensagem em uma caixa de diálogo, esperando pelo usuário clicar um botão, e retorna um valor
indicando que o usuário clicou o botão.

Sintaxe

MsgBox (prompt [, buttons][, title][, helpfile, context])

A sintaxe do comando MsgBox tem estes argumentos:

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 20
Partes Descrição

Prompt Expressão texto exibida como a mensagem em uma caixa de diálogo. A quantidade
máxima de caracteres que poderão ser utilizados em uma mensagem é de
aproximadamente 1024 caracteres, dependendo da largura ocupada pelos caracteres
usados. Se a mensagem consiste em mais do que uma linha, você pode separar as linhas
usando um caracter de retorno (Chr(13)), alimentando linha com um ENTER, caracter
(Chr(10)), alimentando linha com a quebra da mesma, ou ainda usar uma combinação
(Chr(13) & Chr(10)) entre cada linha.
Buttons Expressão numérica que representa a soma dos valores, especificando o número e o tipo
de botões para exibir, o estilo da ícone para usar, a identidade do botão padrão, e a
modalidade da caixa de mensagem. Veja as opções na seção para valores. Se omitidos, o
valor padrão para botões é 0.
Title Expressão de texto exibida na barra de título da caixa de diálogo. Se você omitir o título,
o nome da aplicação entra no lugar da barra de título.
Helpfile Não suportada.
Context Não suportada.

As opções de argumentos do botão são:


Constantes Valor Descrição

vbOKOnly 0 Exibe somente o botão de ok.


vbOKCancel 1 Exibe os botões de ok e cancelar.
vbAbortRetryIgnore 2 Exibe os botões abortar, repetir e ignorar.
vbYesNoCancel 3 Exibe os botões sim, não e cancelar.
vbYesNo 4 Exibe os botões de sim e não.
vbRetryCancel 5 Exibe os botões repetir e cancelar.
vbCritical 16 Exibe a ícone de mensagem de parada crítica.
vbQuestion 32 Exibe a ícone de questão.
vbExclamation 48 Exibe a ícone de mensagem de alerta.
vbInformation 64 Exibe a ícone de mensagem informativa.
vbDefaultButton1 0 O primeiro botão é padrão.
vbDefaultButton2 256 O segundo botão é padrão.
vbDefaultButton3 512 O terceiro botão é padrão.
vbDefaultButton4 768 O quarto botão é padrão.
vbApplicationModal 0 Modalidade da Aplicação; o usuário deverá responder a
mensagem da caixa antes de continuar trabalhando na
aplicação em utilização.
vbSystemModal 4096 Modalidade do Sistema; todas as aplicações são
suspendidas até que o usuário responda a caixa de
mensagem.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 21
O primeiro grupo de valores(0–5) descreve o número e o tipo de botões exibidos na caixa de diálogo; o segundo
grupo (16, 32, 48, 64) descreve o estilo da ícone; o terceiro grupo (0, 256, 512, 768) determina qual botão é o
padrão; e o quarto grupo (0, 4096) determina a modalidade da caixa de mensagem. Quando estiver adicionando
números para criar um valor final para os argumentos dos botões, use somente um número de cada grupo.

Retorno de Valores

A caixa de mensagem segue os valores retornados abaixo:

Constantes Valor Botões

vbOK 1 OK
vbCancel 2 Cancelar
vbAbort 3 Abortar
vbRetry 4 Repetir
vbIgnore 5 Ignorar
vbYes 6 Sim
vbNo 7 Não

Obs: Se a caixa de diálogo exibe um botão de cancelar, pressionando a tecla ESC obtem-se o mesmo efeito
como ter clicado o botão de cancelar.

InputBox
Descrição

Exibe um prompt em uma Caixa de Diálogo, esperando que o usuário entre com um texto ou clique um botão, e
retorna o conteúdo de um TextBox.

Sintaxe

InputBox(prompt[, title][, default][, xpos][, ypos][, helpfile, context])

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 22
A sintaxe do InputBox possui estes argumentos:

Partes Descrição

Prompt É exibida uma mensagem em formato texto em uma


caixa de diálogo. O tamanho máximo da mensagem é
aproximadamente 1024 caracteres, dependendo da
largura dos caracteres usados. Se a mensagem consiste de
mais do que uma linha, você pode separar as linhas
usando um caracter de retorno (Chr(13)), alimentando
linha com um ENTER, caracter (Chr(10)), alimentando
linha com a quebra da mesma, ou ainda usar uma
combinação (Chr(13) & Chr(10)) entre cada linha.
Title Expressão de texto exibida na barra de título da caixa de
diálogo. Se você omitir o título, o nome da aplicação
entra no lugar da barra de título.
Default Expressão de texto exibida na caixa de texto como a
resposta padrão se outra entrada não é providenciada. Se
você omitir default, a caixa de texto é exibida vazia.
xpos Expressão numérica que especifica, em pixels, a distância
horizontal da margem esquerda da caixa de diálogo da
margem esquerda da tela. Se xpos é omitida, a caixa de
diálogo é centralizada horizontalmente.
ypos Expressão numérica que especifica, em pixels, a distância
vertical da margem superior da caixa de diálogo do topo
da tela. Se ypos é omitida, a caixa de diálogo é
posicionada verticalmente aproximadamente em 1/3 da
altura da tela.
Helpfile Não suportada.
Context Não suportada.

Obs: Se o usuário clicar OK ou pressionar ENTER, o retorno da caixa de entrada, contudo está na caixa de
texto. Se o usuário clicar Cancelar, o retorno é um texto de tamanho zero ("").

IF ... ENDIF
Condicionalmente executa uma seleção de comandos baseados no valor de uma expressão lógica.

Sintaxe

IF Expressão [THEN]
Comandos
[ELSE
Comandos]
ENDIF

Argumentos

Expressão

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 23
Especifica a expressão lógica que recebe valor. Se a Expressão recebe valor verdadeiro (.T.), qualquer comando
seguido do IF ou THEN e precedendo ELSE ou ENDIF (que sempre ocorrerão primeiro) são executados.

• Se a Expressão é falsa (.F.) e o ELSE é incluído, qualquer comando depois do ELSE e antes do ENDIF
é executado.

• Se a Expressão é falsa (.F.) e o ELSE não é incluído, todos os comandos entre o IF e o ENDIF são
ignorados. Neste caso, a execução do programa continua com o primeiro comando seguindo até o
ENDIF.

Obs: Você pode definir um bloco IF ... ENDIF sem outro bloco IF ... ENDIF. Os comentários precedidos por
&& podem estar especificados em alguma linha depois de IF, THEN, ELSE, and ENDIF. Estes comentários
são ignorados durante a compilação e execução do programa.

Unload - End
Unload

O comando Unload é utilizado para fechar formulários que integram um projeto. Pode ser usado de duas
formas:

Sintaxe:

• Unload Me;
• Unload Form1.

Quando escrevemos Me, estamos nos referindo ao formulário atual em uso. Isto é feito para substituir o nome
do formulário, quando o nome fornecido a ele na propriedade name é muito grande. Já no segundo caso,
utilizamos o nome de um Formulário. Portanto, mesmo estando em um determinado formulário, ao clicarmos
em um botão, por exemplo, podemos estar fechando um outro formulário, basta apenas escrever Unload e
fornecer o nome do formulário a ser fechado.
Os únicos casos em que o comando Unload seguido de Me ou diretamente do nome de um Form qualquer
poderá estar fechando um projeto, serão:

• Se estivermos diretamente no formulário principal de um sistema;


• Se estivermos na única tela de um programa.

End

O comando End é utilizado para encerrar o programa, lembrando que End significa Fim. Geralmente encontra-
se em um item de menu descrito como Sair ou Fechar, em um botão, ou diretamente na programação, fazendo
com que o sistema encerre-se propositalmente após algumas interações do usuário.

Comentários
Comentários são acrescidos ao programa para explicar o que um código faz. É muito simples perguntar-se por
que os comentários são importantes - até que você tente modificar ou consertar um programa que alguém
escreveu ou mesmo que você escreveu meses atrás. Os comentários não são executados nem processados pelo
Visual Basic. Eles não ocupam nenhum espaço nos códigos compilados. Existem duas formas de indicar um
comentário. A forma usual é indicar um comentário com aspas simples. Veja o exemplo abaixo:

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 24
Private Sub Command1_Click ( )
' Um comentário descrevendo o procedimento que viria aqui
' Toda linha de comentário ficará na cor verde
End Sub

Obs: Você pode utilizar a velha palavra-chave Rem.

Você poderá também acrescentar comentários no final das linhas. Nesse caso é mais prático utilizar aspas
simples, porque a forma Rem requer dois-pontos antes dele.

Objetos

A Terminologia do Visual Basic


Propriedade, Método e Evento

O Visual Basic é composto de formulários e controles genericamente chamados de objetos. Cada um dos
objetos possui várias propriedades listadas na Janela de Propriedades.

As propriedades dos objetos nos permitem saber e modificar as características desses objetos. Por exemplo, o
nome, a cor, o tamanho, a legenda, o tipo e o tamanho da fonte com que o texto aparece e sua posição, são
propriedades associadas aos quadros de texto, "Labels" (legendas) e botões de controle, opção e de seleção.

Ao selecionarmos um determinado objeto, dando um clique com o mouse sobre ele, a Janela de Propriedades
automaticamente listará as propriedades disponíveis para aquele objeto e então poderemos modificá-las. Cada
objeto reconhece as seguintes ações, tais como um clique do mouse, abertura de formulário, digitação em um
quadro de texto, etc. Essas ações são chamadas de eventos.

Para uma aplicação responder às ações do usuário e aos eventos do sistema, são utilizados os procedimentos
associados a cada evento. Por exemplo, um botão de controle reconhece os seguintes eventos:

Eventos Ações

Click Um botão é acionado com o mouse ou com o teclado.


DragDrop Um controle é solto em cima do botão.
DragOver Um controle está sendo arrastado sobre o botão.
GotFocus O botão recebe a atenção do sistema, ou seja, qualquer ação do usuário através do mouse ou
teclado será recebida pelo botão.
KeyDown Uma tecla é pressionada enquanto o botão tem a atenção do sistema.
KeyPress Uma tecla é pressionada e um valor AscII é retornado.
LostFocus O botão perde a atenção do sistema para outro objeto.

Quando um evento ocorre em uma aplicação, o sistema automaticamente reconhece o evento e executa o
código associado a esse evento escrito pelo programador. Esse código é chamado de procedimento do evento
("Event Procedure"). Esse procedimento aparece na Janela de Código.

O nome do procedimento associado ao evento é composto pelo nome do objeto e pelo nome do evento. O nome
do objeto para todos os formulários é "Form" e para os controles é o que aparece na propriedade "Name" do

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 25
controle.

Devemos escrever código somente para os eventos que serão utilizados em nossa aplicação.

O método é um procedimento ("Function ou Sub") que atua nos objetos. Por exemplo, um quadro de lista é um
controle que possui os seguintes métodos:

Métodos Ações

Adicionar um novo item no quadro de lista durante o tempo de execução, ou seja, quando o
AddItem
programa está sendo executado.
Clear Limpar o conteúdo do quadro de lista.
Move Movimentar o quadro de lista para uma nova posição no formulário.
Refresh Forçar uma atualização imediata ao quadro de lista.
RemoveItem Remover um item do quadro de lista.
SetFocus Fazer com que o sistema transfira sua atenção para o quadro de lista.

Formulários

Os formulários são utilizados como interface com o usuário dentro de uma aplicação. Cada formulário é uma
janela que pode conter controles gráficos e outros formulários. Podemos utilizar os formulários como uma tela
de ilustração, um quadro de diálogo ou como um formulário que contém outro. Podemos modificar o tamanho e
localização na tela do formulário, clicando e arrastando o mouse na borda e na barra de título desse formulário,
respectivamente.

Além dos controles, os formulários podem conter código e variáveis. Na verdade, cada formulário possui a
própria janela de código. Dentro do objeto "General" da janela de código, podemos declarar variáveis,
constantes e procedimentos criados por nós. Na janela de projeto, os arquivos com extensão " .FRM" contém,
cada um, um formulário, os controles contidos nele, uma lista das propriedades do formulário e dos controles,
as variáveis e constantes utilizadas e o código associado.

Um projeto pode conter vários formulários e podemos adicionar um novo formulário selecionando o item "Add
Form" dentro do menu "Project". Podemos ter ainda outro tipo de formulário: o do tipo "MDI" (Multiple
Document Interface). Esse tipo de formulário pode conter outros formulários dentro dele. Cada projeto pode
conter apenas um formulário do tipo "MDI". Os formulários que estão dentro do formulário "MDI" possuem a
propriedade "MDIChild" como "True" e são chamados de formulários Filho. Adicionamos um formulário
"MDI" ao projeto selecionando o item "Add MDI Form" dentro do menu "Project".

Controles

São ferramentas utilizadas nos formulários para receber e mostrar informações. Os quadros de texto, botões,
rótulos, quadros de figuras, etc., são exemplos de controles. Os controles disponíveis em um projeto são
mostrados na Caixa de Ferramentas ("ToolBox") e possuem a extensão de arquivo "OCX". Para inserir uma
ferramenta de controle em seu projeto em Visual Basic, você deve selecionar o item "Components..." dentro do
menu "Project", normalmente os arquivos ".OCX", encontram-se no diretório "WINDOWS\SYSTEM", mas
você pode importá-los de outros diretórios normalmente.

Podemos inserir um controle no formulário de trabalho de duas maneiras:

1. Dando um duplo clique com o mouse no controle localizado na caixa de ferramentas;

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 26
2. Selecionar o controle na Caixa de Ferramentas. Dar um clique com o botão do mouse na posição
desejada do formulário (ponto inicial) e arrastar até conseguir o tamanho desejado, soltando em seguida
o botão (ponto final).

Para os controles já localizados no formulário, podemos modificar o seu tamanho da seguinte maneira:

1. Selecionar o controle do formulário dando um clique com o mouse;


2. Apertar o botão da esquerda do mouse sobre um dos quadrados localizados na borda do controle;
3. Arrastar o mouse até o tamanho desejado;
4. Soltar o botão.

Podemos mudar a posição dos controles localizados no formulário da seguinte maneira:

1. Posicionar o apontador do mouse no meio do controle;


2. Apertar o botão da esquerda do mouse e arrastar até a posição desejada;
3. Soltar o botão.

Para modificar a propriedade dos controles, devemos:

1. Selecionar o controle;
2. Selecionar a propriedade desejada da Janela de Propriedades;
3. Modificar a propriedade.

Módulos

São arquivos de extensão " .BAS" que contém declarações (variáveis e constantes) e procedimentos (funções e
sub-rotinas). Podemos criar um módulo selecionando o item "Module" dentro do menu "Project". O Visual
Basic mostra uma janela de código com o título "Module". Podemos também ver, na janela de projeto, o
arquivo criado.

É aconselhável trocarmos o nome padrão dado pelo Visual Basic, pois os arquivos “ .BAS" são uma maneira de
reaproveitarmos as mesmas funções e sub-rotinas para várias aplicações. Selecionando o item "Save File As..."
dentro do menu "File", podemos fazer essa alteração.

Projeto

É um arquivo " .VBP" que contém a lista dos formulários, módulos e controles que compõem uma aplicação.
Repetindo, a Janela de Projeto lista todos os arquivos da aplicação. Cada projeto contém pelo menos um
formulário. Podemos inserir quantos formulários desejarmos dentro de um projeto. Selecionamos o item "New
Project" dentro do menu "File" para criarmos um novo projeto. O Visual Basic abre esse novo arquivo com o
nome padrão de "Project1.vbp" É aconselhável modificarmos esse nome, selecionando o item "Save Project
As..." dentro do menu "File".

Etapas de Desenvolvimento de um Projeto

Há três etapas para a criação de um aplicativo em Visual Basic.

1. Criar a interface com o usuário;


2. Configurar as propriedades dos objetos;
3. Escrever o código.
Para criarmos a interface com o usuário, podemos seguir os seguintes passos:

1. Abrir um novo projeto;


Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 27
2. Salvar o projeto e o formulário criado com os nomes desejados;
3. Modificar o tamanho do formulário, adequando-o aos requisitos do programa.
4. Adicionar os controles necessários (botões, quadros de texto, etc.);
5. Adicionar mais formulários e controles;
6. Salvar esses formulários com os nomes escolhidos;
7. Salvar todo o projeto.

Na segunda etapa do desenvolvimento, devemos configurar as propriedades de todos os objetos. É muito


importante, nessa etapa, darmos nome a cada um dos objetos, configurando-os através de sua propriedade
"Name". É aconselhável, para uma boa documentação, incluirmos no nome do objeto o seu tipo também. Por
exemplo, podemos dar o nome "frmprincipal" para a janela (formulário) que iniciará a aplicação. No item
"Properties..." do menu "Project", podemos ver e alterar o formulário que inicia o aplicativo.

Na terceira etapa, adicionamos o código, ou seja, projetamos como o programa responderá aos diferentes
eventos (cliques, duplo clique, teclas adicionadas, interrupção causada pelo temporizador, redimensionamento
de uma janela, etc.). Devemos lembrar que essas três etapas não dispensam um projeto de software detalhado,
isto é, como o programa deverá funcionar, como será o fluxo de dados dentro do programa, os algorítmos
utilizados, a interface com o usuário, etc.

Propriedades e Eventos mais Utilizados

Propriedades comuns a todos os objetos:


Propriedades Ações

BackColor Determinar a cor de fundo de um objeto.


Enabled Determinar se o formulário ou controle podem responder aos eventos gerados pelo usuário.
Determinar a fonte, o estilo e tamanho a ser usada para mostrar um texto em um controle; é
Font
usada também em tempo de execução para desenhar e imprimir.
ForeColor Determinar a cor do texto impresso.
Height Determinar a dimensão vertical externa de um objeto.
Determinar a distância entre a borda esquerda de um objeto e a borda esquerda do objeto
Left
que a contém.

MousePointer Determinar o tipo do ponteiro do mouse mostrado quando ele está sobre uma parte
específica de um formulário ou controle.
Especificar o nome usado no código para identificar um formulário, controle ou objeto de
Name
acesso a dados. Não está disponível em tempo de execução.

ToolTipText Exibir uma janela de assistência junto ao ponteiro do mouse, movendo-o sobre um
formulário ou controle.
Determinar a distância entre a borda interna superior de um objeto e a borda superior do
Top
objeto que o contém.
Visible Determinar se o objeto está visível ou não.
Width Determinar a dimensão horizontal de um objeto.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 28
Eventos comumente utilizados nos objetos:
Eventos Ações

Activate Ocorre quando um formulário se tornar uma janela ativa.


Ocorre quando o conteúdo de uma caixa de combinação (caixa combo), barra de paginação
Change
(barra de rolagem), etiqueta, caixa de figura ou caixa de texto mudar.
Ocorre quando o usuário pressiona e solta o botão do mouse sobre um objeto. Pode também
Click
ocorrer quando o valor do controle é modificado.
DblClick Ocorre quando o usuário dá um duplo clique com o mouse.

DragDrop Ocorre quando uma operação de “arrastar e soltar" é completada como resultado do
arrastamento sobre um formulário ou controle e soltura do botão do mouse.
Ocorre quando uma operação de "arrastar e soltar" está em progresso. Pode ser utilizado para
DragOver monitorar se o ponteiro do mouse entra, deixa ou está diretamente sobre um alvo válido. O
ponteiro do mouse determina que o objeto receba o evento.
GotFocus Ocorre quando um objeto recebe a atenção do sistema (focus). Iremos notar que um
formulário recebe a atenção somente quando todos os controles visíveis estão desabilitados.
KeyDown Ocorre quando o usuário pressiona uma tecla.
KeyPress Ocorre quando o usuário pressiona e solta uma tecla.
KeyUp Ocorre quando o usuário solta a tecla previamente pressionada.
LostFocus Ocorre quando um objeto perde a atenção do sistema (focus).
MouseDown Ocorre quando o usuário pressiona o botão do mouse.
MouseMove Ocorre quando o usuário movimenta o mouse.
MouseUp Ocorre quando o usuário solta o botão do mouse previamente pressionado.

Controles
Todos os controles possuem abreviações para facilitar a programação. Assim caso, o programador esteja lendo
um artigo ou desenvolvendo um programa que esteja em um livro (ou outra) fonte e não exista uma foto ao
menos da tela deste programa, ele facilmente poderá identificar os controles existentes dentro deste programa
apenas acompanhando suas abreviações. Abaixo seguem as Abreviações dos Controles básicos utilizados pelo
Visual Basic.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 29
Controles Abreviações

CheckBox CHK
ComboBox CMB
CommandButton CMD
Data (Control) DTC
DirListBox DIR
DriveListBox DRV
FileListBox FIL
Form FRM
Frame FRM
HScrollBar SCR
Image IMG
Label LBL
Line LIN
ListBox LST
Ole OLE
OptionButton OPT
PictureBox PCT
Shape SHP
TextBox TXT
Timer TMR
VScrollBar SCR

As Propriedades Principais do CheckBox

Propriedades Ações

Alignment Especifica se o texto ficará do lado esquerdo da caixa.


Caption O texto anexado ao objeto checkbox.
Habilita ou não este objeto. Estando desabilitado, não aceitará que o usuário faça evento
Enabled
com a caixa de checagem.
Font Escolhe uma fonte para o texto digitado no caption.
Name Nomeia o objeto. A inicial abreviada para este tipo de controle é "chk".
Value Determina o estado do objeto: unchecked, checked ou grayed.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 30
As Propriedades Principais do ComboBox

Propriedades Ações

Style Escolhe o tipo de caixa de combinação que será utilizada: dropdown combo, simple combo,
dropdownlist.
Text Nesta propriedade digita-se um texto que ficará como padrão, fixo na área de texto, na caixa
de combinação. Geralmente deixa-se em branco.

As Propriedades Principais do CommandButton

Propriedades Ações

Se esta opção for ajustada como verdadeira, o botão será associado à tecla ESC e sempre
Cancel
que pressionarmos essa tecla, será como se tivéssemos apertado o botão.
Caption O título que será exibido dentro do botão.
Estando o botão com essa propriedade como True, indica que este botão será o padrão desta
Default janela e sempre que apertarmos a tecla ENTER, será como se tivéssemos clicado sobre o
botão.
Enabled Determina se o botão será habilitado para pressionamento por parte do usuário ou não.
Font Escolhe a fonte de letra que o Caption terá.
Name O nome que daremos para o objeto botão de comando.
Determina se o botão será visível para o usuário quando o
Visible
programa estiver em execução.

As Propriedades Principais do Data

Propriedades Ações

DataBaseName Localização da base de dados a ser utilizada pelo programa.


RecordSource Associa a tabela da base de dados a ser utilizada pelos campos contidos no formulário.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 31
As Propriedades Principais do Form

Propriedades Ações

Apperance Define se o modo de exibição será 3D ou normal.


BackColor Muda a cor de fundo do formulário.
Muda o tipo de borda do formulário.
None: Sem borda, sem barra de título, sem menu de controle, sem botão maximizar e
sem botão minimizar e não pode redimensionar a janela.
FixedSingle: Borda Fixa. Aceita o menu de controle, maximizar, minimizar, barra de
título e pode ser redimensionada.
Sizable: Borda comum. Possui o menu de controle, maximizar, minimizar, barra de
título e pode ser redimensionada.
Fixed Dialog: Muito usada para janelas que vão manter um diálogo com o usuário. Ela
BorderStyle pode ter menu de controle e a barra de título, mas não terá os botões de maximizar e
minimizar. Não pode ser redimensionada.
Fixed ToolWindow: Não possui o menu de controle, o botão maximizar e o botão
minimizar. Também não pode ser redimensionada. Aparecerá somente à barra de título e
o botão fechar, próprio do windows, esse tipo de formulário não aparece na barra de
tarefas do windows.
Sizable ToolWindow: Não possui o menu controle, o botão maximizar e o botão
minimizar. Pode ser redimensionada. Aparecerá somente à barra de título e o botão
fechar, próprio do windows, esse tipo de formulário não aparece na barra de tarefas.
Caption Será o texto mostrado na barra de título do formulário (da janela).
ControlBox Retira ou coloca o menu de controle, botão maximizar, minimizar e fechar a janela.
Se esta opção estiver com False, indica que nenhum objeto desta janela, e nem a própria
Enabled janela, poderão responder a eventos gerados pelo usuário, como clicar do mouse,
pressionamento de teclas, etc.
Font Escolhe a fonte padrão que será usada para todos os objetos inseridos neste formulário.
Icon Nesta propriedade escolhemos um arquivo de ícone que irá representar o programa.
KeyPreview Determina se os eventos do teclado no formulário serão executados antes dos eventos
correspondentes aos objetos inseridos no formulário.
MaxButton Habilita ou não o botão de maximização.
MDIChild Determina se a janela será uma janela filha. Ou seja, terá uma outra janela mestra
incorporando-a.
MinButton Habilita ou não o botão de minimização.
Sempre que o mouse for movido em cima do formulário, o ícone associado a esta
MouseIcon propriedade aparecerá (desde que a propriedade MousePointer esteja customizada, ou
seja, personalizada).
MousePointer Nesta propriedade especificamos o tipo de ponteiro que o mouse terá quando se mover
sobre o formulário. Os tipos de ponteiro de mouse estão abaixo da tabela.
Name Nome definido para o objeto formulário.
Picture Insere uma figura em nosso formulário.
ShowInTaskbar Habilita ou não a possibilidade da janela aparecer na barra de tarefas do windows.
Visible Determina se, ao executarmos o programa, essa janela ficará visível ou invisível.

WindowState Determina se, ao executarmos o programa, a janela aparecerá na tela do computador


normal, maximizada ou minimizada.
Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 32
Ponteiros do mouse:

0 - (Default) Ponteiro padrão;


1 - Ponteiro em forma de seta;
2 - Ponteiro de seleção exata;
3 - Seleção de escrita;
4 - Ícone (variados);
5 - Seleção de mover objetos;
6 - Redimensionamento na diagonal;
7 - Redimensionamento na vertical;
8 - Redimensionamento na diagonal;
9 - Redimensionamento na horizontal;
10 - Seleção alternada;
11- Sinal de ocupado;
12 - Não disponível (ocupado);
13 - Trabalhando em segundo plano;
14 - Seleção de ajuda;
15 - Todos os tamanhos;
99 - Aparece o ícone escolhido na propriedade MouseIcon.

As Propriedades Principais do Frame

Propriedades Ações

Caption Coloca um texto no canto superior esquerdo da moldura.


Determina se todos os objetos colocados no interior da moldura estarão disponíveis ou não
Enabled
para o usuário.
Nome dado ao objeto. A inicial abreviada é "frm". Cuidado para não colocar um name igual
Name
ao de algum form.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 33
As Propriedades Principais do HScrollBar

Propriedades Ações

Max Valor máximo a ser utilizado pela barra de rolagem,


geralmente 100.
Min Valor mínimo a ser utilizado pela barra de rolagem,
geralmente 0.

As Propriedades Principais do Image

Propriedades Ações

Figura a ser exibida pelo objeto. Pode ser qualquer


Picture arquivo de imagem suportado pelo Visual Basic ou
até mesmo um arquivo de ícone.
Strech Possibilita que a imagem seja esticada mantendo toda
a visualização possível dentro da área do objeto.

As Propriedades Principais do Label

Propriedades Ações

AutoSize Com esta propriedade habilitada, indicamos ao controle para redimensionar


automaticamente seu tamanho do texto no label.
BackColor Escolhe a cor de fundo que envolverá o label.
BackStyle Escolhe entre o fundo transparente ou opaco para o label.
BorderStyle Escolhe entre colocar uma moldura envolvendo o label ou não.
Caption A propriedade principal do label. Determina o texto que será exibido dentro do objeto.
Habilita ou desabilita o objeto. Quando está em False, a cor de seu conteúdo fica
Enabled
acinzentada.
Font Escolhe a fonte que terá o texto digitado na propriedade caption.
ForeColor Escolhe a cor da fonte do label.
Nomeia o objeto label. Como já foi dito, é importante que todos os objetos sejam
Name
nomeados. A inicial do label é "lbl".
Visible Indica se o objeto será visível ou não para o usuário.
Quando o autosize está em True, não é possível expandir o texto digitado na propriedade
WordWrap caption em outras linhas. Mas, se passarmos essa propriedade wordwrap para True, isto
poderá ser feito, bastando para isto, dimensionarmos o label.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 34
As Propriedades Principais do ListBox

Propriedades Ações

Columns Determina a quantidade de colunas que a caixa de listagem terá.


Enabled Habilita ou não o listbox para o usuário selecionar algum item no objeto.

IntegralHeight Determina a possibilidade dos itens dentro da caixa de listagem serem exibidos de
maneira parcial.
Nesta propriedade existe uma caixa onde colocamos números relacionados com os itens
ItemData
existentes dentro do listbox.
List É o local onde digitamos os itens que estarão dentro do listbox.
Quando esta propriedade estiver habilitada, significa que a caixa de listagem aceitará
MultiSelect múltiplas seleções, ou seja, poderá ser selecionado mais de um item: none, simple e
extended.
Name Nome que o objeto listbox terá. A abreviação para este objeto é "lst".
Classifica os itens existentes dentro do listbox em ordem alfabética ou numérica
Sorted ascendente. Esta propriedade em tempo de execução tem a finalidade de informar o
estado que se encontra o sorted.

As Propriedades Principais do OptionButton

Propriedades Ações

Alignment Determina se o texto ficará do lado direito ou esquerdo do botão de opção.


Caption O texto que será anexado ao objeto.
Habilita ou não este objeto. Estando desabilitado, o usuário não poderá selecionar a opção e
Enabled
a cor do texto será acinzentada.
Name Nomeia o objeto. A inicial abreviada para este tipo de controle é "opt".
Value True para opção selecionada e False quando não está selecionada.

As Propriedades Principais do PictureBox

Propriedades Ações

Figura a ser exibida pelo objeto. Pode ser qualquer


Picture arquivo de imagem suportado pelo Visual Basic ou
até mesmo um arquivo de ícone.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 35
As Propriedades Principais do TextBox

Propriedades Ações

BackColor Escolhe a cor de fundo da caixa de texto. Geralmente é branca.


BorderStyle Tipo da borda: Fixa e simples ou sem borda.
Enabled Estando em False, o objeto não estará habilitado para interagir com o usuário.
Font Escolhe a fonte que será mostrada dentro da caixa de texto.
ForeColor Escolhe a cor da fonte.
Locked Estando em False, trava qualquer digitação na caixa de texto.
MaxLength Quantidade máxima de caracteres dentro da caixa de texto.
MultiLine Habilita a possibilidade de se digitar mais de uma linha na caixa de texto.
Name Nomeia o objeto textbox. A inicial do textbox é "txt".
Se durante a digitação de qualquer dado na caixa de texto, quisermos que o Visual Basic
PasswordChar mostre outro caracter no lugar do caracter digitado, é só especificarmos aqui qual
queremos que seja mostrado. Muito usado para digitação de senhas.
Estando a propriedade multiline habilitada, é interessante colocarmos uma scrollbar na
ScrollBars caixa de texto, pois ela acrescentará uma barra de rolagem que poderá ser: horizontal,
vertical, ambas.
A propriedade text é a mais importante deste objeto. Todo texto digitado pelo usuário
Text
dentro da caixa de texto é incorporado nesta propriedade.

As Propriedades Principais do Timer

Propriedades Ações

Interval Associa o intervalo de tempo em que a programação


contida no objeto ocorrerá.

As Propriedades Principais do VScrollBar

Propriedades Ações

Max Valor máximo a ser utilizado pela barra de rolagem,


geralmente 100.
Min Valor mínimo a ser utilizado pela barra de rolagem,
geralmente 0.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 36
Não vamos estudar todos os objetos de controle, apenas alguns como:

• CommandButton
• Label
• TextBox
• Frame
• CheckBox
• OptionButton
• Timer

CommandButton

Obs:Um botão de comando é tipicamente usado para iniciar um evento que retorna uma ação com fechar um
formulário, movimentação para um registro diferente, imprimir u relatório, etc. Use a propriedade Caption para
especificar o texto que aparece no botão de comando. Use a propriedade Picture para especificar uma figura
para um botão de comando, só não se esqueça de habilitar a propriedade Style para Graphical, caso contrário a
figura não aparecerá. Você pode escolher um botão de comando para clicá-lo e se a propriedade Default está
selecionada para True (.T.), pelo pressionamento da tecla ENTER o botão de comando é selecionado. Se a
propriedade Cancel do botão de comando está selecionada para True (.T.), você pode escolher o botão de
comando pelo pressionamento da tecla ESC.

Exercício Proposto 1

Siga os seguintes passos:

• No menu File escolha a opção New Project;


• Escolha então o tipo de projeto Standard Exe.

Feito isto, construa os seguintes botões no formulário, utilizando-se das propriedades descritas na tabela abaixo:

Name Caption

CmdLimpar Limpar
CmdOk Ok
CmdCancelar Cancelar
CmdFechar Fechar

Na propriedade Name do formulário digite FrmCommand1 e na propriedade Caption digite "Exemplo do


objeto Command".

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 37
O resultado obtido deverá ser o formulário abaixo:

<>

Após termos construído a tela, deveremos passar para a parte da programação. Para gerar a programação,
devemos clicar duas vezes no objeto desejado.

Programação do botão Limpar:

<>

Programação do botão Ok:

<>

Programação do botão Cancelar:

<>

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 38
Programação do botão Fechar:

<>

Programação para centralizar o Formulário:

<>

O resultado deste exercício será a impressão das mensagens inseridas dentro dos botões através do comando
Print diretamente no formulário, como na figura abaixo:

<>

Para retirar as mensagens escritas no formulário, é só clicar no botão Limpar e para encerrar o programa é só
clicar no botão Fechar. No momento de salvar, o nome a ser dado ao projeto é PrjCommand1.

Exercício Proposto 2

Siga os seguintes passos:

• No menu File escolha a opção New Project;


• Escolha então o tipo de projeto Standard Exe.

Feito isto, reconstrua o exercício anterior, mas desta vez, utilize as seguintes propriedades a mais no objeto
CommandButton:

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 39
Propriedades Opções

Style Graphical
Qualquer arquivo de
Picture
figura

Modifique também a propriedade Caption dos objetos, acrescentando & antes do nome físico. Você estará
criando uma tecla de atalho para eles. Assim, quando você precisar utilizar o CommandButton, é só clicar nele
ou manter pressionada a tecla “Alt”, do lado esquerdo do teclado, seguida da letra escolhida para atalho.

Na propriedade Name do formulário digite FrmCommand2 e na propriedade Caption digite "Exemplo do


objeto Command".

O resultado obtido deverá ser o formulário abaixo:

<>

No momento de salvar, o nome a ser dado ao projeto é PrjCommand2.

Obs: A letra escolhida para ser o atalho do objeto deverá possuir & antes e não necessariamente deverá ser a
primeira letra, poderá ser uma letra do meio ou do final da palavra.

Label
Labels são usados para exibir texto e não podem ser editados pelo usuário. Eles são usados para identificar
objetos em um formulário providenciando uma descrição do que um certo controle fará se clicado, por exemplo
em tempo de execução, Eles podem exibir informação em resposta a um evento ou processo em sua aplicação.

Labels são usados em muitas instâncias nas mais diferentes situações. Muito comumente, eles são usados com
controles que não tem a propriedade Caption. Por exemplo, você pode usar o controle label para adicionar
descrições para TextBoxes, ListBoxes, ComboBoxes e outros. Eles também podem ser usados para descrever
textos em um formulário, por exemplo, para auxiliar o usuário com informação de ajuda. Você pode também
escrever um código que altere o texto exibido por um label em resposta à eventos em tempo de execução. Por
exemplo, se sua aplicação leva alguns minutos para processar uma alteração, você pode exibir uma barra de
status processando uma mensagem através de um label.

Obs: Este controle não pode receber foco.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 40
Selecionando a Propriedade Caption do Label

Para alterar o texto exibido em um label, use a propriedade Caption. Em tempo de projeto, você pode selecionar
esta propriedade, selecionando-a na Janela de Propriedades. Você pode utilizar o tamanho da propriedade
Caption até o máximo de 1024 bytes.

Alinhando o Texto

A propriedade Alignment permite que você selecione o alinhamento do texto do label para Justificado à
Esquerda (0, é o padrão) , Centralizado (1), ou Justificado à Direita (2).

As Propriedades AutoSize e WordWrap

Pelo padrão, quando inserimos um texto dentro da propriedade Caption excedendo a largura do controle, o texto
desce para a próxima linha e é alterado se ele excede a altura do controle. Para que o controle ajuste
automaticamente seu conteúdo, selecione a propriedade AutoSize para True. O controle expandirá
horizontalmente para receber o conteúdo da propriedade Caption. Para que o conteúdo desça uma linha e
expanda verticalmente, selecione a propriedade WordWrap para True.

Usando Labels para Criar Chaves de Acesso

Selecione a propriedade UseMnemonic para True se você quiser definir um caracter na propriedade Caption do
label como uma chave de acesso. Quando você define uma chave de acesso em um label, o usuário pode
pressionar e utilizar ALT + o caracter que o programador designou para mover o foco para o próximo controle
na ordem da tabulação.

Você pode também criar chaves de acesso para muitos outros controles que tiverem uma propriedade Caption
adicionando o caracter (&) antes da letra que você quiser usar como a tecla de acesso. Para um controle receber
uma tecla de acesso sem que ele tenha a propriedade caption, use um label com o controle. Por que o controle
label não pode receber foco, então o foco se move automaticamente para o próximo controle na ordem
fornecida na propriedade TabIndex. Use esta técnica para fornecer teclas de acesso para TextBox, PictureBox,
ComboBox, ListBox, DriveListBox, DirListBox, Grid e Image.

Para Definir uma Chave de Acesso com um Label

1. Selecione o label primeiro, e então desenhe o controle.

-ou-

Desenhe o controle em qualquer ordem e selecione a propriedade TabIndex do label para numerar o uso
do controle.

2. Use o caracter & na propriedade Caption para fornecer uma tecla de acesso para o label.

Obs: Você pode querer exibir teclas de acesso em um controle label, se você estiver usando eles para criar
teclas de acesso. Isto permite que você una um controle label a um campo de uma linha de registro onde os
dados são incluídos através do &. Para exibir & em um controle label, selecione a propriedade UseMnemonic
para False.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 41
Exercício Proposto

Siga os seguintes passos:

• No menu File escolha a opção New Project;


• Escolha então o tipo de projeto Standard Exe.

Feito isto, construa os seguintes labels no formulário, utilizando-se das propriedades descritas na tabela abaixo:

Name Caption

LblNome Nome do Paciente


LblSexo Sexo
LblExame Exame

Na propriedade Name do formulário digite FrmLabel e na propriedade Caption digite "Exemplo do objeto
Label".

O resultado obtido deverá ser o formulário abaixo:

<>

No momento de salvar, o nome a ser dado ao projeto é PrjLabel.

Com certeza, os objetos criados não ficaram com esta mesma aparência apresentada acima. Para isso, algumas
propriedades dos labels deverão ser alteradas. Siga as instruções abaixo e confira o resultado:

Objeto Propriedades

LblNome Font
AutoSize, BorderStyle,
LblSexo
Font e ForeColor
BackColor, Font,
LblExame ForeColor e
WordWrap

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 42
TextBox
Obs: Para exibir múltiplas linhas de texto em um controle TextBox, altere a propriedade MultiLine para True.
Se um TextBox com MultiLine não tem uma barra de rolagem horizontal, o texto é automaticamente ajustado
quando o TextBox é redimensionado. Para personalizar a barra de rolagem de um TextBox, selecione a
propriedade ScrollBars.

Barras de rolagem sempre aparecerão em um TextBox quando a propriedade MultiLine dele é alterada para
True, e a propriedade ScrollBars dele é alterada para qualquer coisa exceto None (0). Se você alterar a
propriedade MultiLine para True, você pode usar a propriedade Alignment para alterar o alinhamento do texto
dentro do TextBox. O texto padrão é justificado à esquerda. Se a propriedade MultiLine é False, alterar a
propriedade Alignment não proporcionará efeito.

Exercício Proposto

Siga os seguintes passos:

• No menu File escolha a opção New Project;


• Escolha então o tipo de projeto Standard Exe.

Feito isto, construa os seguintes objetos no formulário, utilizando-se das propriedades descritas na tabela
abaixo:

Name Caption Text

LblNomePaciente Nome do Paciente


TxtNomePaciente -
LblSexo Sexo
TxtSexo -
LblExame Exame
TxtExame -
CmdOk Ok
CmdCancelar Cancelar

Na propriedade Name do formulário digite FrmTextBox e na propriedade Caption digite "Exemplo do


objeto TextBox".

Obs: a propriedade que define o conteúdo de texto no objeto TextBox, é o Text.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 43
O resultado obtido deverá ser o formulário abaixo:

<>

Após termos construído a tela, deveremos passar para a parte da programação. Para gerar a programação,
devemos clicar duas vezes no objeto desejado.

Programação da caixa de texto Nome do Paciente:

<>

Programação da caixa de texto Sexo:

<>

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 44
Programação da caixa de texto Exame:

<>

Programação do botão Ok:

<>

Programação do botão Cancelar:

<>

Programação para centralizar o Formulário:

<>

No momento de salvar, o nome a ser dado ao projeto é PrjTextBox.

Frame
Frames são usados para criar grupos de controles com identidades. Por exemplo, você pode usar um frame para
subdividir um formulário funcionalmente, separando grupos de botões de opções (OptionButton).

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 45
Figura 1. O controle Frame

Em muitos casos, você usará o frame passivamente para agrupar outros controles e não terá a necessidade de
responder por ele nos eventos. Você irá, com tudo, alterar o Name, Caption, ou a propriedade Font.

Adicionando um Frame em um Formulário

Quando usamos um frame para agrupar outros controles, primeiro desenhamos um frame, e então desenhamos
os controles dentro dele. Isto habilita você a movimentar o frame e os controles contidos nele junto.

Desenhando controles dentro do Frame

Para adicionar outros controles no frame, desenhem eles dentro do frame. Se Você desenhar um controle do
lado de fora do frame, ou usar o método do duplo-clique para adicionar um controle em um formulário, e então
tentar movimentar ele para dentro do frame, o controle será posto no topo do frame e você terá que movimentar
o frame e os controles separadamente.

Figura 2. Controles dentro do Frame

Obs: Se você já tem os controles e quer agrupá-los em um frame, você pode selecionar todos os controles,
recortá-los, enviando-os para a área de transferência, selecionar o frame, e então colá-los dentro do frame.

Selecionando múltiplos controles em um Frame

Para selecionar múltiplos controles em um frame, pressione a tecla CTRL enquanto estiver usando o mouse
para desenhar uma caixa em torno dos controles. Quando você soltar o mouse, os controles dentro do frame
serão selecionados, como na Figura 3.

Figura 3. Selecionando controles dentro de um Frame

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 46
Check Box
O controle checkbox exibe uma marca de checagem quando ele é selecionado. Ele é comumente utilizado para
presenciar uma seleção Sim/Não ou Verdadeiro/Falso para o usuário. Você pode utilizar este controle em
grupos para exibir múltiplas escolhas das quais o usuário pode selecionar uma ou mais.

Este controle é similar ao controle optionbutton, mas neste cada opção é usada para indicar uma seleção que é
feita pelo usuário. Eles diferem somente porque um optionbutton em um grupo pode ser selecionado por vez.
Com o controle check box, porém, qualquer número de caixas de checagem pode ser selecionado.

O Valor da Propriedade

A propriedade Value do check box indica se o check box está checado, não-checado ou não acessível. Quando
selecionado, o valor será 1. Por exemplo:

Tabela de valores e constantes do Visual Basic equivalentes que são usadas para selecionar a propriedade
Value.

Opção Valor Constante

Não-Checado 0 VbUnchecked
Checado 1 VbChecked
Não-Acessível 2 VbGrayed

O usuário clica no controle check box para indicar um estado checado ou não-checado. Você pode então testar
o estado do controle e programar sua aplicação para desenvolver alguma ação baseada nesta informação.

Por padrão, o check box é selecionado para vbUnchecked. Se você quer preselecionar um check box de uma
série de check boxes, você pode selecioná-lo através da propriedade Value para vbChecked na rotina
Form_Load ou Form_Initialize.

Você pode também selecionar a propriedade Value para vbGrayed para desabilitar o check box. Por exemplo,
pode querer desabilitar um check box até que uma certa condição seja acionada.

O Evento Click

Porém se o usuário clica no check box, o evento Click é acionado. Você pode então programar sua aplicação
para desenvolver alguma ação dependendo do estado do check box. Como no exemplo, a propriedade caption
do controle check muda cada vez que o controle é clicado, indicando um estado checado ou não-checado.

Private Sub Check1_Click()

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 47
If Check1.Value = vbChecked Then
Check1.Caption = "Checked"
ElseIf Check1.Value = vbUnchecked Then
Check1.Caption = "Unchecked"
End If
End Sub

Obs: Se o usuário clicar duas vezes no controle check box, cada clique será processado separadamente, porque
o controle check box não suporta o evento double-click.

Respondendo pelo Mouse e pelo teclado

O evento click do check box é também acionado quando o foco é passado para o controle com o teclado usando
a tecla TAB e então pressionando a tecla de espaço.

Você pode selecionar o check box através do caracter que cria tecla de atalho (&). Por exemplo:

Neste exemplo, pressionando a combinação de teclas ALT+C você pode alternar entre os estados checado e
não-checado.

Exercício Proposto

Siga os seguintes passos:

• No menu File escolha a opção New Project;


• Escolha então o tipo de projeto Standard Exe.

Feito isto, construa os seguintes objetos no formulário, utilizando-se das propriedades descritas na tabela
abaixo:

Name Caption

FrmOpcoes -
ChkArroz Arroz
ChkFeijao Feijão
ChkFritas Fritas
ChkOvo Ovo
ChkBife Bife
CmdFechar &Fechar

Na propriedade Name do formulário digite FrmFrameCheckBox e na propriedade Caption digite "Exemplo


do objetos Frame e CheckBox".

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 48
O resultado obtido deverá ser o formulário abaixo:

No momento de salvar, o nome a ser dado ao projeto é PrjCheckBox.

OptionButton
Usualmente, os controles OptionButton são usados em um grupo de opções para exibir opções das quais o
usuário seleciona somente uma. Você agrupa os controles OptionButton desenhando-os dentro de uma
controle que os contêm como um Frame, um PictureBox, ou um formulário. Para agrupar os controles
OptionButton em um Frame ou PictureBox, desenhe o Frame ou o PictureBox primeiro, e então desenhe os
controles OptionButton dentro. Todos os controles OptionButton com o mesmo recipiente, contidos no
mesmo grupo.

Enquanto o controle OptionButton e o controle CheckBox parecem funcionar similarmente, há uma


importante diferença: Quando um usuário seleciona um OptionButton, o outro controle OptionButton do
mesmo grupo está automaticamente não disponível. Em contraste, qualquer número de controles CheckBox
poderá ser selecionado.

Exercício Proposto

Siga os seguintes passos:

• No menu File escolha a opção New Project;


• Escolha então o tipo de projeto Standard Exe.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 49
Feito isto, construa os seguintes objetos no formulário, utilizando-se das propriedades descritas na tabela
abaixo:

Name Caption

FrmSexo Sexo
OptMasculino Masculino
OptFeminino Feminino
FrmEstado Estado Civil
OptSolteiro Solteiro
OptCasado Casado
OptViuvo Viúvo
OptSeparado Separado
OptDivorciado Divorciado
CmdFechar &Fechar

Na propriedade Name do formulário digite FrmOptionButton e na propriedade Caption digite "Exemplo do


objeto OptionButton".

O resultado obtido deverá ser o formulário abaixo:

No momento de salvar, o nome a ser dado ao projeto é PrjOption.

Timer
O controle Timer realiza ações atribuídas a ele de acordo com a passagem do tempo. Eles são independentes do
usuário, e você pode programá-los para ter ações em intervalos de tempo regulares. Uma típica ação realizada

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 50
com ele é a checagem do relógio do sistema para visualizar as horas em alguma barra de tarefas. Timers
também são muito usados para outros tipos de processamento.

Cada controle timer tem uma propriedade chamada Interval que especifica o número de milisegundos (ms) que
passam entre um evento de tempo para o próximo. Mesmo desabilitado, um timer continua a receber um evento
(apropriadamente nomeado de evento Timer) em um estado inacabado igual ao intervalo de tempo.

A propriedade Interval tem poucas limitações para considerar quando você está programando em um controle
timer:

• Se sua aplicação ou outra aplicação é feita exigindo uma demanda maior do sistema tal como longos
retornos, cálculos intensivos, ou leitura de drives, redes, ou portas de acesso sua aplicação não permite
rodar no evento timer com frequência como especificado na propriedade Interval.
• O intervalo poderá ser entre 0 e 64.767, o que significa que um intervalo muito longo não poderá ser
mais longo do que um minuto (cerca de 64.8 segundos).
• O intervalo não é garantido exatamente com o decorrer do tempo. Para assegurar exatidão, o timer exibe
a checagem do relógio do sistema quando necessário, melhor do que tentar incrementar valores
acumulados internamente como se fosse tempo.

Todo controle timer deverá ser associado com um form. Contudo, para criar uma aplicação com tempo, você
deverá criar no mínimo um form.

Inicializando um Controle Timer

Um controle timer tem duas propriedades fundamentais:

Propriedade Opção
Se você quiser que o controle timer inicie trabalhando, como o evento load do form,
Enabled altere esta propriedade para True. Em todo caso, deixe esta propriedade
selecionada como False. Você poderá escolher ter um evento externo (como um
clique de um botão de comando, por exemplo) para iniciar a operação do timer.
Interval Número de milisegundos entre os eventos do timer.

Note que a propriedade Enabled do controle timer é diferente da propriedade Enabled dos outros objetos. Na
maioria dos objetos, a propriedade Enabled determina qual objeto pode responder por um evento causado pelo
usuário. Com o controle Timer, alterando a propriedade Enabled para False suspendemos as operações do
timer.

Obs: Lembre-se que o evento Timer é periódico. A propriedade Interval não determina "quanto tempo" e sim
"qual a frequência". O tamanho do intervalo depende de quanta precisão você vai precisar, porque, existe a
chance em potencial de que algum erro ocorra fazendo um intervalo quebrado, mesmo assim você terá mais
precisão.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 51
Agora vamos entrar na parte de variáveis, elas são muito importantes em qualquer projeto, nos
projetos mais complexos indispensáveis.

Variáveis
O que são Variáveis?

Toda linguagem de programação precisa de algum lugar para armazenar o resultado de seus cálculos ou
simplesmente para controlar o fluxo do programa. Assim como acontece na álgebra cotidiana, as linguagens de
programação se valem de variáveis para armazenar dados na memória do computador. Uma variável de
memória nada mais é do que uma posição da memória do computador reservada exclusivamente para que sejam
guardadas informações e dados. A essa posição de memória damos um nome para referência dentro do nosso
programa, como por exemplo, NomeCliente. Quem controla qual posição de memória do computador será
reservada é a própria linguagem e o sistema operacional, ou seja, devemos apenas nos preocupar em nomear e
declarar as variáveis. E já que estamos falando de variáveis, quando formos nomeá-las, deveremos seguir
algumas regras básicas:

• O nome precisa iniciar com uma letra.


• Somente são permitidas letras, números e o caractere de sublinhado. Qualquer sinal de pontuação e
espaço em branco será inválido.
• No Visual Basic 6.0, os nomes podem ter até 255 caracteres de comprimento. Isso significa que
podemos ter nomes de variáveis bem descritivos, como por exemplo, PrimeiroNomeDoCliente.
• Não podem coincidir com uma palavra reservada do Visual Basic, como nomes de funções ou
procedimentos.
• Precisam ser únicos dentro do escopo atual, ou seja, não podemos ter duas variáveis com o mesmo
nome dentro de uma rotina, porém, entre rotinas diferentes, isso é perfeitamente possível.

Escolha nomes sugestivos para as variáveis, de tal forma que descrevam sua função ou conteúdo que será
armazenado nelas. Por exemplo, para uma variável onde seria armazenado o resultado do cálculo do salário de
um funcionário, poderíamos escrever nSalarioFunc, em vez de X, Y ou Z.

Acostume-se a iniciar o nome de uma variável com uma combinação de até três letras em minúsculo que
identifica o seu tipo de dado. Por exemplo, para uma variável do tipo string, utilize a combinação "str", para
uma variável numérica inteira utilize "int", e assim por diante. Veja os seguintes exemplos:

strNomePrograma = "Controle de Despesas Domésticas"

lngSaldoInicial = 125080

Declaração de Variáveis

Embora você possa ir criando variáveis a medida que for precisando, é aconselhável que declare todas as
variáveis que irá utilizar em seu programa. Isso torna o programa mais estruturado e menos propenso a erros,
como por exemplo, ocorrências de alterações indevidas do valor de uma variável entre chamadas de rotinas.
Quando declaramos uma variável, um escopo é atribuído a ela, ou seja, é determinada sua abrangência
(visibilidade) e tempo de vida (existência). No Visual Basic 6.0, utilizamos o comando de declaração Dim para
declararmos uma variável, dando-lhe assim um nome e definindo o seu tipo de dado e escopo.

A sintaxe completa é:

Dim NomeVariável [ As TipoDado ]

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 52
NomeVariável representa um nome válido para variáveis. Já a cláusula opcional As permite que seja definido o
tipo de dado que a variável armazenará. Os tipos de dados disponíveis serão vistos mais à frente. Você pode
deixar para o Visual Basic declarar implicitamente as variáveis. Assim você simplesmente cria as variáveis à
medida que for precisando. Por exemplo, suponhamos que você tenha a seguinte função que calcula a média
entre dois números:

Function Media (PrimeiroNumero , SegundoNumero )

intSoma = PrimeiroNumero + SegundoNumero

Media = intSoma / 2

End Function

Neste caso, a variável Soma não fora declarada. Agora imagine que por questão de descuido, você tenha
digitado o seguinte:

Function Media ( PrimeiroNumero , SegundoNumero )

intSomar = PrimeiroNumero + SegundoNumero

Media = intSoma / 2

End Function

A função não seria executada, uma vez que está tentando utilizar uma variável, no caso intSoma, que não
possui qualquer valor, já que o mesmo fora atribuído à variável intSomar. Para evitar esse tipo de problema
(apenas um entre vários possíveis), é aconselhável declarar-se todas as variáveis que serão utilizadas pela rotina
(procedimento ou função). Portanto, o correto seria escrever a função da seguinte forma:

Function Media ( PrimeiroNumero , SegundoNumero )

Dim intSoma

intSoma = PrimeiroNumero + SegundoNumero

Media = intSoma / 2

End Function

Você pode forçar o Visual Basic a verificar se todas as variáveis foram declaradas previamente e, em caso
negativo, apresentar uma mensagem de advertência. Isso é possível através da inclusão do comando Option
Explicit na seção Declarations da classe, formulário ou módulo. Podemos também selecionar a opção
Options, do menu Tools, e ativar a caixa de seleção Require Variable Declaration, na página Editor. Isso
fará com que em todo módulo novo, porém não em módulos existentes, seja incluído o comando Option
Explicit.

Abrangência e Tempo de Vida de uma Variável

Dois termos muito utilizados na programação são abrangência e tempo de vida das variáveis. Esses termos
definem o limite da visibilidade de uma variável e o tempo em que ela poderá reter seu valor. A isso chamamos
de escopo. Abrangência refere-se à(s) parte(s) do código do programa onde uma determinada variável é visível,
ou seja, onde ela pode ser acessada. Isso significa que podemos ter variáveis cujos valores somente poderão ser
acessados e/ou alterados pelo procedimento/função que as declarou e em nenhuma outra parte do programa.
Isso evita que outras rotinas do programa possam alterar inadvertidamente os valores dessas variáveis. Essas

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 53
variáveis são ditas locais à rotina. Para declarar uma variável local à rotina, seja ela um procedimento (Sub) ou
função (Function), utilize o comando de declaração Dim ou Static dentro da mesma, como no fragmento de
código a seguir:

Function CalculaSaldo ( dSaldoAntes , dSaldoDebito )

Dim dblNovoSaldo as Double

End Function

Podemos ter também variáveis que são visíveis apenas pelas rotinas existentes num módulo e não pelas rotinas
de outros módulos da aplicação. Essas variáveis possuem escopo local ao módulo inteiro. Você declara
variáveis locais a nível de módulo através dos comandos de declaração Dim ou Private, colocados na seção
Declarations do módulo.

Veja o seguinte exemplo:

Private strSenhaas String

Para tornar uma variável disponível a todos os módulos e a todas as rotinas, você deverá declará-la na seção
Declarations de qualquer um dos módulos com o comando Public, como mostra o exemplo:

Public strSenhaas String

A esse tipo chamamos de variável de escopo global, ou seja, qualquer rotina de qualquer módulo tem acesso a
ela. O tempo de vida de uma variável diz respeito ao tempo em que ela poderá reter seu valor entre as diversas
chamadas do procedimento/função. Quando uma variável é declarada e a ela é atribuído um valor, esse valor se
perde quando a rotina encerra sua execução. Em outras palavras, a variável é criada quando se entra na rotina e
destruída quando se sai da mesma. Há, porém, situações onde devemos manter o valor da variável entre as
chamadas. Suponhamos por exemplo, que você esteja programando um pequeno jogo e que tenha criado uma
rotina para controle dos pontos acumulados. Você precisará de uma maneira de preservar os pontos já marcados
entre as chamadas da rotina. Desse modo, a variável, embora não seja global, não perde seu valor após o
retorno da rotina ao código que a invocou. A esse tipo, damos o nome de variável estática.

Para declarar uma variável estática, utilize o comando de declaração Static, conforme mostrado no exemplo:

Function Pontos ( intMarcados )

Static lngPontosAcumulados as Long

lngPontosAcumulados = lngPontosAcumulados + intMarcados

Pontos = lngPontosAcumulados

End Function

Se você precisar, por um motivo ou outro, declarar todas as variáveis de uma rotina como sendo estáticas,
coloque a palavra reservada Static à frente do nome do procedimento/função, da seguinte forma:

Static Function Pontos (intMarcados )

Dim lngPontosAcumulados as Long

lngPontosAcumulados = lngPontosAcumulados + intMarcados

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 54
Pontos = lngPontosAcumulados

End Function

Devemos lembrar que você deverá utilizar variáveis com o escopo mais local possível, para assim evitar
conflitos de nomes de variáveis e alterações de valores indesejáveis.

Tipos de Variáveis
Como toda linguagem de programação, o Visual Basic também possui vários tipos de dados aplicáveis às
variáveis, que definem quais os valores que essas poderão armazenar. O Visual Basic 6.0 define 11 tipos de
dados básicos, cada qual com suas características peculiares, como largura da faixa de dados, tamanho em
bytes, etc. A tabela a seguir, relaciona todos esses tipos:

Tipo de Tamanho em
Faixa de Valores
Dado Bytes

Integer 2 bytes -32.768 à 32.767


Long 4 bytes -2.147.483.648 à 2.147.483.647
-3,402823E38 à 1,401298E-45 (-) e 1,401298E-45
Single 4 bytes
à 3,402823E38 (+)
-1,79769313486232E308 à -4,94065645841247E-
Double 8 bytes 324 (-) e 4,94065645841247E-324 à
1,79769313486232E308 (+)
-922.337.203.685.477,5808 à
Currency 8 bytes
922.337.203.685.477,5807
1 byte por De zero à 65.500 caracteres. Em sistemas de 32
String
caracter bits, máximo de 2E32 caracteres.
Byte 1 byte 0 à 255
Boolean 2 bytes True (verdadeiro) ou False (falso)
Date 8 bytes De 1 de Janeiro de 100 à 31 de Dezembro de 9999
Object 4 bytes Qualquer referência a objeto
16 bytes + 1 byte
Qualquer valor numérico, caracter, objeto ou
Variant para cada
valor nulo.
caracter

Os tipos de dados determinam o que você pode armazenar numa variável. Por exemplo, você não pode entrar
com uma expressão caractere numa variável do tipo numérico, nem digitar um número numa variável lógica.
Vejamos os detalhes dos tipos de dados mais comumente utilizados.

Tipos Integer e Long

Esses dois tipos de dados permitem o armazenamento de valores numéricos inteiros, com os quais podemos
efetuar cálculos e operações matemáticas.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 55
A faixa de valores permitida para o tipo Integer vai de -32.768 à 32.767, sendo, portanto limitada para alguns
tipos de operações. Variáveis desse tipo são muito úteis como contadores de loops For... Next, por serem de
manipulação muito rápida pelo processador, pois necessitam de poucas instruções de máquina.

O tipo Long, por outro lado, abrange uma faixa muito maior de valores, da ordem de 2 milhões, conforme pode
ser constatado na tabela anterior.

Tipos Single e Double

Single e Double também são tipos de dados numéricos, porém permitem a manipulação de valores decimais,
como pesos, unidades de medidas, etc. Como nos tipos anteriores, podemos efetuar qualquer operação
matemática com eles.

O que diferencia o tipo Single do tipo Double é a precisão nas casas decimais e a faixa de valores abrangida
por cada um. Veja a tabela anterior para comparação. Variáveis do tipo Single são ditas de precisão simples,
comumente chamadas apenas de variáveis de ponto-flutuante. Variáveis do tipo Double são denominadas
variáveis de dupla precisão.

Tipo Currency

O Visual Basic possui um tipo de dado especial para tratamento de valores monetários, evitando-se assim erros
de arredondamento durante cálculos matemáticos. Esse tipo de dado é chamado de Currency. Deve-se utilizá-
lo apenas para armazenamento de valores monetários. Se num determinado cálculo, o valor resultante tiver
mais de quatro casas decimais, as casas decimais extras (a partir da quinta casa) serão truncadas. Assim, o
número 5402,105782 por exemplo, será armazenado como 5402,1057 numa variável do tipo Currency.

Tipo String

O tipo de dado String é certamente o mais utilizado. Ele possibilita que uma sequência de caracteres seja
armazenada numa variável. Essa sequência de caracteres pode conter desde letras do alfabeto até símbolos
gráficos e números, muito embora não possamos efetuar cálculos com os números armazenados numa
sequência. Devemos envolver a cadeia de caracteres com aspas (“).

Com variáveis do tipo caractere, é possível efetuarmos algumas operações de comparação, concatenação
(junção) de duas ou mais sequências de caracteres ou extração de uma parte da sequência. Não é possível,
porém efetuar cálculos matemáticos e aritméticos, já que qualquer número armazenado numa variável desse
tipo será considerado como uma sequência de texto e não um valor numérico.

Podemos determinar um tamanho máximo para uma variável do tipo String, simplesmente adicionando um
asterisco (*) seguido por um número que define o tamanho máximo em caracteres. Por exemplo, para declarar
uma variável strNomeCliente com um tamanho máximo de 50 caracteres, você escreveria:

Dim strNomeCliente As String * 50

Se for armazenada uma cadeia de caracteres menor que o tamanho máximo especificado, a variável será
preenchida com espaços em branco à direita para completá-la. Se por outro lado, você tentar armazenar mais
caracteres do que o permitido, os excedentes serão descartados.

Tipo Byte

Variáveis do tipo Byte são também numéricas, mas somente podem armazenar números na faixa de 0 à 255.
Esse tipo de variável também é útil em contador de loops For...Next pequenos, cujo ciclo de repetição não
ultrapasse 255.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 56
Tipo Boolean

Uma variável do tipo Boolean pode conter apenas dois tipos de valores: True (verdadeiro) ou False (falso).
São muito utilizadas como sinalizadores, ou seja, variáveis que indicam se uma determinada condição lógica
retornou ou resultou num desses dois valores. Veja o pequeno exemplo a seguir:

Dim blnRepete As Boolean

blnRepete = True

While blnRepete

'

'

'

Wend

Tipo Date

Variáveis do tipo Date permitem o armazenamento de valores que representam uma data do calendário ou um
horário. Para armazenar uma data numa variável, especifique-a entre "#", como no seguinte exemplo:

dtDataVencimento = #05/06/99#

dtHora = #05:25:00#

Com valores do tipo Date é possível executarmos adição ou subtração, para assim calcularmos uma nova data.
Por exemplo:

dtDataHoje = Now

dtDataAmanha = dtDataHoje + 1

dtDataOntem = dtDataHoje - 1

Tipo Object

Variáveis do tipo Object podem fazer referência a objetos definidos pelo Visual Basic ou mesmo campos de
uma base de dados, como dados OLE ou binários. Elas são armazenadas em endereços de 32 bits. Para esse
tipo de variável, precisamos utilizar o comando de atribuição Set para assinalar valores a ela, em não apenas o
sinal de igualdade. O exemplo a seguir, ilustra sua utilização:

Dim objDataBase As Object

Set objDataBase = OpenDataBase ("C:\VIDEO\VIDEO.MDB")

Tipo Variant

O dado Variant é um tipo especial, já que ele permite que qualquer valor seja armazenado. Se você declara
uma variável, mas não especifica seu tipo de dado, o Visual Basic automaticamente atribui a ela o tipo Variant.
Assim, o dado que você armazenar na variável é que definirá o seu tipo naquele momento.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 57
Podemos atribuir também um valor nulo a variáveis Variant, especificando a palavra-chave Null à direita do
sinal de igual. Diversas funções podem ser utilizadas para determinarmos qual o tipo de dado armazenado numa
variável Variant.

Constantes
As constantes, diferentemente das variáveis, não podem ter seus valores alterados durante a execução da
aplicação. Elas são utilizadas principalmente para fornecer maior legibilidade ao código fonte, substituindo
expressões numéricas ou caracteres mais complexos e de difícil entendimento.

Suponhamos como exemplo, que você tenha o seguinte código:

Dim intNumeros ( 30 ), intContador As Integer

For intContador = 1 to 30

intNumeros ( intContador) = intContador * 10

'

'

Next

Se amanhã você precisasse modificar sua aplicação, aumentando o número máximo de elementos da matriz
intNumeros, teria de percorrer toda a listagem do programa e alterar as ocorrências do número 30 para a
quantidade desejada de elementos. Utilizando uma constante, esse problema seria facilmente resolvido. Você
poderia incluir a seguinte linha na seção Declarations do módulo principal do programa:

Const Num_Elementos= 30

E no código do programa, escreveria:

Dim intNumeros ( Num_Elementos ), intContador As Integer

For intContador = 1 to Num_Elementos

intNumeros ( intContador) = intContador * 10

'

'

Next

No caso de modificações futuras, será necessário apenas alteração na definição da constante e uma nova
compilação.

O resto ficará por conta do Visual Basic. Um dos tipos de constantes mais famosos é o valor de PI
(3,14159265358979...).

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 58
Operadores
De nada adiantaria termos dados e mais dados armazenados em nossas variáveis de memória ou em nosso
banco de dados, se não pudéssemos trabalhar com eles, ou seja, se não fosse possível fazer cálculos,
comparações ou qualquer outra operação. Para efetuarmos essas operações é que existem os operadores. Eles
podem ser divididos em quatro categorias básicas:

• Operadores Aritméticos;
• Operadores Relacionais;
• Operadores Lógicos;
• Operadores de Strings.

Operadores Aritméticos

Como ocorre na matemática comum, os operadores aritméticos permitem que sejam feitos cálculos com os
dados armazenados em variáveis ou em campos de bases de dados. Eles somente podem ser utilizados com
dados numéricos. A tabela a seguir, relaciona todos os operadores aritméticos disponíveis no Visual Basic.

Operador Descrição

+ Efetua a soma entre dois ou mais números.


- Efetua a subtração entre dois ou mais números.
* Efetua a multiplicação entre dois ou mais números.
/ Efetua a divisão entre dois números e resulta num número de ponto-flutuante.
\ Efetua a divisão entre dois números e resulta num número inteiro.
^ Efetua a exponenciação.
Mod Retorna o resto de uma divisão não exata entre dois números

Estes operadores respeitam uma ordem de precedência universal:

1ª. Exponenciação

2ª. Multiplicação e Divisão

3ª. Adição e Subtração

O operador Mod é utilizado para se encontrar o resto de uma divisão não exata. Por exemplo, na divisão de 19
por 3, o resultado seria 6,333333 e mesmo assim não seria um resultado preciso, já que se trata de uma dízima
periódica. Assim se multiplicássemos 6,333333 por 3, obteríamos 18,999999.

Com o operador Mod na expressão 19 Mod 3, teremos como resultado o número 1, ou seja, o resto da divisão
de 19 por 3. Isso significa que se você multiplicar a parte inteira de 6,333333, que é 6, e somar o resultado ao
resto obtido, no caso o número 1, terá novamente o valor 19.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 59
Operadores Relacionais
Os operadores relacionais, também chamados de operadores de comparação, permitem que relacionemos
(comparemos) dois valores entre si. Por exemplo, para saber se o valor de uma determinada variável X é maior
que o de uma variável Y, poderíamos escrever:

X>Y

Isso nada mais é que uma comparação entre as duas variáveis.

A seguinte tabela, lista todos os operadores relacionais do Visual Basic. O funcionamento de cada um deles não
difere daquele empregado na matemática comum.

Operador Descrição

< Menor que


> Maior que
<= Menor que ou igual a
>= Maior que ou igual a
= Igual a
<> Diferente de

Operadores Lógicos
Os operadores Lógicos como o próprio nome já diz, avaliam uma expressão numérica ou caractere e retornam
valores lógicos, ou seja, verdadeiro ou falso. Por exemplo, se uma variável, digamos X, possui o valor 100 e
uma outra variável Y , possui o valor 500, então a expressão a seguir avaliará verdadeiro.

X = 100 And Y = 500

A tabela a seguir, apresenta todos os operadores lógicos do Visual Basic:

Operador Descrição

And Efetua a operação lógica E. Se ambas as expressões forem verdadeiras, então o


resultado será verdadeiro.
Or Efetua a operação lógica OU. Se uma das expressões (ou ambas) for verdadeira,
então o resultado será verdadeiro.
Not Efetua a operação lógica NÃO. Inverte o estado lógico de uma expressão, se ela for
verdadeira, torna-a falsa e vice-versa.
Efetua a operação lógica OU EXCLUSIVO. Se uma das expressões for verdadeira,
Xor o resultado será verdadeiro, porém se ambas forem verdadeiras, o resultado será
falso.
Eqv Efetua a operação de equivalência de expressões. O resultado será verdadeiro
somente se ambas as expressões forem equivalentes.
Imp Efetua a operação de implicação lógica. Retorna verdadeira se uma expressão
implica em outra.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 60
Para entender melhor como funcionam os operadores lógicos, vamos analisar cada um deles.

Operador Lógico And

O operador lógico And pode ser visto como um conector lógico. Imagine que você possua dois fios ligados a
uma lâmpada e a uma bateria. A lâmpada somente acenderá se você tiver ligado ambos os fios aos pólos da
bateria. Acompanhe esse exemplo:

Fio Vermelho Ligado Fio Preto Ligado Lâmpada Acende

Falso Falso Falso


Verdadeiro Falso Falso
Falso Verdadeiro Falso
Verdadeiro Verdadeiro Verdadeiro

Operador Lógico Or

O operador lógico Or às vezes é chamado somador lógico, uma vez que avalia verdadeiro (1) sempre que uma
das expressões for verdadeira (pode até ocorrer de ambas serem verdadeiras).
Considere agora, como exemplo, que você deseja escrever uma carta (ou quem sabe um livro também sobre o
Visual Basic). Se você tiver uma máquina de escrever (OR) um micro-computador, poderá tranquilamente
satisfazer seu desejo. Acompanhe o exemplo:

Tem Máquina Tem Micro Pode Escrever

Falso Falso Falso


Falso Verdadeiro Verdadeiro
Verdadeiro Falso Verdadeiro
Verdadeiro Verdadeiro Verdadeiro

Operador Lógico Not

O operador lógico Not é um operador de inversão, ou seja, ele transforma em falsa uma expressão lógica que
avalia verdadeiro, e vice-versa. Por exemplo, se você possui um carro e o pneu está furado, você não (NOT)
pode viajar. É o que mostra a tabela abaixo:

Pneu Furado Pode Viajar

Falso Verdadeiro
Verdadeiro Falso

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 61
Operador Lógico Xor

O operador lógico Xor pode ser visto como um operador que não admite ambiguidades, quer dizer, ou é uma
coisa ou outra, nunca ambas. Voltemos ao nosso exemplo da lâmpada e da bateria. Imagine agora que você se
encontra perto de uma tomada. Você poderá assim, ligar os fios da lâmpada na bateria ou na tomada da parede,
mas não em ambas ao mesmo tempo. A tabela abaixo ilustra essa situação:

Fio Ligado na Bateria Fio Ligado na Tomada Lâmpada Acende

Falso Falso Falso


Verdadeiro Falso Verdadeiro
Falso Verdadeiro Verdadeiro
Verdadeiro Verdadeiro Falso

Operador Lógico Eqv

O operador Eqv é utilizado para desempenhar uma equivalência lógica entre duas expressões. Por exemplo, se
tivéssemos as variáveis Numero1 = 10, Numero2 = 8 e Numero3 = 5, a expressão lógica a seguir, resultaria em
verdadeiro, já que ambas as comparações são equivalentes:

Numero1 > Numero2 Eqv Numero2 > Numero3

Operador Lógico Imp

O operador Imp talvez seja o mais complexo de todos. Ele é utilizado para desempenhar a função de uma
implicação lógica entre duas expressões. Ele também desempenha uma comparação bit a bit dentro de uma
expressão numérica. A seguinte tabela ilustra os resultados obtidos com o operador Imp de acordo com as
diversas possibilidades:

A primeira expressão é A segunda expressão é O resultado será

Verdadeiro Verdadeiro Verdadeiro


Verdadeiro Falso Falso
Verdadeiro Nulo Nulo
Falso Verdadeiro Verdadeiro
Falso Falso Verdadeiro
Falso Nulo Verdadeiro
Nulo Verdadeiro Verdadeiro
Nulo Falso Nulo
Nulo Nulo Nulo

Para melhor entendimento, veja o exemplo a seguir:

Se Numero1 = 10, Numero2 = 8 e Numero3 = 5, então temos que:

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 62
Numero1 > Numero2 Imp Numero2 > Numero3 é verdadeiro.

Operadores de Strings
No Visual Basic, somente é permitido dois tipos de operadores para se trabalhar com strings, muito embora
ambos possuam o mesmo efeito. São os operadores "&" e "+".

Esses operadores servem para concatenar duas ou mais strings de caracteres. Por exemplo, suponhamos que
você tenha definido duas variáveis strings Rua e Bairro. Para agrupar os seus valores em uma única variável
Endereço, você poderia utilizar um dos seguintes métodos:

a.) Endereco = Rua & " " & Bairro

b.) Endereco = Rua + " " + Bairro

Comandos de Laço
Comando de Laço ou Estruturas de Repetição, como também são conhecidas. É possível repetir-se um bloco
de instruções dentro de um programa em Visual Basic. Para isso existem sete tipos diferentes de estruturas de
repetição, denominadas de loops: Do While...Loop, Do...Loop While, Do Until...Loop, Do...Loop Until,
While...Wend, For...Next, For...Each...Next. Analisaremos cada um dos tipos separadamente, verificando suas
similaridades e diferenças.

Select Case

A estrutura Select Case é similar à estrutura switch...case da linguagem C, ao Case of do Pascal ou ainda ao Do
Case...EndCase do Dbase/Clipper. Ela começa avaliando uma expressão e comparando o seu resultado com
uma série de condições, até encontrar uma que se iguale ao resultado retornado pela expressão. Quando isso
ocorre, o código que está ligado à condição é executado. Essa estrutura é uma alternativa mais flexível e
confiável ao If...Then...ElseIf.

É importante observar que somente é efetuada uma comparação do resultado da expressão com as condições,
portanto, se for necessário efetuar outro tipo de operação lógica, você deverá valer-se da estrutura
If...Then...ElseIf. A sintaxe dessa estrutura é:

Select Case Opção

Case 1

Print "Opção 1 acionada"

Case 2

Print "Opção 2 acionada"

Case 3

Print "Opção 3 acionada"

Case Else

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 63
Print "Opção não é 1,2 ou 3"

End Select

Acrescentando na estrutura a cláusula Case Else (caso contrário), o Visual Basic irá verificar se a variável é 1,
2 ou 3. Não sendo, então será Case Else, e a linha seguinte a esta cláusula será executada. No comando Case
podemos usar também intervalos, como por exemplo:

Case 2 to 4

Ou seja, caso a condição esteja entre 2 e 4.

Do While...Loop (Faça enquanto)

Executa todos os comandos que existem entre Do While e o Loop. Quando a execução do programa encontra o
comando Loop, o Do While é reavaliado e a rotina continua até que a condição estabelecida esteja satisfeita.

Veja o exemplo abaixo:

Contador = 0
Do While Contador < 10
Contador = Contador + 1
Print Contador
Loop
Print "Fim de Execução"

Inicializamos uma variável de nome Contador com zero, e pedimos para o programa: Repita as instruções
abaixo enquanto Contador for menor que 10. O comando Loop faz com que o programa volte para a linha do
Do While e teste a condição de novo. Somente quando a condição for verdadeira, ou seja, quando Contador
for maior ou igual a 10, que o programa executará a linha após o Loop.

Perceba que, dependendo do resultado da condição, os comandos existentes dentro da estrutura podem não
serem executados, passando direto para a linha após o comando Loop.

Do...Loop While (Retorne enquanto)

Neste caso, o comando Do abre a sequência de repetição, mas não faz nenhum teste de condição. Este teste é
feito no final da estrutura com o comando Loop While, ou seja, obrigatoriamente as instruções contidas após o
comando Do serão executadas.

Contador = 0
Do
Contador = Contador + 1
Print Contador
Loop While Contador < 10
Print "Fim de Execução"

Do Until...Loop (Faça até que)

Executa todos os comandos que existem entre Do Until e o Loop. Quando a execução do programa encontra o
comando Loop, o Do Until é reavaliado e a rotina continua até que a condição estabelecida esteja satisfeita.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 64
Contador = 0
Do Until Contador = 10
Contador = Contador + 1
Print Contador
Loop
Print "Fim de Execução"

Inicializamos uma variável de nome Contador com zero, e pedimos para o programa: "Repita as instruções
abaixo até que Contador seja igual a 10".

O comando Loop faz com que o programa volte para a linha do Do Until e teste a condição de novo. Somente
quando a condição for verdadeira, ou seja, quando Contador for maior ou igual a 10, que o programa executará
a linha após o Loop.

Semelhante ao Do While, dependendo do resultado da condição, os comandos existentes dentro da estrutura


podem não serem executados, passando direto para a linha após o comando Loop.

Do...Loop Until (Repita até que)

O comando Do abre a sequência de repetição, mas não faz nenhum teste de condição. Este teste é feito no final
da estrutura com o comando Loop Until, ou seja, obrigatoriamente as instruções contidas após o comando Do
serão executadas.

Contador = 0
Do
Contador = Contador + 1
Print Contador
Loop Until Contador = 10
Print "Fim de Execução"

For...Next (Conte o Intervalo)

O comando For faz uma contagem de um determinado intervalo de números. Sempre que essa contagem
encontra com o comando Next (próximo), a execução do programa retorna ao comando For até que o número
final seja alcançado. Exemplo:

For Contador = 1 to 10
Print "A variável Contador agora vale: " & Contador
Next
Print "Fim de Execução"

Neste programa, o Visual Basic através do comando For, avisa "Vamos contar até 10, começando pelo 1". As
instruções contidas na linha abaixo são executadas, e quando o comando Next é encontrado, a execução volta
para o For e a variável Contador é incrementada em mais um e assim por diante. Quando Contador for igual a
10, a estrutura For/Next é desfeita.

Step

Usamos Step em conjunto com o For para fazer com que a contagem seja incrementada. Exemplo: Se
queremos que o comando conte de 2 em 2 faremos:

For Contador = 1 to 10 Step 2

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 65
Exit

O comando Exit permite que se saia prematuramente de um loop, de uma função (Function) ou de um
procedimento (Sub), transferindo o controle do programa para a linha imediatamente seguinte. Dessa forma, se
dentro de uma das estruturas de repetição, o programa deparar-se com uma certa situação que deverá forçar a
interrupção do loop, poderemos utilizar esse comando. No entanto, recomendamos utilizá-lo com cuidado, pois
ele pode desestruturar o programa, uma vez que com ele temos duas formas de saída de uma estrutura de
repetição ou procedimento/função, e isso é altamente desestimulado pelas técnicas de programação estruturada.
A tabela a seguir, apresenta os formatos do comando Exit para cada situação:

Utilização Formato

Dentro de um loop Do Exit Do


Dentro de um loop For...Next Exit For
Para sair de uma função Exit Function
Para sair de um procedimento Exit Sub

Funções e Procedimentos

Além dos formulários, que compõem a interface com o usuário, temos por trás desses, diversas rotinas (funções
e procedimentos) que executam as tarefas para as quais a aplicação fora desenhada. São essas rotinas que fazem
todo o trabalho árduo de cálculos, chamadas dos formulários e execução ordenada da aplicação. É nesta etapa
do desenvolvimento do aplicativo que o programador entrará com sua parte, definindo os algorítmos e a lógica
geral das rotinas. Podemos concluir, portanto, que uma aplicação em Visual Basic é uma união entre os
formulários e as rotinas, trabalhando amigavelmente.

O que é uma Função?

Uma função em Visual Basic, seja ela interna à própria linguagem ou desenvolvida pelo programador, é como
sua similar na matemática: ela opera nos valores passados como parâmetros (se houver algum) e devolve outro
valor. Para declararmos uma função devemos utilizar a palavra-chave Function. Seguindo essa palavra-chave
vem o nome da função e, opcionalmente, uma lista de eventuais parâmetros dentro de parênteses.
A sintaxe completa é a seguinte:

Function NomeFunção ( [ Parâmetros ] )

Bloco de Instruções

End Function

Os nomes dos argumentos devem seguir as mesmas regras de nomeação de variáveis já vistas anteriormente.
Eles deverão vir também separados por vírgula. Para retornarmos um valor à rotina que chamou a função,
devemos atribuir esse valor ao nome da própria função. No exemplo a seguir, temos uma função que recebe
como parâmetros dois números, sendo que o primeiro se refere à base e o segundo à potência à qual o número
será elevado. Então ele calcula a potência do número (o próprio número multiplicado por ele mesmo) e devolve
o valor à rotina chamadora. Exemplo:

Function Potencia ( intNumeroBase, intPotencia)

Dim LngResultado, intContador

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 66
lngResultado = 1

For intContador = 1 to intPotencia

lngResultado = lgnResultado * intNumeroBase

Next

Potencia = lngResultado

End Function

Na rotina chamadora, tudo que devemos fazer é atribuir o valor da função a uma variável de memória, como no
exemplo:

NumElev = Potencia ( 5 , 3 )

Da mesma forma que você dá um escopo às variáveis de memória, você pode também ocultar funções no
Visual Basic, criando assim, funções que somente podem ser acessadas pelos procedimentos e funções
declarados no mesmo módulo. São verdadeiras caixas-pretas, uma vez que estão escondidas do resto do
programa. Elas são chamadas de funções privadas. Para declarar uma função privada ao módulo, coloque a
palavra-chave Private antes da declaração Function, assim:

Private Function MinhaFunc ( )

'

'

'

End Function

Você pode especificar também o tipo de dado retornado pela função. Por exemplo, podemos alterar nossa
função Potencia, vista anteriormente, para que ela retorne um número de ponto flutuante:

Function Potencia ( intNumeroBase, intPotencia ) as Single

Dim LngResultado, intContador

lngResultado = 1

For intContador = 1 to intPotencia

lngResultado = lgnResultado * intNumeroBase

Next

Potencia = lngResultado

End Function

A variável que receberá o valor da função deve obrigatoriamente ser do mesmo tipo dessa.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 67
O que é um Procedimento?

Um procedimento nada mais é do que uma rotina desenvolvida especificamente para executar uma determinada
tarefa, como ocorre com as funções. Essa tarefa pode inclusive ser genérica, ou seja, servir para aplicações. Por
exemplo, podemos desenvolver um procedimento para abrir um formulário e maximizá-lo na tela, independente
do formulário (ou mesmo aplicativo) atualmente sendo utilizado.

Podemos criar procedimentos dos mais simples até os mais sofisticados. Dependerá apenas da sua criatividade.
Um procedimento, diferentemente das funções, não retorna qualquer valor à rotina chamadora. Ele pode ser
encarado mais como um comando definido pelo programador/usuário, no sentido de que apenas executa a tarefa
para a qual fora concebido. Você declara um procedimento através da palavra-chave Sub, seguida pelo nome
do procedimento. Para finalizar o corpo do procedimento, utilize a palavra-chave End Sub. A sintaxe correta
para declaração de procedimentos é:

Sub NomeProc ( [ parâmetros] )

Bloco de Instruções

End Sub

Veja um exemplo de procedimento:

Sub TestePot( )

Dim NumElev as Long

NumElev = Potencia ( 5,4 )

Debug.Print NumElev

End Sub

Passando Parâmetros

Embora já tenhamos utilizado a passagem de parâmetros a procedimentos e funções, veremos neste tópico,
maiores detalhes sobre esse assunto. Primeiro você deverá especificar os parâmetros a serem recebidos através
de uma lista de parâmetros colocada entre parênteses após o nome do procedimento/função. Esses parâmetros,
dentro do procedimento ou função, irão comportar-se como variáveis comuns, podendo ser manipulados como
tais. Vamos tomar como exemplo nossa função que calcula a potência de um dado número:

Function Potencia (intNumeroBase, intPotencia )

Dim LngResultado, intContador

lngResultado = 1

For intContador = 1 to intPotencia

lngResultado = lgnResultado * intNumeroBase

Next

Potencia = lngResultado

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 68
End Function

Você deverá prestar bastante atenção quanto ao número de parênteses a serem passados a uma função ou
procedimento, isso para evitar, por exemplo, que você passe quatro parâmetros quando na verdade a
função/procedimento espera por cinco ou mais. Para invocar uma função com parâmetros, você os especifica
entre os parênteses. No entanto, como veremos mais adiante, há uma maneira de se contornar esse tipo de
problema.

Já com procedimentos, isso muda um pouco. Se o procedimento espera apenas um parâmetro, você poderá
utilizar duas formas de chamada: colocando os parâmetros entre parênteses ou diretamente após o nome do
procedimento, separando-os por um espaço. Se o procedimento possuir mais de um parâmetro, então você
poderá especificá-los utilizando o formato direto (sem parênteses), sendo que os parâmetros deverão ser
separados por vírgulas. Você pode também chamar um procedimento passando mais de um parâmetro entre
parênteses, porém deverá fazer a a chamada com a palavra-chave Call:

Sub ChamaCall ( )

Call MinhaFuncao ( "Um Texto" , "Outro Texto" , 200, 40 )

End Sub

Caso deseje, poderá especificar os tipos dos parâmetros logo após a declaração dos mesmos, como mostrado a
seguir:

Function Potencia ( intNumeroBase as Integer, intPotencia as Integer)

Dim LngResultado, intContador

lngResultado = 1

For intContador = 1 to intPotencia

lngResultado = lgnResultado * intNumeroBase

Next

Potencia = lngResultado

End Function

Passagem de Parâmetros por Valor ou por Referência

Procedimentos e Funções no Visual Basic podem ter ou não a capacidade de alterar o valor dos parâmetros
recebidos. Para isso, podemos especificar os parâmetros por valor ou por referência. No primeiro caso, o
procedimento ou função recebe uma cópia dos valores passados como parâmetros, assim qualquer alteração
nesses valores não será refletida na rotina chamadora, já que as alterações afetam apenas a cópia. Para
especificar uma passagem de parâmetros por valor, utilize apenas a palavra-chave ByVal Antes de cada um
deles, conforme mostrado a seguir:

Sub PassaValor ( ByVal strNome as String , ByVal intIdade as Integer )

'

'

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 69
End Sub

No segundo caso, o padrão do Visual Basic, o procedimento ou função pode alterar livremente os valores dos
parâmetros. Essas alterações são refletidas nas variáveis da rotina chamadora após o retorno da
função/procedimento. É como se passássemos o endereço da variável de memória. Não é preciso nenhuma
palavra-chave para se passar um parâmetro por referência, simplesmente especifique-os na declaração da
função/procedimento:

Sub PassaReferencia ( strNome as String, intIdade as Integer)

'

'

End Sub

Utilizando essa habilidade de alteração dos valores de parâmetros, podemos criar funções que retornam mais de
um valor à rotina chamadora, ou mesmo ter procedimentos que retornam valores indiretamente. Por exemplo,
no seguinte código, a função Incr( ) atualiza os valores dos dois parâmetros e os retorna.

Function Incr ( intParam1 as Integer, intParam2 as Integer)

intParam1 = intParam1 + 1

intParam2 = intParam2 + 1

End Function

Parâmetros Opcionais

Podemos criar rotinas que recebem parâmetros opcionalmente, ou seja, sua passagem não é obrigatória. Para
fazer isso, declare todos os parâmetros com a palavra-chave Optional à frente, como no seguinte exemplo:

Sub ParamOpcional ( Optional strNome as Variant , Optional strSobreNome as Variant )

Dim strNomeCompleto as String

strNomeCompleto = strNome + " " + strSobreNome

'

'

End Sub

Note que os parâmetros opcionais deverão obrigatoriamente ser do tipo Variant e que se você especificar um
parâmetro opcional, todos os parâmetros subsequentes a esse também precisarão ser declarados como
opcionais. Isso é demonstrado no seguinte código:

Sub ParamOpcional2 ( Optional strNome as String , strSobreNome as String , Optional intIdade as Variant,
Optional sngAltura as Variant )

Dim strNomeCompleto as String

strNomeCompleto = strNome + " " + strSobreNome


Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 70
'

'

End Sub

Número Indefinido de Parâmetros

Como dissemos anteriormente, você precisa especificar o número de parâmetros na chamada da rotina de
acordo com a sua declaração, ou seja, se a rotina espera por cinco parâmetros, então você precisa passar cinco
parâmetros na sua chamada. No entanto, o Visual Basic possibilita que, através da palavra-chave
ParamArray, especifiquemos um número indefinido de parâmetros. A quantidade real de parâmetros
recebidos somente será estabelecida no momento da chamada da rotina. O exemplo a seguir, demonstra como
utilizar um procedimento com número indefinido de parâmetros:

Function CalcTotal ( ParamArray intQuantos( ) ) as Long

Dim varElementos as Variant, lngTotal as Long

lngTotal = 0

For Each varElementos In intQuantos

lngTotal = lngTotal + varElementos

Next varElementos

CalcTotal = lngTotal

End Function

Referências
Existem centenas de funções desenvolvidas internamente no Visual Basic.

Abaixo encontra-se uma pequena relação das funções mais comuns:

Funçõe Descrição
Abs Encontra o valor absoluto de um número.
Atn Encontra o arco tangente.
Cos Encontra o co-seno.
Exp Eleva e (2,718u2) a uma potência dada.
Fix Retorna a parte inteira de um número.
FV Valor futuro.
Hex Fornece o hexadecimal equivalente.
Int Encontra o maior valor inteiro.
Ipmt Juros pagos por tempo.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 71
IRR Taxa interna de retorno.
Log Logarítmo comum.
Mirr Taxa interna de retorno modificada.
Nper Tempo de acúmulo de uma anuidade.
Npv Valor presente líquido.
Pmt Gastos com anuidade.
PV Valor presente.
Rate Taxa de juros por período por uma anuidade.
Rnd Chama o gerar de número aleatório.
Sgn Retorna o sinal de um número.
Sin Retorna o seno.
Sln Depreciação linear.
Sqr Raiz quadrada.
Syd Soma da depreciação do ano.
Tan A tangente de um ângulo em radianos.
Timer Retorna o número de segundos desde meia-noite.

As funções alfa-numéricas mais comuns:

Funçõe Descrição

Asc Retorna o código do caractere correspondente a primeira letra.


InStr Retorna a posição da primeira ocorrência de uma cadeia dentro de outra.
LCase Converte a cadeia de caracteres em minúscula.
Left Encontra ou remove um número específico de caracteres do início de uma cadeia.
Len Fornece o comprimento de uma cadeia de caracteres.
Ltrim Remove os espaços do início de uma cadeia de caracteres.
Mid Encontra ou remove caracteres de uma cadeia.
Right Encontra ou remove um número específico de caracteres do final de uma cadeia.
Rtrim Remove os espaços do final de uma cadeia de caracteres.
Str Retorna a cadeia de caracteres equivalente ao número.
StrComp Compara cadeia de caracteres.
StrConv Converte uma cadeia de caracteres de um formulário para outro.
String Retorna a repetição de uma cadeia de caracteres idênticos.
Trim Remove os espaços do início e do fim de uma cadeia de caracteres.
Ucase Converte uma cadeia de caracteres em maiúscula.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 72
As funções data-hora:

Funçõe Descrição

Date Retorna a data corrente.


DateAdd Permite que você adicione um intervalo específico a uma data.
DateDiff Calcula diferenças entre datas.
DateSerial Retorna uma data correspondente a um dia, mê e ano específicos.
DateValue Transforma uma cadeia de caracteres em data.
Informa qual dia em uma cadeia de caracteres alfa-numéricos ou números
Day
representa.
Informa qual hora uma cadeia de caracteres alfa-numéricos ou números
Hour
representa.
Informa quantos minutos uma cadeia de caracteres alfa-numéricos ou números
Minute
representa.
Month Informa qual mês uma cadeia de caracteres alfa-numéricos ou números representa.
Now Retorna a data e horário correntes.
Informa quantos segundos uma cadeia de caracteres alfa-numéricos ou números
Second
representa.
Time Informa o horário corrente.
TimeSerial Retorna uma variável do tipo data para o horário fornecido.
Weekday Informa o dia da semana correspondente à data.
Year Informa a qual ano uma data corresponde.

Banco de Dados
Sempre que trabalhamos com qualquer tipo de dado devemos gravá-los em arquivos para não perdê-los quando
desligamos o computador. Chamamos esses arquivos que recebem vários dados de Banco de Dados. Iremos
abordar o padrão MDB (Microsoft DataBase) que representa a grande maioria de arquivos de Banco de Dados
para Windows existente hoje. Esse padrão é utilizado pelo Microsoft Access e o Visual Basic também o aceita.

Características

Um arquivo que contém dados irá possuir a extensão MDB. Exemplo: Se temos um banco de dados de um
controle de estoque possivelmente ele terá o nome de "Estoque.MDB". Dentro de um arquivo deste podemos
ter várias Tabelas. No exemplo de um controle de estoque, podemos ter uma tabela para Mercadorias,
Fornecedores, Clientes, etc. Todas essas tabelas ficam armazenadas dentro do arquivo MDB. Cada tabela
possui Campos onde serão armazenados os dados. Por exemplo, na tabela Mercadoria temos o campo de
Descrição da Mercadoria, Quantidade no Estoque, Valor de Venda, etc. Tudo isso representa os Campos que
estão armazenados dentro da tabela. Dentro dos campos que estão os dados que precisamos armazenar, veja a
disposição da hierarquia:

Quando estamos na fase de desenvolvimento de um programa que irá gerenciar um banco de dados, podemos
deixar já criado o Banco de Dados com suas tabelas e campos. Somente os dados é que serão inseridos pelo
usuário à medida que for trabalhando com seu programa. Para criar um banco de dados o Visual Basic traz uma
ferramenta chamada Visual Data Manager. Ele se encontra no menu Add-Ins.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 73
Visual Data Manager

O data manager (Gerenciador de Banco de Dados) é a única maneira de se construir um banco de dados
diretamente dentro do Visual Basic. Ele está disponível no menu Add-Ins, mas é, na realidade, um aplicativo
separado (VISDATA.EXE) que pode ser executado independentemente do Visual Basic. A tela principal do
Data Manager é semelhante à da figura abaixo:

O data manager permite que você olhe a estrutura de um banco de dados Microsoft Access (Jet). Ele também
pode construir um novo banco de dados em formato Jet. Isso é normalmente chamado de formato .MDB para o
nome do arquivo.

Operações com o Data Manager


Além de editar índices, o Data Manager permite que você crie bancos de dados, adicione registros em tabelas e
elimine registros. Mova para um registro que você deseja utilizando os botões de setas e dê um clique no botão
excluir.
O Data Manager também permite que você acrescente novos campos a uma tabela já existente no banco de
dados. Abra um banco de dados já existente e então dê um duplo clique na estrutura. Agora o botão Adicionar
permite que você atualize a tabela. O Data Manager também permite que você elimine campos, renomeie-os ou
modifique qualquer de suas propriedades.
Por fim, ao excluir e adicionar registros, seus bancos de dados crescerão rapidamente. Por essa razão, você
poderá querer utilizar, periodicamente, a opção Compact Database no menu File. Você poderá apenas
compactar bancos de dados no formato Microsoft Access (MDB).

Como Criar uma Base de Dados

No menu File, escolha a opção New. Os bancos de dados com que o Data Manager é capaz de trabalhar serão
exibidos. Então, escolha o Microsoft Access em sua última versão.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 74
Forneça a localização e o nome da base de dados a ser criada.

Trabalhe somente na janela Database Window, ela é responsável pelo Access. Nela dê um clique com o botão
direito do mouse sobre a opção Properties e escolha o ítem New Table.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 75
Esta é a janela de criação da estrutura da tabela. As informações contidas nesta janela serão utilizadas para que
a tabela da base de dados seja construída. Forneça o nome dos campos necessários, o nome do índice da tabela
e posteriormente o botão Build the Table (Construir Tabela) será habilitado.

Para adicionar os campos necessários na tabela clique no botão Add Field (Adicionar Campo). Forneça o nome
do campo (Name), Tipo (Type) e Tamanho (Size) se necessário.

Para adicionar o índice da tabela, clique no botão Add Index (Adicionar Índice), posicionado abaixo da lista de
campos que foram adicionados à tabela.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 76
Exercício Final Proposto
Construir um simples sistema de Cadastro de Funcionários:

Siga os seguintes passos:

• No menu File escolha a opção New Project;


• Escolha então o tipo de projeto Standard Exe.

Feito isto, construa os seguintes objetos no formulário, utilizando-se das propriedades descritas na tabela
abaixo:

Name Caption - Text

FrmCadastro -
lblcodigo Código do Funcionário
lblnome Nome do Funcionário
lblendereco Endereço Residencial
lblbairro Bairro
lblcidade Cidade
lblestado Estado
lbltelefone Telefone
lblidentidade Identidade
lblsalario Salário
dtcfunc Funcionários
txtcodigo -
txtnome -
txtendereco -
txtbairro -
Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 77
txtcidade -
cmbestado SP, RJ, ES, MG
txttelefone -
txtidentidade -
txtsalario -
cmdprimeiro &Primeiro
cmdanterior An&terior
cmdproximo Pró&ximo
cmdultimo Últim&o
cmdadicionar &Adicionar
cmdremover Re&mover
cmdalterar Alt&erar
cmdimprimir &Imprimir
cmdlimpar &limpar
cmdsobre &Sobre
cmdfechar &Fechar

Na propriedade Name do formulário digite FrmFunc e na propriedade Caption digite "Cadastro de


Funcionários".

O resultado obtido deverá ser o formulário abaixo:

Após termos construído a tela, deveremos desenvolver os menus. Para isto, você deverá clicar no menu Tools e
escolher o item Menu Editor. A outra maneira é clicando sobre a terceira ícone da barra de ferramentas do
Visual Basic.

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 78
ou

Confira abaixo a tela que se abrirá:

Nesta tela você deverá cadastrar todos os menus que seu software irá precisar e os ítens que deverão estar
contidos nesses menus.

Abaixo esta a relação dos menus e ítens a serem criados.

Caption Name Atalho

&Registros mnuregistros -
&Adicionar mnuadicionar F2
Re&mover mnuremover F3
Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 79
Alt&erar mnualterar F4
- mnutraco1 -
&Limpar mnulimpar F5
&Imprimir mnuimprimir F6
- mnutraco2 -
&Fechar mnufechar F12
&Navegar mnunavegar -
&Primeiro mnuprimeiro Ctrl+P
An&terior mnuanterior Ctrl+T
Pró&ximo mnuproximo Ctrl+X
Últim&o mnuultimo Ctrl+O
Aj&uda mnuajuda -
&Sobre o Sistema mnusobre F1

O resultado obtido deverá ser:

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 80
Obs: Não é necessário deixar espaços no topo do formulário para que os menus se encaixem posteriormente, o
próprio menu se encarrega de empurrar todos os objetos contidos no Form para baixo.

Feito isto, adicione mais um form no projeto. Para isto, você deverá clicar no menu Project e escolher o item
Add Form. A outra maneira é clicando sobre a segunda ícone da barra de ferramentas do Visual Basic.

ou

O resultado será:

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 81
E também na janela de projetos:

Feito isto, construa os seguintes objetos no formulário, utilizando-se das propriedades descritas na tabela
abaixo:

Name Caption - Text

Image1 -
Sistema de Cadastro de
lblinformacao Funcionários produzido no
curso de Visual Basic 6.0
cmdvoltar &Voltar

Na propriedade Name do formulário digite FrmSobre e na propriedade Caption digite "Sobre o Sistema".

O resultado obtido deverá ser o formulário abaixo:

Após termos construído as telas, deveremos passar para a parte da programação. Para gerar a programação,
devemos clicar duas vezes no objeto desejado.

A programação fica por sua conta, se necessário peça ajuda.


Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 82
No momento de salvar, o nome a ser dado ao projeto é PrjFunc.

Obs: os programas relacionados ao Hardware serão passados durante as aulas!!!

Co nt r o la nd o a p o r ta p ar ale la P r o fº Fel ip e Di a s 83

Das könnte Ihnen auch gefallen