Você está na página 1de 88

Visual Basic

Autor:
Aulus Plautius Rosan
Introdução
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 na ú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, normalemente 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. 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 à 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.

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 caracte- rí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
Esssa 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.

Janela de Código
Essa janela con- tém a declaração de variáveis, constantes e rotinas. Na figura ao
lado, po- demos 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.

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 posiconado 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:

Menu Project
O menu Project comté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
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

Menu Help

Barra de Ferramentas
Janelas
Janela de Projetos

Esta janela comté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 das í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 alterarações no
decorrer do programa, devido aos eventos em que foram programados.

Janela de Posicionamento do Formulário

É 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
CenterScreen, 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.

MsgBox
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:

Partes Descrição

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
Prompt 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.

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
Buttons 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.

Expressão de texto exibida na barra de


título da caixa de diálogo. Se você
Title 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.

Opções
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 trbalhando
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.

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
Obs: Se a caixa de
vbYes 6 Sim diálogo exibe um
vbNo 7 Não 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])
A sintaxe do InputBox possui estes argumentos:
Partes Descrição
É 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)),
Prompt alimentando linha com a quebra da
mesma, ou ainda usar uma
combinação (Chr(13) & Chr(10)) entre
cada linha.

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
Title entra no lugar da barra de título.

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
Default vazia.

Expressão numérica que especifica,


em pixels, a distância horizontal da
xpos margem esquerda da caixa de diálogo
da margem esquerda da tela. Se xpos
é omitida, a caixa de diálogo é
centralizada horizontalmente.

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
ypos 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
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 prescedendo 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 ítem 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çõs 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:

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.
O botão recebe a atenção do sistema, ou seja, qualquer ação do usuário
GotFocus
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 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
AddItem
execução, ou seja, quando o 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 o quadro de lista.
RemoveItem Remover um item do quadro de lista.
Fazer com que o sistema transfira sua atenção para o quadro de
SetFocus
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
Sao 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;
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 subrotinas). 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 subrotinas
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 fornulá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;
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 cliques, 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:
Proriedades Ações
BackColor Determinar a cor de fundo de um objeto.
Determinar se o formulário ou controle podem responder aos
Enabled
eventos gerados pelo usuário.

Determinar a fonte, o estilo e tamanho a ser usada para mostrar


Font um texto em um controle; é usada também em tempo de
execução para desenhar e imprimir.
ForeColor Determiar 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


Left
borda esquerda do objeto que a contém.

Determinar o tipo do ponteiro do mouse mostrado quando ele está


MousePointer
sobre uma parte específica de um formulário ou controle.

Especificar o nome usado no código para identicar um fomulário,


Name controle ou objeto de acesso a dados. Não está disponível em
tempo de execução.

Exibir uma janela de assistência junto ao ponteiro do mouse,


ToolTipText
movendo-o sobre um formulário ou controle.

Determinar a distância entre a borda interna superior de um


Top
objeto e a borda superior do 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.

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


Change combo), barra de paginação (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
Click sobre um objeto. Pode também ocorrer quando o valor do
controle é modificado.

DblClick Ocorre quando o usuário dá um duplo clique com o mouse.

Ocorre quando uma operação de " arrastar e soltar" é


DragDrop 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 monitorar se o ponteiro do
DragOver
mouse entra, deixa ou está diretamente sobre um alvo válido.
O ponteiro do mouse determina que o objeto recebe o evento.

Ocorre quando um objeto recebe a atenção do sistema (focus).


GotFocus 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.
Ocorre quando o usuário solta a tecla previamente
KeyUp
pressionada.

LostFocus Ocorre quando um objeto perde a atenção do sistema (focus).

MouseDow
Ocorre quando o usuário pressiona o botão do mouse.
n
MouseMove Ocorre quando o usuário movimenta o mouse.
Ocorre quando o usuário solta o botão do mouse previamente
MouseUp
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.
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


Propriedade
Ações
s
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
Enabled
faça evento 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.

As Propriedades Principais do ComboBox


Propriedade
Ações
s

Escolhe o tipo de caixa de combinação que será utilizada: dropdown


Style
combo, simple combo, dropdownlist.

Nesta propriedade digita-se um texto que ficará como padrão, fixo na área
Text
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
Cancel a tecla ESC e sempre 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
Default botão será o padrão desta janela e sempre que apertarmos a tecla
ENTER, será como se tivéssemos clicado sobre o botão.

Determina se o botão será habilitado para pressionamento por parte


Enabled
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 programa estiver
Visible
em execução.

As Propriedades Principais do Data


Propriedades Ações
DataBaseNam
Localização da base de dados a ser utilizada pelo programa.
e
Associa a tabela da base de dados a ser utilizada pelos campos
RecordSource
contidos no formulário.
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
BorderStyle o usuário. Ela 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 a 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 a
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.

Caption Será o texto mostrado na barra de título do formulário (da janela).

Retira ou coloca o menu de controle, botão maximizar, minimizar e


ControlBox
fechar a janela.

Se esta opção estiver com False, indica que nenhum objeto desta
Enabled janela, e nem a própria janela, poderão responder a eventos gerados
pelo usuário, como clicar do mouse, pressionamento de teclas, etc.

Escolhe a fonte padrão que será usada para todos os objetos inseridos
Font
neste formulário.

Nesta propriedade escolhemos um arquivo de ícone que irá representar


Icon
o programa.

Determina se os eventos do teclado no formulário serão executados


KeyPreview
antes dos eventos correspondentes aos objetos inseridos no formulário.

MaxButton Habilita ou não o botão de maximização.

Determina se a janela será uma janela filha. Ou seja, terá uma outra
MDIChild
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
MouseIcon associado a esta propriedade aparecerá (desde que a propriedade
MousePointer esteja customizada, ou seja, personalizada).

Nesta propriedade especificamos o tipo de ponteiro que o mouse terá


MousePointer 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.
ShowInTaskba Habilita ou não a possibilidade da janela aparecer na barra de tarefas do
r windows.

Determina se, ao executarmos o programa, essa janela ficará visível ou


Visible
invisível.

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


WindowState
do computador normal, maximizada ou minimizada.

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
Enabled
estarão disponíveis ou não para o usuário.

Nome dado ao objeto. A inicial abreviada é "frm". Cuidado para não


Name
colocar um name igual ao de algum form.

As Propriedades Principais do HScrollBar


Propriedades Ações
Valor máximo a ser utilizado pela barra de
Max
rolagem, geralmente 100.

Valor mínimo a ser utilizado pela barra de


Min
rolagem, geralmente 0.

As Propriedades Principais do Image


Propriedades Ações
Figura a ser exibida pelo objeto. Pode ser
qualquer arquivo de imagem suportado pelo
Picture
Visual Basic ou até mesmo um arquivo de
ícone.

Possibilita que a imagem seja esticada


Strech mantendo toda a visualização possível dentro da
área do objeto.

As Propriedades Principais do Label


Propriedades Ações
Com esta propriedade habilitada, indicamos ao controle para
AutoSize
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.

A propriedade principal do label. Determina o texto que será exibido


Caption
dentro do objeto.

Habilita ou desabilita o objeto. Quando está em False, a cor de seu


Enabled
conteúdo fica 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
Name
objetos sejam 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 caption em outras linhas. Mas, se
WordWrap
passarmos essa propriedade wordwrap para True, isto poderá ser
feito, bastando para isto, dimensionarmos o label.

As Propriedades Principais do ListBox


Propriedades Ações
Columns Determina a quantidade de colunas que a caixa de listagem terá.

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


Enabled
objeto.

Determina a possibilidade dos itens dentro da caixa de listagem


IntegralHeight
serem exibidos de maneira parcial.

Nesta propriedade existe uma caixa onde colocamos números


ItemData
relacionados com os itens 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


MultiSelect de listagem aceitará múltiplas seleções, ou seja, poderá ser
selecionado mais de um item: none, simple e extended.

Nome que o objeto listbox terá. A abreviação para este objeto é


Name
"lst".

Classifica os itens existentes dentro do listbox em ordem alfabética


Sorted ou numérica 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
Determina se o texto ficará do lado direito ou esquerdo do botão de
Alignment
opção.
Caption O texto que será anexado ao objeto.
Habilita ou não este objeto. Estando desabilitado, o usuário não
Enabled
poderá selecionar a opção e a cor do texto será acinzentada.
Nomeia o objeto. A inicial abreviada para este tipo de controle é
Name
"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 arquivo de imagem suportado pelo
Picture
Visual Basic ou até mesmo um arquivo de
ícone.

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.
Estando em False, o objeto não estará habilitado para interagir
Enabled
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.

Habilita a possibilidade de se digitar mais de uma linha na caixa


MultiLine
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 mostre outro caracter no lugar do
PasswordChar
caracter digitado, é só especificarmos aqui qual queremos que
seja mostrado. Muito usado para digitação de senhas.

Estando a propriedade multiline habilitada, é interessante


ScrollBars colocarmos uma scrollbar na 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


Text digitado pelo usuário dentro da caixa de texto é incorporado nesta
propriedade.
As Propriedades Principais do Timer
Propriedades Ações
Associa o intervalo de tempo em que a
Interval
programação contida no objeto ocorrerá.

As Propriedades Principais do VScrollBar


Propriedades Ações
Valor máximo a ser utilizado pela barra de
Max
rolagem, geralmente 100.

Valor mínimo a ser utilizado pela barra de


Min
rolagem, geralmente 0.

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 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".
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:

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:
Propriedades Opções
Style Graphical
Picture Qualquer arquivo de 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 seguida da letra escolhida para atalho.
Na propriedade Name do formulário digite FrmCommand2 e na propriedade
Captiondigite "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 um
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.

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 insere-se 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 à 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.

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, Font e
LblSexo
ForeColor
BackColor, Font, ForeColor e
LblExame
WordWrap

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
porporcionará 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
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".
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:

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,
separarando grupos de botões de opções (OptionButton).
Figura 1. O controle Frame

Em muitos casos, você usará o frame passivamamente 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, desenhe 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

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 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()


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".
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 the same container act as a single group.
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.

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.

ListBox
Um ListBox exibe uma lista de ítens da qual o usuário pode selecionar um ou
mais ítens. Se o number de ítens excede o número que pode ser exibido, uma
barra de rolagem é automaticamente adicionada para o ListBox.

Se não há item selecionado, o valor da propriedade ListIndex é -1. O primeiro


item da lista é ListIndex 0, e o valor da propriedade ListCount é sempre um valor
maior do que o contido em ListIndex.
Obs: Para adicionar ou deletar ítens em um ListBox, use o método AddItem ou
RemoveItem. Marque as propriedades List, ListCount, e ListIndex para habilitar
um usuário para acessar ítens no ListBox. Alternativamente, você pode adicionar
ítens para a lista usando a propriedade List em tempo de projeto.

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 objetos no formulário, utilizando-se das
propriedades descritas na tabela abaixo:
Name List - Caption
LstNomes Maria da Silva
- José Pereira
- Cornélios Silva
- Pedro Pereira
- Peter Norton Souza
- Bill Gates Silva
CmdFechar &Fechar

Na propriedade Name do formulário digite FrmListBox1 e na propriedade


Caption digite "Exemplo do objeto ListBox".
O resultado obtido deverá ser o formulário abaixo:
No momento de salvar, o nome a ser dado ao projeto é PrjListBox1.

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, construa os seguintes objetos no formulário, utilizando-se das
propriedades descritas na tabela abaixo:

Name List - Caption


LstNomes Joaquim Portugal
- José Pereira
- Pedro Pereira
- Peter Norton Souza
- Cornélios Silva
- Bill Gates Silva
LblTexto -
LblQuantidade -
LblIndice -
CmdTexto &Texto
CmdQuantidade &Quantidade
CmdIndice &Indice
CmdFechar &Fechar

Na propriedade Name do formulário digite FrmListBox2 e na propriedade


Caption digite "Exemplo do objeto ListBox".

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 para o Formulário:

Programação do botão CmdTexto:

Programação do botão CmdQuantidade:

Programação do botão CmdIndice:


O programa será executado da seguinte maneira:

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

ComboBox
O ComboBox é um controle, similar a uma combinação entre um ListBox e um
TextBox, em que você entra com um valor ou seleciona um item de uma lista.

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
CmbNomes -
LblNomes -
CmdFechar &Fechar

Na propriedade Name do formulário digite FrmComboBox e na propriedade


Caption digite "Exemplo do objeto ComboBox".
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 para o Formulário:

Programação da caixa combo CmbNomes:

O programa será executado da seguinte maneira:


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

ScrollBar
Com as barras de rolagem, você pode utilizar as setas que estão posicionadas
nas extremidades para aumentar ou diminuir valores, tamanho de objetos,
controlar o posionamento e o direcionamento de objetos baseado em outros
fatores contidos no programa.
Este objeto possui duas aparências, disponibilizando ao programador uma barra
na posição horizontal ou uma barra na posição vertical. Dependendo da situação
do programa, o programador saberá qual das barras ele precisará em seu
programa.

Timer
O controle Timer realiza ações atribuídas à 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 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 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, altere esta propriedade para True. Em todo
Enabled 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.

DriveListBox
Um DriveListBox habilita um usuário selecionar uma unidade de disco válida.
Use este controle para exibir uma lista de todas as unidades de disco válidas no
sistema do usuário. você pode criar caixas de diálogo que habilitam o usuário abrir
um arquivo de uma lista de arquivos em um disco em qualquer drive acessível.

Obs:Selecione as propriedades List, ListCount e ListIndex para habilitar um


usuário acessar ítens em uma lista. Se você também exibir os controles
DirListBox e FileListBox, você pode escrever um código para sincronizá-los com
o DriveListBox e com cada outro controle.

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
Drive1
Dir1
File1

Na propriedade Name do formulário digite FrmArquivos e na propriedade


Caption digite "Exemplo dos Objetos de Arquivos".

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 listagem de drive Drive1:

Programação da caixa de listagem de diretórios Dir1:

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


DirListBox
Obs: Selecione as propriedades List, ListCount e ListIndex para habilitar um
usuário acessar ítens em uma lista. Se você também exibe os controles
DriveListBox e FileListBox, você pode escrever código para sincronizá-los com
o controle DirListBox e com cada outro controle.

Exercício Proposto
O exercício proposto para este objeto já foi realizado no item DriveListBox.

FileListBox
Obs: Selecione as propriedades List, ListCount e ListIndex para habilitar um
usuário acessar ítens na lista. Se você também exibe os controles DirListBox e
DriveListBox, você pode escrever código para sincronizá-los com o FileListBox
e com cada outro controle.

Exercício Proposto
O exercício proposto para este objeto já foi realizado no item DriveListBox.

Shape
O controle shape é usado para criar formas geométricas pré-definidas em forms,
frames, oo picture boxes. Essas formas pré-definidas podem ser: retângulo,
quadrado, oval, círculo, retângulo com cantos arredondados ou um quadrado com
cantos arredondados.
Figura 1. O controle Shape

Você pode alterar neste controle as propriedades style, color, fill style, border color
e border style de qualquer um dos shapes que você desenhou no form.
Para uso simples, o controle shape permite que você crie uma variedade de
shapes sem escrever qualquer código. Para uma funcionalidade mais avançada
você precisa usar os comandos Line e Circle.

Shapes Pré-Definidos
A propriedade Shape do controle shape permite que você trabalhe com seis tipos
pré-definidos de shapes. A tabela abaixo lista todos os shapes pré-definidos, seus
valores e as contantes equivalentes do Visual Basic:
Shape Style Constant
Rectangle 0 vbShapeRectangle
Square 1 vbShapeSquare
Oval 2 vbShapeOval
Circle 3 vbShapeCircle
Rounded Rectangle 4 vbShapeRoundedRectangle
Rounded Square 5 vbShapeRoundedSquare

Figura 2. Shapes Pré-defindos

Preenchimento e Estilos de Linhas


Você pode usar as propriedades FillStyle e BorderStyle para alterar o estilo do
preenchimeto e o estilo da borda de qualquer um dos shapes que você desenhou
no form.
A propriedade FillStyle, controla o estilo e permite que você através de um número
pré-definido controle o padrão do estilo de preenchimento. Estão incluídos: Solid,
Transparent, Horizontal Line, Vertical Line, Upward Diagonal, Downward Diagonal,
Cross e Diagonal Cross.
A propriedade BorderStyle permite que você através de um número pré-definido
controle o estilo da borda. Estão incluídos: Transparent, Solid, Dash, Dot, Dash-
Dot, Dash-Dot-Dot e Inside Solid.

Alterando os Atributos de Cor


As propriedades BackColor e FillColor permite que você adicione cores no shape
e em suas bordas.
Em tempo de projeto, você pode alterar fillcolor ou bordercolor escolhendo na
janela de propriedades do controle shape as cores correspondentes à paleta de
cores ou cores do sistema.
Para alterar as cores em tempo de execução, use as constantes de cores do
Visual Basic (vbGreen, por exemplo) ou as constantes das cores do sistema
(vbWindowBackground, por exemplo) ou a função RGB para especificar a fillcolor.

Desenhando Shapes em um Form


Você pode usar o controle shape para desenhar retângulos (regulares ou de
cantos arredondados), quadrados (regulares ou de cantos arredondados), ovals, e
círculos em um form.

Para desenhar um shape em um form:


1. Na caixa de ferramentas, selecione o controle Shape.Quando o ponteiro
mover-se para dentro do form, alterando-se para uma cruz;
2. Clique e arraste o cursor para fazer o tamanho do objeto como você quiser;

3. Na janela de Propriedades, selecione a propriedade Shape;

4. Selecione o estilo que você quer.


Os shapes podem ser aumentados como qualquer outro controle, selecionando e
arrastando o controle redimensionado-o, ou selecionando as propriedades Height
e Width.

Line
O controle line é usado para criar simples segmentos de linha em um form, um
frame, ou em um picture box.
Figura 1. O controle line

Você pode controlar a posição, tamanho, cor e estilo dos controles line para
personalizar o visual das aplicações. O line tem funcionalidade limitada e está
intensionado para usos simple de exibição e impressão. Os segmentos de linha
não podem ser unidos com outras formas geométricas.

Selecionando o Estilo da Borda e Cor


Você pode selecionar a cor e o estilo de um segmento de linha usando as
propriedades BorderStyle e BorderColor.
A propriedade BorderStyle possui seis estilos de linhas:
• Transparent

• Solid

• Dash

• Dot

• Dash-Dot

• Dash-Dot-Dot

• Inside Solid
Você pode especificar um estilo de linha em tempo de projeto escolhendo a
propriedade BorderStyle na janela de propriedades do controle line, ou em tempo
de execução especificando o estilo usando as constantes equivalentes do Visual
Basic no código.
A propriedade BackColor é usada para especificar a cor da linha.
Em tempo de projeto, você pode selecionar a cor da linha escolhendo a
propriedade BorderColor na janela de propriedades do controle line e então
selecionando as cores disponíveis na paleta ou cores do sistema.
Para alterar uma cor em tempo de execução, use as constantes de cores do
Visual Basic (vbGreen, por exemplo) ou as constantes de cores do sistema
(vbWindowBackground, por exemplo) ou a função RGB para especificar as cores
da borda.

Movendo e Aumentando uma Linha


Você pode mover ou redimensionar o controle line em tempo de execução
alterando as propriedades X1, X2, Y1 e Y2. As propriedades X1 e Y1 controlam as
posições horizontal e vertical da esquerda do início ao fim de um segmento de
linha. As propriedades X2 e Y2 controlam as posições horizontal e vertical da
direita do início ao fim de um segmento de linha. Você não pode mover uma
segmento de linha usando o método Move.

Desenhando Linhas em um Form


Você pode usar o line para desenhar linhas simples em um form.

Para desenhar uma linha em um form


1. Na caixa de ferramentas, selecione o controle Line.Quando o ponteiro
mover-se para dentro do form, alterando-se para uma cruz;
2. Clique no form onde você quer a linha para iniciar e pressione o botão do
mouse;
3. Arraste o cursor para onde você quer o final da linha e solte o botão do
mouse;

4. Na janela de Propriedades, selecione a propriedade BorderStyle se você


quer alterar a aparência da linha;
5. Selecione o estilo que você quer.

Image
Um Image pode exibir um gráfico de um arquivo bitmap. Um bitmap define uma
imagem como uma coleção de pontos (pixels). Um bitmap tem as extensões de
seus arquivos como: .bmp, .dib, ou .2bp. Você pode usar bitmaps de várias
definições de cores, incluindo 2, 4, 8, 16, 24, e 32-bits, mas um bitmap somente
exibirá corretamente se o dispositivo de exibição suporta a definição de cores
usadas pelo bitmap. Por exemplo, um bitmap de resolução 8-bit-por-pixel (256
cores) somente exibe em 16 cores quando exibido em um dispositivo 4-bits-por-
pixel (16 cores).

O image usa menos recursos do sistema e remonta as figuras mais rápido do que
um picture box, mas ele só suporta parte das propriedades de um picture box,
eventos e methods. Ambos os controles suportam formatos de figuras bitmap.
Contudo, você pode esticar as figuras em um controle image ajustando elas ao
tamanho do controle. Você não pode fazer isto com o controle picture box. A
propriedade Stretch determina o quanto a figura será esticada quando o controle
image é redimensionado. Se a opção é True, a figura lida dentro do controle
image é esticada. Esticando uma figura bitmap podemos produzir uma imagem de
menor qualidade.

PictureBox
Obs: Você pode também usar um PictureBox para agrupar controles
OptionButton e para exibir métodos de saída de gráficos e escrever textos com o
método Print. Para fazer um PictureBox automaticamente redimensione para
exibir uma entrada de gráfico, alterando a propriedade AutoSize para True.

Para criar uma animação ou simulação, você pode manipular as propriedades


gráficas e os métodos através de código. As propriedades gráficas e os eventos
são muito usados por operações no momento de impressão, assim como
modificar o formato de um formulário na tela para impressão.

ADO Data Control


O controle ADO Data Control é similar ao intrinsíco Data control e ao Remote
Data Control (RDC). O ADO Data Control allows you to quickly create a
connection to a database using Microsoft ActiveX Data Objects (ADO).

Obs: Em tempo de projeto, você pode criar uma conecção selecionando a


propriedade ConnectionString para um conecção com textos válida, então
selecione a propriedade RecordSource para uma condição apropriada no
gerenciador de base de dados.

Você pode também selecionar a propriedade ConnectionString para definir o


nome de um arquivo em uma conecção; o arquivo é gerenciado por uma caixa de
diálogo de Link de Dados, que aparece quando você clica na propriedade
ConnectionString e então clica nas opções Build ou Select.
Poderão ser feitas conecções com os objetos: DataGrid, DataCombo, oo
DataList apenas selecionando a propriedade DataSource do Controle ADO Data.
Em tempo de execução, você pode dinamicamente alterar as propriedades
ConnectionString e RecordSource para alterar a base de dados.
Alternativamente, você pode selecionar a propriedade Recordset diretamente
para posteriormente abrir a origem dos registros.

Ole (Object Linking and Embending)

Ole é uma tecnologia que complementa e estende o intercâmbio dinâmico de


dados, já que, em vez de a informação ser meramente transferida, ela é
apresentada da mesma forma em que aparecerá no aplicativo original. Planilhas
aparecem como planilhas, documentos em processadores de texto aparecem
como deveriam aparecer em um processador de texto e assim por diante. Quando
você acrescenta um controle OLE a seu projeto em Visual Basic, fornece ao
usuário uma ponte para outros aplicativos Windows e o que eles verão será, para
eles, semelhante ao outro aplicativo.
A idéia por trás do conceito de incorporar é que você crie documentos que
integrem vários aplicativos Windows sob um mesmo teto. Incorporação em OLE
permite ao controle personalizado manter o dado do objeto dentro dele próprio.
Quando o Visual Basic ativa o controle OLE, ele, o controle, retorna para o
aplicativo que criou o dado, e você pode utilizar o potencial daquele aplicativo
para modificar o dado no local.
Uma das idéias principais que sustentam a introdução da OLE foi que a Microsoft
queria que os usuários deixassem de pensar em seus aplicativos como um deus
supremo, e em vez disso, pensassem nele como um documento central.

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 álgebracotidiana, 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 ]
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árioou 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 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 Staticdentro da
mema, 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 chamdas 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

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 Bytes Faixa de Valores
Dado
Integer 2 bytes -32.768 à 32.767
Long 4 bytes -2.147.483.648 à 2.147.483.647
Single 4 bytes -3,402823E38 à 1,401298E-45 (-) e 1,401298E-45 à 3,402823E38 (+)
-1,79769313486232E308 à -4,94065645841247E-324 (-) e
Double 8 bytes
4,94065645841247E-324 à 1,79769313486232E308 (+)
Currency 8 bytes -922.337.203.685.477,5808 à 922.337.203.685.477,5807
De zero à 65.500 caracteres. Em sistemas de 32 bits, máximo de
String 1 byte por caracter
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 para
Variant Qualquer valor numérico, caracter, objeto ou valor nulo.
cada 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.
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
os 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 faiza de valores abrnagida 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 armazenado 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.
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.
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 famoso
é o valor de PI (3,14159265358979...)

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.

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 noem 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

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


And
verdadeiras, então o resultado será verdadeiro.

Efetua a operação lógica OU. Se uma das expressões (ou


Or
ambas) for verdadeira, então o resultado será verdadeiro.

Efetua a operação lógica NÃO. Inverte o estado lógico de


Not uma expressão, se ela for verdadeira, torna-a falsa e vice-
versa.

Efetua a operação lógica OU EXCLUSIVO. Se uma das


Xor expressões for verdadeira, o resultado será verdadeiro,
porém se ambas forem verdadeiras, o resultado será falso.

Efetua a operação de equivalência de expressões. O


Eqv resultado será verdadeiro somente se ambas as expressões
forem equivalentes.

Efetua a operação de implicação lógica. Retorna verdadeira


Imp
se uma expressão implica em outra.
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

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 possiblidades:

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:

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 numa ú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
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.
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

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 um 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

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.

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
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 )
'
'
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
Popemos 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

'

'
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.
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
Retorna o código do caractere correspondente a primeira
Asc
letra.

Retorna a posição da primeira ocorrência de uma cadeia


InStr
dentro de outra.
LCase Converte a cadeia de caracteres em minúscula.
Encontra ou remove um número específico de caracteres do
Left
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.
Encontra ou remove um número específico de caracteres do
Right
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.
Converte uma cadeia de caracteres de um formulário para
StrConv
outro.

String Retorna a repetição de uma cadeia de caracteres idênticos.

Remove os espaços do início e do fim de uma cadeia de


Trim
caracteres.
Ucase Converte uma cadeia de caracteres em maiúscula.

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.
Retorna uma data correspondente a um dia, mê e ano
DateSerial
específicos.
DateValue Transforma uma cadeia de caracteres em data.
Informa qual dia em uma cadeia de caracteres alfa-numéricos
Day
ou números representa.

Informa qual hora uma cadeia de caracteres alfa-numéricos


Hour
ou números representa.

Informa quantos minutos uma cadeia de caracteres alfa-


Minute
numéricos ou números representa.

Informa qual mês uma cadeia de caracteres alfa-numéricos


Month
ou números representa.
Now Retorna a data e horário correntes.
Informa quantos segundos uma cadeia de caracteres alfa-
Second
numéricos ou números 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 isto 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 a
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.

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.

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.
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.

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 -
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.

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
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:


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á:

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.

Abaixo segue a programação dos formulários FrmFunc e FrmSobre:

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

BY Aulus Plautius