Você está na página 1de 56

NDICE

Histrico do VB .
.
.
.
.
.
Novidades do VB4.
.
.
.
.
.
Novidades do VB5 .
.
.
.
.
.
O Que o VB?
.
.
.
.
.
.
Rodando o VB5 .
.
.
.
.
.
A ToolBox do VB .
.
.
.
.
.
A Janela de Projeto .
.
.
.
.
.
A Janela de Propriedades
.
.
.
.
A Janela do Form .
.
.
.
.
.
Passo-a-Passo para a Criao de uma Aplicao
A Janela de Cgido.
.
.
.
.
.
Criao de Menus .
.
.
.
.
.
Principais Controles do VB5 .
.
.
.
Eventos Comuns .
.
.
.
.
.
Propriedades Gerais
.
.
.
.
.
Variveis .
.
.
.
.
.
.
.
Constantes
.
.
.
.
.
.
.
Escopo .
.
.
.
.
.
.
.
Estruturas e Loops .
.
.
.
.
.
Subprocedimentos e Funes.
.
.
.
Depurao do Cdigo .
.
.
.
.
Criando Base de Dados via Data Manager .
Dicas e Macetes .
.
.
.
.
.
Agradecimentos .
.
.
.
.
.
Bibliografia .
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.2
.3
.4
.8
.9
.15
.17
.17
.18
.19
.21
.22
.25
.27
.28
.31
.33
.35
.38
.41
.45
.46
.47
.55
.56

Pgina 1

HISTRICO
O BASIC surgiu j h algum tempo, foi o pontap inicial na carreira de Bill Gates,
quando largou a faculdade com um amigo para fundar a MICROSOFT e fazer em duas
semanas um interpretador para o BASIC, primeiro produto a ser comercializado pela
Microsoft. Por esta empreitada conseguiu que a IBM, que estava lanando o seu PC e no
esperava tanto sucesso, a permisso para fazer o sistema operacional deste computador, o
MS-DOS, que marcou o incio do monoplio da Microsoft.
No Brasil, muita gente entrou em contato com ele na dcada passada com os finados
computadores MSX, TK90X, TK2000 e CP500, que o utilizavam como linguagem de
programao. Nesta poca era comum nos programas o uso descarado e extensivo do
comando GOTO, que tornava um programa de algumas dezenas de linhas muito confuso e
ilegvel.
Quando o Windows se tornou padro, pensava-se que a programao para este
ambiente s seria possvel com linguagens como C, sendo impossvel alguma pessoa com
pouca experincia fazer um programa por mais simples que fosse. Foi a que surgiu o VB,
com um novo BASIC, no mais aquele confuso, mas um estruturado e bem mais poderoso.
Tornou-se a linguagem mais utilizada em todo o mundo, sendo considerada uma das causas
do sucesso do Windows. Hoje (02/1998) temos em torno de 3 milhes de desenvolvedores
de Visual BASIC.
Escrito originalmente em 1987 por Alan Cooper (atravs de um programa com
nome Ruby, que unido ao Quick BASIC deu origem ao Visual BASIC). Foi lanado em
1991 com a verso 1.0. Em outubro de 1992 veio a verso 2.0. Est atualmente (02/98) na
verso 5.0 (lanada em 01/96).

OBJETIVO DO DESENVOLVIMENTO DE SOFTWARE


Gerar solues em tecnologia de informao para que empresas fiquem mais
organizadas, produtivas e competitivas e para que usurios trabalhem menos e com mais
comodidade e prazer. Como tambm desenvolver solues que venham ajudar nas mais
diversas reas que afetam indivduos: educao, lazer, cultura, etc.

Pgina 2

NOVIDADES DO VB 4.0
-

Verso em 16 e 32 BITs nas edies Standard, Professional e Interprise;


O VB 4.0 de 16 BITs roda em qualquer Windows enquanto que o de 32 BITs roda
apenas no 95 e no NT 3.51 ou superior;
O VB 4.O de 16 BITs continuar com as APIs do 3.x sem alteraes, enquanto que o de
32 ter todas elas alteradas para as de 32 BITs (Case-sensitive e com duas verses para
cada funo: uma ANSI sujo nome acrescido do sufixo A e uma verso Unicode
cujo nome acrescido do sufixo W de wide). Mudaram as bibliotecas centrais Kernel
passou para Kernel32, User para User32, GDI para GDI32.
(Ex. GetWindowsDirectory da lib Kernel passa para
GetWindowsDirectory A da lib Kernel32);
L ainda .MAK mas agora gera .VBP;
Boto direito tem mais fora;
Object Browser;
Custon Controls (OCX no lugar das VBX);
No mais trabalha com as VBX. As que trouxer correspondentes atualiza enquanto que
os de terceiro devem ser atualizadas com esses;
Datamanager e Datacontrol mais rpidos e mais fceis de usar;
Compilao condicional (um mesmo projeto pode ser desenvolvido para rodar tanto em
ambiente de 16 quanto de 32 BITs), desde que as duas verses do VB estejam
instaladas;
Cria agora OLE DLL;
Compatvel com o VBA 2.0;
Controles:
ImageList (cria coleo de imagens), ListView (lista de itens), RichText, SSTab
(painis com abas), StatusBar (colocar barra de status em aplicativos), ToolBar
(cria barras de ferramentas), TreeView (lista ordenada hierarquicamente),
TabFrames (abas ou guias).
Na edio Interprise: aplicaes cliente-servidor e para equipes de desenvolvimento;
acesso a dados em bases remotas;
Criao de Mdulos de Classes;
Add-ins (automatizar tarefas do programador);
3D para propertie aparncia;
Personalizar propriedades (possibilidade de criar novas propriedades);

Pgina 3

NOVIDADES DO VB 5.0
- Novas construes de linguagem (For... Each ou With... End With);
- Public substitudo por Global;
- Standard EXE (Abre EXE com Forms, Mdulos, etc.);
- ActiveX: EXE, DLL e Control (ActiveX construtor de servidores OLE); Controles
customizados agora podem ser produzidos no VB e utilizados em qualquer programa para
Windows que os aceite;
- Propriedade de Formulrio StartUp Position (podemos centralizar com ela o form);
- Todas as janelas agora esto integradas em uma s (podendo ser separadas como antes);
- A Caixa de Ferramentas (ToolBox) pode agora receber outras Abas (Tabs), basta clicar
com o boto direito sobre a ToolBox Components para adicionar;
- Pode abrir mais de um projeto por vez (File Add Project);
- A janela Propertie agora pode ser listada por ordem alfabtica ou por categoria (como
no Access);
- Layout do Formulrio Preview do Form;
EDIO DE CDIGO:
-

AutoList Members (opo para exibir lista de Mtodos e properties ao escrevermos o


nome de um objeto;
- Source Safe;
- Auto Quick Info (ao escrever nomes de funes aparecem seus parmetros);
- Auto Data Tips (ao debugar v valor da varivel onde est o cursor);
- Drag-and-Drop Text Editing (copiar ou mover parte do Cdigo selecionado. Ctrl para
copiar);
- Barras de Edio (Boto direito sobre as barras de ferramentas);
- Replace All (cuidado, fazer com muita ateno);
- Compila realmente (coloca para cdigo mquina: Menu Project Project Propertie
Compile); existem sete tipos de compilao, alm de ainda poderem ser gerado os velhos pcodes. At o VB4, na janela Make EXE File, no restava nada mais a ser feito do que clicar
o boto OK, agora voc pode "regular" o executvel, como:
* produza um compilado o mais rpido possvel, embora fique de tamanho maior;
* produza um compilado de tamanho menor, embora fique mais lento;
* produza um compilado que explore melhor o processador Pentium;
* etc.
Num teste feito na verso beta, o executvel compilado concluiu um clculo em 2
segundos, enquanto o interpretado levou um minuto. Mas a coisa no sempre assim.
- Executvel menor e programa mais rpido;
- Gera Cdigo apenas em 32 BITs (diferente do 4.0);
- Novos tipos de dados: Object, Byte, Variant Decimal, entre outros.

Pgina 4

OUTRAS NOVIDADES:
- O editor de Cdigo, aquela janela onde voc escreve o programa, ficou inteligente,
quando voc comea a escrever um comando, ele j mostra a sintaxe e escreve para voc
(basta clicar), no preciso mais ver a ajuda. Esta novidade foi relatada por um
programador americano que testou a verso beta como inacreditvel;
- Wizards que ajudam voc a fazer o programa. Por exemplo, todo editor de texto
tem uma janela principal com os menus arquivo, novo, abrir, salvar... toolbar com a figura
da pasta aberta para abrir, figura do disquete para salvar, uma janela de ajuda, etc. Com o
wizard, voc seleciona um tipo de programa que o VB 5.0 gera as janelas, menus, botes,
toolbars que so comuns a aquele tipo de aplicao, cabendo ao programador a alterar a
interface segundo as suas necessidades e escrever o Cdigo. Acessados ao abrir o VB5.
- Criao de OCXs para a Internet; do mesmo modo que um programador de Java
pode fazer uma applet, o programador de VB pode fazer sua OCX que rode numa pgina
HTML, so estes os chamados controles ActiveX, que s podiam ser feitos em C ou Java.
- Voc no vai mais precisar aprender Java para poder criar uma home page
interativa, porque com o VB 5, que tem os controles TCP/IP do Internet Control Pack, seus
programas vo poder ser rodados dentro do Internet Explorer.
- Controles para INTERNET:
Internet Transfer Control
Winsock e WebBrowser
nica propriedade: MDIChild = False
FAZER DOWNLOAD (RECEBER ARQUIVO VIA INTERNET):
Inet1.Execute FTP://ftp.microsoft.com,GET disclaimer.txt
c:\windows\temp\disclaimer.txt
FAZER UPLOAD (ENVIAR ARQUIVO VIA INTERNET):
Inet1.Execute FTP://ftp.microsoft.com,PUT riba.txt
c:\windows\temp\riba.txt
- Suporte a vrios padres grficos, como jpg, gif, gif animado, pcx, tif e grficos
3D.
- Interface drag n' drop.
- Suporte a mltiplos DBEngines.
- Suporte a vrios resource files.
- Suporte a polimorfismo.
- Suporte a um tipo especial de herana.

Pgina 5

OUTRAS INFORMAES:
Ainda ser preciso a runtime vbrun500.dll
Lanamento em janeiro de 96.
S vo poder ser gerados programas 32-bit.
No menu New Project agora existem vrias opes, alm disso, permitido
trabalhar com vrios projetos ao mesmo tempo, isto quer dizer que possvel fazer um
OCX enquanto ao mesmo tempo ele pode estar sendo testado em outro projeto ao mesmo
tempo.
A Microsoft j disponibilizou o VB5 Control Creation Edition para download
gratuito no seu site, que uma edio "light" do VB5 e no gera executvel. O tamanho
aproximadamente 6 MB, para quem tem um acesso rpido vale a pena.
Entre outras opes, a segunda verso do Visual BASIC para Windows 95 (a
primeira foi a 4.0), destacam-se aquelas referentes criao de arquivos DLL e OCX, que
so bibliotecas de comandos e ferramentas voltadas para o Visual BASIC, a ferramenta de
criao de formulrios referentes banco de dados, a nova interface, que permite que se
trabalhe em mais de um projeto ao mesmo tempo e muitas opes que permitem a
reciclagem de Cdigo, diminuindo o trabalho do programador.
Quanto a criao de DLL e OCX, este trabalho foi muito facilitado, uma vez que nas
verses anteriores, era necessrio se trabalhar com linguagens como o Visual C++ e o
Delphi. Agora, existe um Mdulo que compila o Cdigo fonte para DLL ou OCX.
Uma das grandes deficincias apontadas por programadores experientes era a
dificuldade de se gerar um formulrio no estilo Access para o Visual BASIC. Era
necessrio muito trabalho de interligao entre a tabela Access e os objetos Visual BASIC.
Agora, existe um Wizard (assistente) que facilita e muito esta tarefa.
Na interface, houve sensveis mudanas, com o uso de vrios projetos ao mesmo
tempo, o que torna a interao entre os projetos muito mais rpida. Neste sentido, a janela
de propriedades, velha conhecida de qualquer programador em Visual BASIC, foi
remodelada, apresentando as propriedades em ordem alfabtica, como nas verses
anteriores, ou na verso por categorias, deixando agrupadas propriedades de layout, de
dados, etc., como no Microsoft Access, por exemplo.
Aproveitando o assunto de vrios projetos ao mesmo tempo, uma das melhores
vantagens do Visual BASIC 5.0 foi a interligao entre os projetos: caso um form que
esteja sendo usado por mais de um projeto seja alterado, o Visual BASIC avisar ao
usurio dessa alterao e de que possivelmente poder haver erro em algum projeto, uma
vez que as propriedades no se cruzaro corretamente.

Pgina 6

CONHECIMENTO EXIGIDO PARA APRENDIZADO


Normalmente, quando algum pensa em fazer um programa para computador, j
um usurio com certa experincia. De programao mesmo, no preciso saber nada (se
bem que quem j sabe BASIC ter muito mais facilidade).
O conhecimento do ingls (mesmo que superficial) seria interessante, pois os
comandos do VB so derivados desta lngua e o help do VB (muito bom, por sinal) todo
em ingls. (Palavras emprestadas de uma pgina da INTERNET no Brasil (do programador
em VB, Leandro Motta Barros, de quem tive ajuda substancial para esta apostila).

Pgina 7

O QUE O VISUAL BASIC?


uma linguagem de programao Visual orientada a objetos (a partir da verso
4.0). At a verso 3.0 ele era orientado a Eventos.
Aquela primeira frase quer dizer mais ou menos que com o VB possvel
fazer
programas para Windows utilizando programao orientada a objetos (OOP).
O que so objetos?
Objetos so coisas definidas por CLASSES e que possuem propriedades, Mtodos
e Eventos. Uma janela, um boto e um banco de dados so objetos. Mas para entender bem
o que um objetos ainda preciso definir as tais das propriedades, dos Mtodos e dos
Eventos:
Comecemos pelas Classes. Uma janela muito diferente de um boto, mas os dois
so objetos. Isso acontece porque eles so definidos por Classes diferentes. Classes
definem um objeto a grosso modo. Definem suas propriedades, seus Mtodos e seus
Eventos. Classes so os moldes dos objetos.
Um boto pode ser diferente do outro (maior ou menor, com uma legenda
diferente...). Mas como isso possvel se eles pertencem mesma classe? Porque suas
propriedades so diferentes. As propriedades definem caractersticas mais especficas dos
objetos. Um boto tem, por exemplo, propriedades que determinam sua altura, sua largura
e sua legenda.
Um Mtodo uma coisa, uma funo, uma ao que age sobre um objeto. Por
exemplo, se tivermos uma lista (tipo as listas de tpicos no "procurar" da ajuda do
Windows), adicionamos ou removemos itens atravs de Mtodos. Ou ainda, se quisermos
mover um certo objeto pela tela, poderamos usar um Mtodo.
Por fim, o Evento. Digamos que em um certo programa, pressionamos um boto
e um Beep emitido. Como o programa sabe quando apertamos o boto? Ele sabe porque
quando um objeto da classe boto clicado, gerado um Evento. E a esse Evento que
est associado o Cdigo (comandos) que produzir o beep. Ocorrem tambm Eventos, por
exemplo, ao modificarmos o texto de uma caixa de texto ou ao mover o cursor do mouse
sobre uma janela.
S para ficar mais claro, um exemplo no muito nobre: digamos que haja
uma
classe "Galinha". Um objeto Galinha poderia ter a propriedade "Idade", uma propriedade
"CorDasPenas" e uma propriedade "Nome". Ela teria um Mtodo "PoeOvo" e um Mtodo
"Cacareja". E ela geraria Eventos ao dormir ao acordar e ao ser ameaada.

Pgina 8

RODANDO O VB 5.0
Basta clicar em Iniciar Programas Visual BASIC 5.0.

Observamos que o Grupo do VB 5.0 tem cinco itens:


1)API Text Viewer

Onde podemos visualizar as APIs do Windows: suas constantes, declaraes e tipos de


dados. O mais importante desse utilitrio que podemos selecionar qualquer parte daqui e
copiar e colar no Cdigo do projeto do VB.

Pgina 9

2) O segundo item o Aplication Setup Wizard

Este utilitrio o Assistente responsvel pela gerao dos discos (disquete ou Cd)
instaladores do programa desenvolvido no VB. Tambm chega a gerar o executvel, se
assim o desejemos.
3) Crystal Report o gerador de relatrios do VB. Desenvolvido pela Seagate (a mesma
dos HDs) ele agiliza o desenvolvimento de relatrios, tornando essa tarefa menos
trabalhosa que sua construo atravs de Cdigo. Pode estar no Grupo do VB ou no,
depende da instalao (no nosso caso no foi instalado).

Pgina 10

Books Online So arquivos de Help existentes no CD de instalao e que podem ser


Instalados ou no no disco rgido e consultados atravs deste item.
4) Readme, arquivo de Help que traz inmeras informaes importantes:

Pgina 11

5) O quinto item o prprio VB 5.0, que ao ser ativado abre a janela abaixo, onde devemos
escolher o tipo de projeto que desejamos criar, abrir um existente ou os mais recentes:

Pgina 12

Aps escolher a opo padro Standard EXE aparece a tela abaixo, que o ambiente de
programao do Visual Basic 5.0 Edio Interprise:

Todas as janelas acima (Principal, ToolBox, Projeto, Propriedades e Formulrio) so


exibidas por default.
* Toolbox - Providencia um conjunto de ferramentas que voc usa durante o projeto para
colocar controles dentro de seu form (janela de interface com o usurio).
* Menu Bar - Mostra os comandos usados para construir a sua aplicao.
* Form - a janela na qual voc ir construir a interface da sua aplicao. No form voc
ir adicionar controles , grficos , figuras que iro criar a aparncia final da sua aplicao.
Project Window - Lista os forms , Mdulos de Cdigo.

* Properties Window - Lista as propriedades existentes para um form ou outro controle


selecionado. Uma property (propriedade) um valor ou caracterstica associada a um
objeto tais como tamanho , caption ou cor.

Pgina 13

A TOOLBOX DO VB5:
(A ToolBox que aparece na prxima pgina do VB4).

Pgina 14

B) Agora a fora do VB, a janela TOOLBOX (Caixa de Ferramentas) - a janela que traz
os Controles (as ferramentas no VB)
- Pointer No um Controle, mas uma ferramenta
que serve para mover e dimensionar Controles;
- PictureBox Exibir figuras ou cones nos
Formulrios. Tambm responde ao Evento click.
- Label Etiqueta ou rtulo, exibe um texto que no
pode ser editado pelo usurio. Uso: Ttulos.
- TextBox Exibe uma rea onde o usurio pode
digitar texto.
- Frame Moldura para agrupar Controles para que
funcionem de forma lgica.
- CommandButton Boto de Comando. Executa
ao ao ser clicado.

- CheckBox Pode assumir valores falso ou verdadeiro. Em um mesmo


Formulrio vrios CheckBoxes podem assumir o valor verdadeiro ao mesmo
tempo.
- OptionButton Pode tambm assumir valores falso/verdadeiro, mas em um
mesmo Formulrio somente um OptionButton pode assumir o valor verdadeiro.
- ComboBox Combina caixa de texto com caixa de listagem. O usurio pode
digitar a informao como tambm pode encolher da lista.
- ListBox Exibe uma lista de itens que o usurio pode selecionar.

- ScrollBar Horizontal e Vertical Permite selecionar com o mouse um


determinado valor numa faixa de valores.
- Timer Controla intervalos de tempo determinados pelo programador.
- DriveListBox Exibe uma lista de drives onde o usurio pode selecionar um.
Pgina 15

- DirListBox Exibe uma lista de diretrios (pastas) e permite que o usurio


selecione um.
- FileListBox Idem para arquivos.
- Shape Adiciona diversas formas geomtricas ao Formulrio.
- Line Adiciona linhas a Formulrios.

- Image Exibe figuras ou cones e funciona como um CommandButton quando


clicado.
- Data o DataControl, que permite conectar-se a um Banco de Dados
existente para extrair manipular as informaes contidas neste.
OLE Incorpora objetos de outros aplicativos em um Formulrio.
- CommonDialog Exibe um conjunto de caixas de dilogo comuns no
Windows, abrir arquivo, imprimir, fontes, salvar, etc.
- ToolBar Contem uma coleo de Botes e utilizado para criar Barras de
Ferramentas que esto associadas com uma aplicao.
- StatusBar Cria uma Barra de Status para um programa com at 16 painis
contidos em uma coleo de painis.
-

ProgessBar Barra que indica o progresso de uma operao.


- ImageList Contm uma coleo de objetos ListImage. Para exibir imagens.
- DBList Automaticamente preenche uma lista com campos de um DataControl
e opcionalmente passa o campo selecionado para um segundo DataControl. O
DBCombo similar mas permite editar o campo selecionado.
- DBGrid Exibe e manipula uma srie de linhas e colunas representando
Registros e Campos de um objeto Recordset.

Pgina 16

C) A JANELA DE PROJETO
As caractersticas do ambiente Windows (interface grfica, janelas, objetos,
Eventos, mouse, cones, botes, etc.) so trabalhadas no Visual BASIC. O ponto de partida
do para o desenvolvimento do Visual BASIC uma janela o Formulrio. Realmente
uma janela a interface entre o programa e o usurio. Ela interage com o usurio. Um
PROJETO um conjunto de arquivos que compem a aplicao. Estes arquivos que
compem a aplicao podem ser visualizados na janela Projeto do VB (Project Window).
Esta a do VB4
Formulrio contem
A descrio e o cdigo associado a este.

Um Mdulo Class contm as definies caractersticas de uma Classe incluindo suas propriedades e
Mtodos.

Um Mdulo padro
contm declaraes e
procedures.

Um arquivo Resource pode conter


todos os Bitmaps, strings e outros
dados de um projeto.

Esta a do VB5

Para poder compartilhar Cdigo em todo o projeto deve-se colocar este Cdigo em
um Mdulo e declarar a Procedure como Global.
O ambiente de programao do Visual BASIC provm inmeras ferramentas para auxiliar
no desenvolvimento de aplicaes grficas: Formulrios, Caixa de Ferramentas (Controles),
Paleta de Cores, Propriedades, Eventos predefinidos, Janela de Mdulo interativa e com
help on-line, Object Browser, API Viewer, Setup Wizard, etc.

D) A JANELA DE PROPRIEDADES
Esta do VB4

OBJECT BOX
SETTING BOX
Esta uma janela muito til (economiza muitas linhas de
Cdigo e a cada verso vem mais rica.
Todas estas propriedades indicadas (nome, cor de frente, cor
de fundo, ttulo, aparncia, caixa de controle, habilitada, etc.)
so referentes a um objeto, cujo nome aparece na Barra de
ttulos da janela (Form1 no caso da janela ao lado).

Pgina 17

Esta a janela de Propriedades do VB5:

Form Layout (Visualizao do Projeto)

E) JANELA DO FORMULRIO

O Formulrio o principal objeto do VB, a janela que forma a interface com o


usurio. Contm botes, menus, figuras, etc. Suas Propriedades principais so:
BackColor, BorderStyle, Caption, ControlBox, Max e MinButton, Enabled, Height e
Width, Icon, MousePointers, Top,StartUp Position, Visible e WindowState (0-Normal, 1Minimizada e 2-Maximizada).

Pgina 18

CRIANDO APLICAES
* Diferena entre uma Aplicao Tradicional e outra Event-Driven ou seja ativada por
Eventos ou Orientada a Objetos.
Em uma aplicao tradicional ou programada de forma procedural , a aplicao por si s
controla que pores do Cdigo sero executadas. A execuo comea na primeira linha de
Cdigo e segue um caminho pr-definido atravs de toda a aplicao , chamando
subrotinas conforme for sendo necessrio.
Em uma aplicao controlada por Eventos ou event-driven , uma ao do usurio ou do
sistema , ativa um procedimento associado a este Evento. Assim a ordem atravs do qual o
seu Cdigo de programa executado depende de quais Eventos ocorram , que por sua vez
estes Eventos dependem das aes tomadas pelo usurio. Esta a essncia das Interfaces
Grficas e da Programao Ativada por Eventos.

PASSOS PARA A CRIAO DE UMA APLICAO:


A. Criar a interface
B. Setar as propriedades dos controles
C. Escrever o Cdigo

A. CRIAR A INTERFACE.
O primeiro passo na construo de uma aplicao Visual BASIC desenhar os objetos que
iro compor a interface. Para inserir o controle no seu form:
1. Clique no boto do controle dentro da toolbox.
2. Mova a seta do mouse para dentro da rea do form , a seta vira uma cruz.
3. Ponha a cruz no ponto dentro do form onde ir ficar o canto superior esquerdo do
controle escolhido
4. Arraste a cruz at que o controle fique do tamanho desejado (arrastar significa apertar o
boto esquerdo do mouse e mante-lo apertado enquanto o objeto movido com a mudana
de posio do mouse)
5. Solte o boto do mouse e o controle aparecer no form. Caso voc d um duplo clique
num Controle da ToolBox ele ser desenhado automaticamente em tamanho padro e no
centro do Form.

Pgina 19

B. SETAR AS PROPRIEDADES DOS CONTROLES


Propriedades so caractersticas que um objeto pode ter. Existem as comuns (p.e.: name) e
as particulares a cada objeto.
O prximo passo setar ( colocar valores de inicializao ) as propriedades dos objetos que
voc criou. A janela Properties proporciona uma maneira fcil de inicializar as propriedades
para todos os objetos do form . Para abrir a janela de propriedades , escolha o comando
Properties Window no menu View ou ento clique no boto Properties na Barra de
Ferramentas ( Toolbar ) ou tecle F4.
OBJECT BOX - Mostra o nome do objeto selecionado. Clique a seta a direita do box para
selecionar o form ou nome de controle a partir da lista de objetos presentes no form atual.
SETTINGS BOX - Permite que voc edite a inicializao da propriedade selecionada na
lista de propriedades. Algumas inicializaes podem ser trocadas clicando-se na seta
sublinhada existente a direita do box ; ser mostrada ento uma lista de opes . Voc
poder clicar em um item da lista para seleciona-lo.
LISTA DE PROPRIEDADES - A coluna esquerda mostra todas as propriedades para um
objeto selecionado, a coluna da direita mostra a inicializao atual para cada uma das
propriedades.

C. ESCREVER O CDIGO.
MDULOS so objetos que contm cdigo de programao (procedures, variveis,
constantes, tipos de dados, etc).
A janela de Cdigo o local onde voc escreve o Cdigo Visual BASIC para a sua
aplicao. Cdigo consiste em sentenas da linguagem , constantes e declaraes. Usando a
janela de Cdigo ( Code Window ) , voc pode rapidamente ver e editar qualquer parte do
seu Cdigo dentro de sua aplicao.
Para abrir a janela de Cdigo voc deve clicar duas vezes no form ou no controle para o
qual voc deseja escrever Cdigo ou ento a partir da janela Project , selecione o nome do
form e clique no boto View Code.

Pgina 20

JANELA DE CDIGO
(Code Window)

A janela de Cdigo ( Code Window ) contm os seguintes elementos :


Object Box (Object) - Mostra o nome do objeto selecionado. Clique na seta a direita para
mostrar a lista de todos os objetos associados a este form.
Procedures List Box (Proc) - Lista os procedimentos existentes para um objeto. O box
mostra o nome do procedimento selecionado - no exemplo acima Click . Clique na seta a
direita do box para mostrar todos os procedimentos associados a este objeto.
O CDIGO ( ou programa) em uma aplicao Visual BASIC dividido em pequenos
blocos chamados procedures (procedimentos). Um event procedure ( procedimento
associado a um Evento ) contm Cdigo que executado quando um Evento ocorre
( como por exemplo quando o usurio clica em um boto) .
Cada controle tem uma parte do cdigo associada a si. Existem controles que tem apenas
propriedades sem a necessidade de cdigo (acontece muito com os Labels), sem qualquer
cdigo

Pgina 21

CRIANDO UM EVENT PROCEDURE:


1. No Object box , selecione o nome do objeto no form ativo ( form que atualmente tem o
foco)
2. Na Procedure List box , selecione o nome do Evento desejado. No exemplo acima a
procedure Click j estava selecionada, j que ela a procedure default para o boto de
comando. Note que uma mscara (template) para a escrita do Cdigo para este Evento est
sendo mostrada na janela de Cdigo
3. Digite o Cdigo desejado entre as sentenas Private Sub e End Sub e a procedure se
parecer com o texto abaixo.
Private Sub Command1_Click ( )
Text1.text = "Hello World!"
End Sub

CRIAO DE MENUS
Menus so criados usando a janela Menu Design. Voc adiciona itens ao menu em tempo
de projeto pela criao de controles de menu e setando propriedades que definiro sua
aparncia.

EDITOR DE MENUS
(Menu Design)
Para a criao de um Menu devemos ir ao menu Tools Menu Editor ou teclar Ctrl+E.
1) Comeamos digitando o Ttulo (em Caption) do Menu mais esquerda. Caso
desejemos acessar esse menu via Alt e a letra grifada devemos inserir o & antes da
letra que ser grifada. No exemplo abaixo: &TesteMenu (que aparecer como
TesteMenu);
2) Depois digitamos o nome (em Name) do Menu para referncia em Cdigo;
3) Os outros itens no so obrigatrios;
4) Clicar em Next para entrar um novo Menu ou item de Menu. Caso seja um item de
Menu devemos clicar na seta para a direita quando aparecero trs pontinhos a esquerda
do ttulo do item que ficar abaixo do nome do Menu.
5) Os Menus e os itens de Menus podem ser referenciados em Cdigo atravs do Evento
Click, que deve ser feito no Formulrio aps teclarmos em OK.

Pgina 22

Pgina 23

4 - CONECTANDO FORMULRIOS
A adio de novos formulrios na sua aplicao feito atravs da opo File na barra de
menu , comando New Form ou clicando no Boto Form.
Comandos para controle do form :
Comando
Load form

Ao
Carrega o form mas o deixa invisvel

Form.Show [modo] Mostra o form se ele estiver invisvel, se


ele no estiver carrega ento ele primeiro
carrega o form e depois o mostra , estilo
refere-se a se o form que fez a carga do
prximo form , fica parado at a desativao
do novo form (modo =0 ou modeless) ou se
continua a sua execuo sem se importar com o
prximo form (modo=1 ou modal)
Unload form

O form descarregado da memria e a sua


execuo encerrada

Pgina 24

CONTROLES, MTODOS, EVENTOS E PROPRIEDADES

PRINCIPAIS CONTROLES DO VB5


CommandButton (Boto de Comando) um dos Controles mais utilizados em
programas do Windows, no apenas em VB. Sua funo principal executar comandos
quando clicado. O Evento Click o mais importante para ele. As Propriedades Caption,
Name, Enabled so importantes entre outras. A propriedade Enabled indica se o boto
responder ao Evento Click ou no.
PictureBox (Caixa de Imagem) - Este Controle utilizado para exibir figuras nos
Formulrios e tambm responde ao Evento Click. A propriedade Picture a que abre a
caixa de dilogo para indicarmos o path do cone ou da figura que queremos exibir.
Label (Etiqueta ou Rtulo) Exibir um texto onde o usurio no possa alterar. Sua
propriedade principal a Caption (que o texto que o Controle exibir). Outras
Propriedades de formatao do texto: FontName, FontBold, Alignment, etc.
TextBox (Caixa de Texto) Exibir um texto onde o usurio possa editar. Sua
propriedade principal o Text (que o texto que o Controle contem). As Propriedades de
formatao do texto so idnticas ao Label.
CheckBox (Caixa de Verificao) til quando necessitamos informar ao sistema
que determinadas informaes so verdadeiras ou falsas. Em um mesmo Formulrio
vrios CheckBoxs podem assumir o valor verdadeiro ao mesmo tempo. Algumas
Propriedades: Visible, Enabled e Caption.
OptionButton (Boto de Opo ou boto de rdio) Com este Controle somente
uma das opes pode assumir o valor verdadeiro em um mesmo conjunto. Para Ter mais de
um conjunto verdadeiro temos que utilizar o Controle Frame.
ListBox (Caixa de Listagem) Exibir e selecionar uma lista de itens. As
Propriedades ListCount e ListIndex so utilizadas para identificar os itens da lista. Os
Mtodos AddItem e RemoveItem so utilizados para adicionar e remover itens.
ComboBox (Caixa de Combinao) Combinao de uma TextBox com uma
ListBox. Pode-se editar um texto na parte superior ou selecionar um item da lista.
Propriedades idnticas as da ListBox.

Pgina 25

ScrollBar (Barra de Rolagem) Vertical e Horizontal - Estes controles assumem


valos mximos ou mnimos de acordo com as propriedades Max e Min, respectivamente.
Estes controles podem receber um deslocamento pequeno (propriedade SmallChange),
que ocorre quando se clica nas setas e um deslocamento grande (propriedade
LangeChange), que ocorre quando se clica na barra. O controle recebe o valor da posio
atual.
Timer (Temporizador) til para se controlar intervalos de tempo. Evento mais
importante o Timer e a propriedade mais importante o Interval (que determina em
milisegundos o intervalo de tempo d controle).
Shape (Formas Geomtricas) Adiciona figuras geomtricas aos Formulrios.
Com a Propriedade Shape escolhemos o tipo de figura (forma). Outras Propriedades
BorderColor, BorderStyle e BackColor.
Line (Linha) Adicionar linhas geomtricas a formulrios. Propriedades
BorderColor, BorderWidth, BorderStyle, X1, X2, Y1 e Y2.
Image (Imagem) Exibe cones ou figuras e tambm responde ao Evento Click.
Diferentemente do Controle Picture este controle tem a Propriedade Stretch que ajusta o
tamanho da imagem para preencher a moldura.
Data Control Conectar-se a um Banco de Dados para extrair e manipular
informaes deste BD. Propriedades mais importantes DatabaseName e RecordSource.
Controles como TextBox podem ser vinculados a um DataControl atravs das
Propriedades DataField e DataSource.

DBList Automaticamente preenche uma lista com campos de um DataControl e


opcionalmente passa o campo selecionado para um segundo DataControl.
DBCombo similar mas permite editar o campo selecionado. Propriedades
importantes: DataField, DataSource, BoundColumn e RowSource.

OLE Incorpora e aninha objetos de outros aplicativos em um formulrio. As


Propriedades Class, OLETypeAllowed e SourceDoc definem o objeto.

Pgina 26

EVENTOS COMUNS
O Visual BASIC apresenta alguns Eventos de objetos que so usados
freqentemente, e se apresentam na maior parte dos objetos de um form. Abaixo segue uma
relao dos principais e suas respectivas funes:
Click: um Evento que executa determinadas aes especificadas pelo
programador quando algum clica sobre alguma coisa.
Dblclick: Executa determinadas aes especificadas pelo programador quando
algum clica duas vezes sobre algum objeto.
Resize: executa algum comando pr estabelecido quando o usurio redimensiona o
form.
Load: executa ordens sempre que o programa for carregado na memria.
Gotfocus: quando um objeto, um boto por exemplo, apenas ganha o foco, sem
executar as suas funes em outros Eventos.
Lostfocus: quando o foco passa para um outro objeto. Quando um objeto perde o
foco.
Keypress: quando pressionada alguma tecla, geralmente em caixas de texto, so
acionados determinados comandos.
Mousemove: sempre que se move o ponteiro do mouse, algo ser ativado. Um
exemplo prtico, so os protetores de tela, que so desativados quando mexemos o mouse.

Pgina 27

PROPRIEDADES GERAIS
As principais propriedades dos objetos do Visual BASIC, que esto presentes em
praticamente todos os objetos do Visual BASIC, so as seguintes:
Caption - Nos botes, form, e frames, altera o seu ttulo a ser exibido no form.
Enabled - Presente em todos os objetos, permite que os objetos sejam acessados,
caso ela esteja definida como False. Visible - Torna o objeto invisvel caso esta
propriedades esteja configurada como False.
Font - presente em objetos como textbox, label, botes command e botes check e
option. Permite que seja alterada a fonte de um objeto. Que agora no VB5 configura tudo
sobre fonte.
Name - altera o nome do objeto, para fins de referncia durante a programao.
Forecolor, Backcolor - define a cor da fonte e do fundo de uma textbox e uma
label, por exemplo.
Propriedades do form: Height (altura do form), Weight (largura do form),
Maxbutton (ativa ou desativa a presena do boto Maximizar), Minbutton (ativa ou
desativa presena do boto Minimizar), Left (altera a distncia do form a partir da extrema
esquerda do vdeo) e Top (altera a distncia do form a partir do topo do vdeo).
Em geral, todas as propriedades dos objetos presentes no Visual BASIC so
bastante intuitivas, no que se refere aos seus nomes. Isto pode ser notado claramente nas
propriedades Visible, Enabled, Name, entre outras.
Bem, j que sabendo o que so Classes, Propriedades, Mtodos, Eventos e
Objetos, vamos us-los! Inicie o VB. Voc certamente j notou que o VB cria uma janela
automaticamente. Bem, esta janela um objeto. Voc pode ver suas propriedades na janela
"Properties" (se esta janela no estiver visvel, use o menu View / Properties ou a tecla F4).
Na verdade nem todas as propriedades esto listadas.
Note que a janela Properties tem, logo abaixo da barra de ttulo, uma
"caixa
de seleo" dizendo "Form1 Form". Esta caixa lista todos os objetos colocados na janela
ativa. O texto em negrito "Form1" indica o nome do objeto. O texto ao lado, "Form", indica
a classe qual pertence o objeto. Logo abaixo h a lista das propriedades. esquerda ficam
os nomes das propriedades e a direita os seus respectivos valores.

Pgina 28

Note que no VB a janela chamada de Form (a partir de agora uma janela que
voc criar ser chamada de Form). Ento, quer ver os Eventos que um Form possui? Dlhe um duplo clique. Abre-se uma janela de edio. Alis, em janelas como estas que o seu
programa ser escrito. No topo desta janela h duas "caixas de seleo"; a primeira
("Object:") lista os objetos que esto na janela. A Segunda ( "Proc:"), lista todos os Eventos
do objeto. Dando um duplo clique no form, a janela de edio se abrir. O Evento "Load"
do Form estar selecionado. J haver 2 linhas includas: "Private Sub Form_Load()"e "End
Sub". "Private" por default coisa do VB4 em diante.
Aquela 1 linha inicia um subprocedimento; a Segunda termina o mesmo
subprocedimento. Qualquer coisa que voc colocar entre aquelas duas linhas ser executado
quando aquele form for carregado na memria (porque o Evento o Load-Carrega).

EXEMPLO DE UM PROGRAMA
Vamos fazer um programinha: voc clica em um boto e o ttulo da janela passa a
ser "O Boto Foi Clicado"; d um duplo-clique no form e o boto se mover na tela.
Como exemplo serve! A primeira coisa a fazer criar um boto. Para um boto
de tamanho "normal", d um duplo-clique na ferramenta "CommandButton" na caixa de
ferramentas (toolbox). Deixe o boto deste tamanho, no meio da tela. No VB cada objeto
tem um nome; quando voc cria um controle (um objeto como um boto, uma barra de
rolagem, etc.), o VB lhe d um nome "genrico" automaticamente. O nome do objeto uma
propriedade. Vamos trocar o nome do boto para "MeuBoto"
e o do form para
"MinhaJanela". Clique em uma rea vazia do form e v para a janela das propriedades.
Ache a propriedade "Name" e troque-a para "MinhaJanela". Da mesma forma, troque o
Name do boto para "MeuBoto".
Vamos agora trocar a legenda do boto para "Clique-me". Ache a propriedade
"Caption" do boto e troque para "Clique-me". Essas propriedades que voc alterou foram
alteradas durante o Design Time, ou seja, enquanto o programa estava sendo criado (e no
executado). Voc j deve imaginar que para trocar o ttulo da janela deveramos trocar a sua
propriedade "caption". Certo, mas isto s deve acontecer ao clicar o boto. D um duploclique no boto que voc criou (para abrir a janela de edio). O Cdigo (ou seja, os
comandos) para trocar o caption do form dever ser colocado no Evento Click do boto;
assim, estes comandos s sero executados quando o boto for clicado.
Ao criar um controle, a propriedade que tem o foco a Caption, ou seja, logo
que criamos um Label (p.e.) podemos imediatamente digitar seu Caption (mesmo que a
janela de propriedades no esteja visvel).

Pgina 29

Para alterar uma propriedade durante o Run-Time (enquanto o programa


executado), o VB usa a seguinte sintaxe:
Objeto.Propriedade = NovoValor
Ento para trocar o caption do form usaramos o seguinte Cdigo (note que o
Evento o click):
Private Sub MeuBoto_Click ()
MinhaJanela.Caption = "O Boto Foi Clicado"
End Sub
Veja bem: como o valor do caption um texto, deve estar entre aspas. Com isto
voc j capaz de se virar com as propriedades e ter uma boa noo sobre os Eventos.
Agora vamos aos Mtodos:
Para mover o boto vamos usar o Mtodo Move do boto. Como a
movimentao acontecer ao duplo-clicar o form, o Cdigo vai no Evento DblClick do
Form. A seguinte sintaxe usada no VB para Mtodos:
Objeto.Mtodo Atributos

(Nem sempre h atributos)

Para mover o boto, usaremos o seguinte Cdigo (lembre-se sempre de


colocar o Cdigo em seu devido Evento):
Private Sub MinhaJanela_DblClick ()
MeuBoto.Move 100, 100
End Sub
Os atributos 100, 100 vo colocar o boto perto do canto superior esquerdo do
form. Execute o programa (tecla F5 ou o botozinho do tipo play na barra de ferramentas).
Clique o boto e depois d um duplo clique no form. Se tudo funcionou direito, parabns.
O VB tem dezenas de Classes com centenas, milhares de propriedades,
Mtodos e Eventos. muito difcil falar sobre todos em pouco espao. Mas todos eles
esto muito bem explicados no help on line do VB. Procure Methods, Properties e Events e
brinque bastante com eles. Brinque tambm com outros controles, no s botes. Comece a
usar Labels ("etiquetas" que mostram um texto), PictureBoxes (para mostrar desenhos) e
outros.

Pgina 30

VARIVEIS
O QUE SO VARIVEIS?
Bem, variveis so coisas que, em programao, servem para armazenar dados
temporariamente na memria. Digamos que voc queira, fazer uma
"calculadora"; os
nmeros sero armazenados em variveis.
Como eu crio uma varivel?
Normalmente no preciso criar uma varivel; basta us-la que ela
criada
automaticamente. Uma varivel identificada por um nome. Este nome deve obedecer s
seguintes regras:
- No pode haver repetio de nomes;
- Deve comear com uma letra;
- No pode conter espaos, pontos, vrgulas e outros caracteres do tipo: !, $, %.
- Deve ter, no mximo, 255 caracteres.
Muitssimas vezes voc usar variveis para guardar valores de propriedades.
E depois poder atribuir o valor da varivel a uma outra propriedade. A sintaxe esta:
Varivel = Objeto.Propriedade => Coloca na varivel o valor da
propriedade
Objeto.Propriedade = Varivel => Coloca na propriedade o valor da
varivel

Pgina 31

EXEMPLO DE MQUINA DE SOMAR


Para dar um exemplo, vamos fazer uma "mquina de somar": em um form
coloque duas "text boxes", uma "label" e um boto. Nas caixas de texto sero colocados os
nmeros. Um clique no boto e a soma aparecer na "label". Vamos usar os nomes padro
dos controles (j que o projeto pequeno). Troque a caption do boto para "Soma" e
apague o texto das text boxes.
Todo o Cdigo estar no Evento Click do boto:
Private Sub Command1_Click ()
Numero1 = Val(Text1.Text)
Numero2 = Val(Text2.Text)
Soma = Numero1 + Numero2
Label1.Caption = Str(Soma)
End Sub
Acho que at deu para entender. Mas o que so aqueles "Val (...)" e "Str (...)"?
Val e Str so funes. Funes so comandos que retornam algum dado ou
valor. Seguidamente uma funo requer atributos (que so colocados entre parnteses). Eis
o porqu de usar essas funes: o VB diferencia nmeros de textos. Mas "12" pode ser um
texto. Normalmente, quando algo est entre aspas, considerado texto. A propriedade
"Text" (assim como a "Caption") sempre contm um texto. Uma soma entre os textos "1" e
"1" resultaria em "11"! Por isso, usamos a funo Val, que pega um texto e transforma-o em
um valor numrico. A funo Str, que aparece depois faz o contrrio, pega um nmero e
transforma em uma string (texto).
Note que voc tambm pode colocar um valor numa varivel diretamente:
Valor = 10

ou

Msg = "Isto aqui uma string."

DECLARANDO VARIVEIS
possvel (e importante) "declarar" variveis, ou seja, dizer ao programa que
voc ir us-las antes que elas sejam "automaticamente criadas".
Mas para que "declarar" se o processo automtico?
Em algumas linguagens obrigatrio (C e Java).
Principalmente por dois motivos: velocidade e economia de memria Existem
vrios tipos de dados no VB (veja tabela na prxima pgina). Cada um destes tipos tem
uma limitao em termos de valores que pode adquirir, mas tambm se diferenciam pela
quantidade de memria que ocupam.
Pgina 32

CONSTANTES:
CORES:
vbBlack, vbRed, vbGreen, vbBlue, etc.
TIPOS DE DADOS DO VB5
Data type
Storage size Range
Byte 1 byte 0 to 255
Boolean
2 bytes True or False
Integer
2 bytes -32,768 to 32,767
Long
(long integer) 4 bytes
-2,147,483,648 to 2,147,483,647
Single
(single-precision floating-point)
4 bytes -3.402823E38 to -1.401298E-45 for
negative values; 1.401298E-45 to 3.402823E38 for positive values
Double
(double-precision floating-point)
8 bytes -1.79769313486232E308 to
-4.94065645841247E-324 for negative values;
4.94065645841247E-324 to 1.79769313486232E308 for positive values
Currency
(scaled integer) 8 bytes -922,337,203,685,477.5808 to 922,337,203,685,477.5807
Decimal 14bytes +/-79,228,162,514,264,337,593,543,950,335 c/ no decimal point;
+/-7.9228162514264337593543950335 with 28 places to the right of the decimal;
smallest non-zero number is +/-0.0000000000000000000000000001
Date 8 bytes January 1, 100 to December 31, 9999
Object4 bytes Any Object reference
String
(variable-length)
10 bytes + string length
0 to approximately 2 billion
String
(fixed-length) Length of string
1 to approximately 65,400
Variant
(with numbers)
16 bytes
Any numeric value up to the range of a Double
Variant
(with characters) 22 bytes + string length Same range as for variable-length
String
User-defined
(using Type) Number required by elements
The range of each element is the
same as the range of its data type.
Note Arrays of any data type require 20 bytes of memory plus 4 bytes for each
array dimension plus the number of bytes occupied by the data itself. The memory
occupied by the data can be calculated by multiplying the number of data elements by the
size of each element. For example, the data in a single-dimension array consisting of 4
Integer data elements of 2 bytes each occupies 8 bytes. The 8 bytes required for the data
plus the 24 bytes of overhead brings the total memory requirement for the array to 32 bytes.
A Variant containing an array requires 12 bytes more than the array alone.
Pgina 33

Quando voc no declara uma varivel, ela considerada do tipo Variant. Note
que este tipo ocupa pelo menos 16 bytes de memria, bem mais que os outros. A sintaxe
para declarar uma varivel pode mudar um pouco, dependendo do "escopo" que voc
deseja. ("escopo" a disponibilidade da varivel em cada um dos "nveis" do programa veja o prximo captulo). Generalizando, a sintaxe esta:
ComandoDeDeclarao NomeDaVarivel as TipoDeDado
De um modo geral, o "ComandoDeDeclarao" ser o comando "Dim". Por
exemplo, se quiser criar uma varivel do tipo Integer chamada MinhaVariavel, usaramos:
Dim MinhaVariavel as Integer
Mas, ser que faz muita diferena gastar 2, 4, 8 ou 16 bytes da memria? Hoje os
computadores tm *muita* memria.
Tudo bem, em programas pequenos isto no ser uma diferena crucial,
mas
em um programa maior, com centenas de variveis, isto pode fazer a diferena. Alm disto,
devemos lembrar que o Windows pode trabalhar com vrios programas abertos ao mesmo
tempo; e se seu programa for "gordo" poder atrapalhar a performance dos outros.
Alm disto, quanto menos memria ocupa um certo tipo de dado, mais
rapidamente ele processado. Por isso, procure sempre usar o "menor" tipo de dado
possvel. Mas lembre-se: se voc ultrapassar o limite da varivel acontecer um erro (tente
criar uma varivel do tipo Byte e atribua a ela um valor maior que 255).

Pgina 34

ESCOPO
OS NVEIS DE UM PROGRAMA
Vamos comear criando um programa que use 2 forms.
Vamos fazer de conta que temos um excelente programa e queremos fazer uma
janela "Sobre" para ele. Primeiro coloque um boto (botSobre - este ser seu name) no form
que o VB cria para ns. Ajuste o caption deste boto para "Sobre..."
Mas normalmente o "Sobre..." vai em um menu.
Continuando. Nosso "Sobre" ser educado. Ele agradecer ao usurio por
ter
usado o programa. E o chamar pelo nome. Ento, ainda nesta primeira janela, coloque uma
caixa de texto (chame-a de txtNome) e deixe-a em branco (apague todo seu text). Alm
disto, crie um outro boto (chame-o de botPergunta) e coloque nele um caption de "?". Este
boto mostrar uma caixa de mensagem com o nome do usurio e serve apenas
para
mostrar os tais dos "nveis" do programa.
Adiante. Vamos colocar algum Cdigo no Evento Change da txtNome. O
vento change ocorre cada vez que o texto de uma TextBox muda.
Private Sub txtNome_Change()
Dim Nome As String
Nome = txtNome.Text
A varivel Nome recebe a propriedade Text da
End Sub
txtNome
fcil descobrir o que isto faz: cada vez que o texto da txtNome muda, ele
guardado na varivel "Nome". Normalmente s leramos o valor da caixa quando realmente
precisssemos dele, mas para o exemplo ter de ser assim.
No botPergunta coloque o seguinte:
Private Sub botPergunta_Click()
Dim Nome as String
MsgBox Nome
End Sub
MsgBox, um comando que mostra uma caixa de mensagem. Seu uso mais
simples MsgBox Texto, onde Texto pode ser uma varivel string ou o texto em si
(colocado entre aspas).
J sei! Quando clicarmos no "?", vai aparecer uma caixa de mensagem
contendo o nome escrito na caixa de texto.
Por qu?

Pgina 35

Fcil. O texto da caixa de texto est na varivel "Nome". Depois, a


diz para mostrar o contedo da varivel Nome!

MsgBox

Ento execute e veja se d certo.


A caixa de mensagem aparece vazia!
por causa dos "nveis" do programa. Quando declaramos uma varivel com
um Dim, dentro de um subprocedimento (como fizemos agora), a varivel s existe dentro
daquele subprocedimento. Ela no est disponvel para outras "Subs". Alm disto, quando a
Sub que a continha acaba de ser executada, o valor da varivel se perde, mesmo para
futuras "chamadas" da mesma Sub (Este segundo problema pode ser
solucionado
declarando a varivel com o comando Static, e no Dim).
Vamos solucionar nosso problema. Primeiro, v nas duas Subs que criamos e
recorte (Ctrl+X) a linha "Dim Nome as String" de ambas. Agora d um duplo clique no
Form (at agora s estamos usando um) para mostrar a janela de edio. Na "Caixa de
Seleo" Object, no canto superior esquerdo, escolha "General". Note que caixa "Proc:"
vira "Declarations". Agora, abaixo, cole (Ctrl+V) a linha Dim Nome as String. E teste o
programa de novo. Deve ter funcionado. Quando declaramos variveis na seo
Declarations de um Form, aquela varivel estar disponvel para todas as Subs daquele
Form.
E a segunda janela?
OK, crie um segundo Form. Basta clicar no primeiro boto da barra de
ferramentas ou usar o menu Insert | Form. Coloque neste novo form o nome de JanSobre.
Nele coloque uma Label ("lblObrigado"). No Evento Load deste form coloque o seguinte
Cdigo:
lblObrigado.Caption = Nome & ", obrigado por utilizar este programa."
Uma OBSzinha: "&" um operador que junta duas Strings em uma s
(operadores so comandos que realizam operaes - lgicas, matemticas...-, como +, -,
AND e o prprio &. ). Podemos usar + no lugar de &.
E na seo Declarations deste Form, coloque Dim Nome as String. Agora
vamos "ligar" os dois forms. Volte ao primeiro form e inclua o seguinte Cdigo ao
botSobre:
Private Sub botSobre_Click()
janSobre.Show vbModal
End Sub
Isto mostrar a janSobre quando o boto for clicado. vbModal indica ao
VB
que esta janela ser "Modal". Depois, retire o vbModal e note a diferena. OBS: Em
verses do VB anteriores 4.0, use o nmero 1 no lugar de vbModal.
Pgina 36

Analisando todas estas novas subs, a que concluso chegastes?


Bem, a caption do lblObrigado dever mostrar algo como: "Joo, obrigado por
utilizar este programa." Mas se der errado de novo no me surpreendo. J deu para notar
que adoras mostrar como no fazer... Mas vou executar.
E a?
Deu errado. A Label mostrou apenas ", obrigado por utilizar este

programa."

normal. Lembras que uma varivel declarada na seo Declarations de um


Form est disponvel para todas as Subs do seu prprio form. Ns estamos usando dois
forms; essencialmente o mesmo problema que tivemos alguns pargrafos acima. E para
problemas semelhantes, solues semelhantes: declarar a varivel em um nvel "mais alto".
S nos resta o terceiro e mais abrangente nvel de programao: o nvel que abrange todo o
programa (o mdulo).
Crie um Module. Use o menu Insert | Module, ou aquele boto da barra de
ferramentas que parece uma aranha fantasiada para o carnaval. Neste module (as verses
anteriores 4.0 do VB chamavam de Global Module, ou algo assim), inclua a declarao da
varivel Nome:
Public Nome as String
Note que declaramos usando "Public", que informa ao VB que esta
varivel
ser "Pblica", disponvel para todas as Subs de todos os Forms deste programa. Agora,
retire as duas linhas "Dim Nome as String" que esto nas sees Declarations de cada
Form. Execute.
Funcionou!
Ento, s para uma aparncia mais bonitinha, a vai um esquema dos nveis do
programa:
Falta responder o que escopo!
Escopo
so os nveis do programa. Por exemplo, aqueles dois erros que
tivemos durante o captulo foram causados porque as variveis estavam "fora de escopo".

Pgina 37

ESTRUTURAS E LOOPS
Loops e estruturas permitem que um Cdigo VB (ou de qualquer outra
linguagem) seja repetido vrias vezes. Permitem tambm analisar dados e tomar decises
diferentes dependendo do resultado. Na verdade loops so criados por estruturas (as
estruturas de loop).
Afinal, como que eu fao para utilizar uma estrutura?
No difcil; as estruturas so criadas atravs de alguns grupos de
A seguir listo e comento as estruturas disponveis no VB.

comandos.

If... Then... Else...


Isto, em bom portugus, quer dizer Se... Ento... Seno... Eis um exemplo de
como utiliz-la:
If MinhaVariavel <= 4 Then
Beep
ElseIf MinhaVariavel = 5 Then
Beep
Beep
Else
Beep
Beep
Beep
End If
Neste exemplo, se a MinhaVariavel for menor ou igual (<=) a 4, ento um beep
ser emitido. O "bloco" ElseIf (em verde) opcional. Ele serve para dizer que se
MinhaVariavel for igual a 5, algo ser feito (no caso, dois beeps sero emitidos). Podem ser
includos quantos ElseIf forem desejados, mas talvez seja melhor usar a estrutura Select
Case (veja adiante) do que vrios ElseIf. O bloco em azul (Else), tambm opcional, ser
executado somente se nenhum dos blocos anteriores (If e ElseIf) for executados. End If
finaliza a estrutura.

Pgina 38

Select Case
Vamos direto ao exemplo:
Select Case MinhaVariavel
Case 0
Beep
Case Is <= 5
Beep
Beep
Case Else
Beep
Beep
Beep
End Select
Esta estrutura, inicialmente, "seleciona" o valor de MinhaVariavel. Depois
verifica vrios casos (quantos forem desejados). Caso MinhaVariavel seja igual a 0, um
beep ser emitido. Caso seja menor ou igual a 5, teremos dois beeps. O bloco Case Else,
que opcional e est em azul, ser executado somente caso nenhum dos blocos case
anteriores tenha sido executado. End Select finaliza a estrutura.
Do... Loop
Esta estrutura executa um certo grupo de comandos at (Until) ou enquanto
(While) que uma certa condio verdadeira. Por exemplo:
Randomize Timer
Contador = 0
Do While MinhaVariavel <> 5
Contador = Contador + 1
Aleatrio = Int (Rnd * 10)
If Aleatrio = 5 Then
MinhaVariavel = 2
End If
Loop
MsgBox Str(Contador)

Enquanto MinhaVariavel <>5


Sorteia nmero inteiro entre 0 e 9

Aqui h algumas observaes interessantes: a primeira que possvel colocar


estruturas dentro de outras. Aqui, tivemos uma If... Then... dentro de uma Do... Loop. Isto
chamado de estruturas aninhadas.

Pgina 39

Quando o computador chega na linha Do While... ele verifica se a condio


(MinhaVariavel <> 5 ) verdadeira. Se for ele seguir at encontrar o comando Loop. A
ele volta linha Do While... e o ciclo se repete enquanto a condio for verdadeira (quando
for falsa, a execuo segue na linha logo abaixo de Loop. Se tivssemos usado Do Until ao
invs de Do While, o loop seria executado at que a condio se tornasse verdadeira.
Continuando a anlise: as linhas em azul criam um nmero aleatrio. Note que se
este nmero for 5, MinhaVariavel receber o valor de 2 (que diferente de 5 - satisfaz a
condio do loop; na prxima vez que a execuo chegar no Do While, o loop ser
encerrado). A varivel Contador, inicializada em 0, acrescida de 1 a cada execuo do
loop. No final, uma caixa de mensagem (MsgBox) exibida mostrando quantas vezes o
loop precisou ser executado.
Lembre-se que para testar este exemplo preciso colocar o Cdigo no Evento
de algum objeto (como no Click de um boto).
Mais uma coisinha: dentro de uma estrutura Do... Loop pode ser colocado o
comando Exit Do. Quando um Exit Do for encontrado, a execuo automaticamente vai
para a linha logo a seguir do Loop, independentemente da condio estar falsa ou
verdadeira.
For... Next
A estrutura For... Next ideal para realizar tarefas repetitivas. Que tal somar
todos os nmeros pares de 50 a 100 (50+52+54+...+100)?
For Cont = 50 To 100 Step 2
Soma = Soma + Cont
Next Cont
MsgBox Str(Soma)
No difcil entender este programinha: O lao (lao o mesmo que loop)
iniciado pelo For utiliza uma varivel (que eu chamei de Cont) que inicia em 50. Quando a
execuo chega no Next, volta linha For... Ali, Cont ser incrementado de 2 ("Step x"
identifica de quanto ser o incremento. A ausncia do Step x equivalente a Step 1).
Quando Cont passar de 100 e a execuo chegar linha For Cont..., a execuo continua
a partir da linha logo aps o Next Cont. possvel sair do loop antes que a varivel
contador chegue ao valor planejado. Basta que o computador veja o comando Exit For.
Bem, basicamente s isso.
Na verdade existem outras estrutura.
OBSERVAO
Conhecendo o uso bsico de objetos, o uso bsico de variveis as estruturas do
VB e os nveis do programa, voc j estar pronto para fazer programas bem bonitinhos.
Como j disse antes, no pretendo analisar cada detalhe, cada controle do VB.
Tentar, errar, corrigir, errar de novo, corrigir de novo. Fazer programinhas
simples, depois alguns mais complexos. Abrir exemplos e alterar. assim que se chega l.

Pgina 40

SUBPROCEDIMENTOS E FUNES
Mas voltando aos subprocedimentos: voc j sabe que quando o usurio interage
com o seu programa (clicando em um boto, por exemplo) gerado um Evento. Para
responder a este Evento executado um suprocedimento.

EXEMPLO
Ento um subprocedimento tudo aquilo que colocamos entre as linhas
"Private Sub..." e "End Sub" de um "respondedor de Eventos"?
Bom, aquilo um subprocedimento sim. Mas subprocedimentos no s
Na verdade existem dois tipos de subprocedimentos: Subs e Functions.

isto.

Vamos a um exemplo (outro daqueles inteis). Em um Form (Form1), coloque


uma ScrollBar (horizontal ou vertical, tanto faz). Ajuste seu Name para "BarraRol", seu
Max para 15 e seu LargeChange para 5.
Abrindo um pequeno parnteses: as propriedades Max e Min de uma ScrollBar
determinam o valor mximo e mnimo, respectivamente, que a ScrollBar pode possuir. A
propriedade SmallChange determina de quanto ser o incremento (ou decremento) quando
uma daquelas setinhas nas pontas da ScrollBar clicada. LargeChange determina de quanto
ser o incremento (ou decremento) quando a ScrollBar for clicada fora das setinhas ou
daquela "caixinha" que pode ser arrastada.
Coloque no Form1 tambm uma Label
(LabelValor) e ajuste seu Caption para 0. Agora, ao Evento Change da BarraRol, acrescente
o seguinte Cdigo:
Private Sub BarraRol_Change()
LabelValor.Caption = Str(BarraRol.Value)
End Sub
Neste exemplo criamos uma Sub (note que todo o Cdigo est delimitado
pelas linhas Private Sub... e End Sub).
E aquele "Private" tem algo a ver com escopo?
Tem sim. Agora inclua um boto (Zerador ser seu
clicado a ScrollBar ir "zerar":

name). Quando ele for

Private Sub Zerador_Click()


BarraRol.Value = 0
End Sub
Certo. Agora, vamos incrementar. Coloque um Shape ( aquele boto da caixa
de ferramentas com o desenho de um circulo e dois quadradinhos coloridos) no Form1.
Nomeie este Shape como Figura e seu FillColor para azul (&H00FF0000&) e seu FillStyle
para 0 (Solid). O Shape fica azul.
Pgina 41

Digamos que a cor deste Shape mude a cada vez que o boto for clicado e cada
vez que a ScrollBar tenha seu valor modificado. Como faramos isto?
Daria para colocar o Cdigo necessrio nos subprocedimentos
BarraRol_Change e Zerador_Click.
Daria, mas estaramos escrevendo o mesmo Cdigo duas vezes. Isto no
muito interessante. A melhor soluo criar um subprocedimento (uma Sub) que no esta
diretamente associado a um Evento. Para fazer isto v at a janela de edio do Form1
(dando um duplo clique em qualquer controle ou no prprio Form1). Na caixa de seleo
"Object" escolha General. A, entre com o seguinte Cdigo:
Private Sub MudaCor()
Figura.FillColor = Figura.FillColor Xor &HFFFFFF
End Sub
Note que ao terminar de escrever a primeira linha o VB automaticamente
inclui o "End Sub". O que este subprocedimento faz uma operao lgica XOR entre a
cor atual do Shape e o nmero &HFFFFFF (255 em hexadecimal). Este novo valor
atribudo cor do Shape. Devido s caractersticas do operador XOR, a cor ficar variando
entre o azul original e o amarelo.
Agora s falta fazer com que esta Sub seja "chamada" nos momentos
adequados. Isto feito alterando as Subs BarraRol_Change e Zerador_Click. Elas Ficaro
assim:
Private Sub BarraRol_Change()
LabelValor.Caption = Str(BarraRol.Value)
MudaCor
End Sub
Private Sub Zerador_Click()
BarraRol.Value = 0
MudaCor
End Sub
Na verdade s inclumos a chamada Sub MudaCor que acabamos de criar.
Outra coisinha: uma Sub pode ser escrita tanto na seo General de um Form
como em um Module.
E aquela histria de escopo?
Ah, sim. Subprocedimentos tambm tm escopo. Um subprocedimento (seja
Sub ou Function), quando declarado como Private pode ser "chamado" apenas por
subprocedimentos que estejam no mesmo Form ou Module que ele. Para permitir que seu
subprocedimento seja chamvel de qualquer ponto do programa declare-o como Public (
idntico ao que fazemos com variveis).

Pgina 42

APROFUNDANDO
Talvez voc esteja pensando o que faz aquele par de parnteses vazios
de cada nome de subprocedimento.

ao lado

Dentro daqueles parnteses colocamos algum parmetro que ser


utilizado
pelo subprocedimento. Vamos tornar nosso programa-exemplo ainda mais fantstico:
Quando a Sub MudaCor for chamada pela ScrollBar, a espessura da borda do Shape ficar
com uma espessura igual ao seu Value. Quando for chamada pelo Boto, a borda ficar
maior ainda (Uau!).
A primeira coisa a fazer rescrever a Sub MudaCor:
Private Sub MudaCor(MeuValor As Byte)
Dim c As Byte
Figura.FillColor = Figura.FillColor Xor &HFFFFFF
Figura.BorderWidth = MeuValor
End Sub
Agora sim! Temos alguma coisa dentro dos parnteses!
Aquilo que est entre os parnteses significa o seguinte: quando esta Sub for
chamada, dever ser passado um valor (no caso um nmero, um Byte). Este valor estar
disponvel para a Sub na forma de uma varivel (no exemplo, "MeuValor"). No difcil
compreender isto analisando o exemplo. A estes valores "passados" a um subprocedimento
damos o nome de argumento.
O prximo passo alterar os outros subprocedimentos (os associados a
Eventos) para que eles forneam o argumento necessrio:
Private Sub BarraRol_Change()
LabelValor.Caption = Str(BarraRol.Value)
MudaCor BarraRol.Value
End Sub
Private Sub Zerador_Click()
BarraRol.Value = 1
MudaCor 30
End Sub
Na primeira Sub passado como argumento a propriedade Value da
Na segunda passado um nmero (30) diretamente.
Ainda preciso ajustar o Min da BarraRol para 1. Isto evitar que o
tente dar Border do Shape um valor igual a 0 (o que geraria um erro).

BarraRol.

Ainda interessante dizer que podemos criar subprocedimentos que


mais de um argumento.

admitem

programa

Pgina 43

...FUNCTIONS
Functions so o segundo tipo de subprocedimento que podemos criar com
VB. Elas se diferem das Subs porque elas retornam um valor.

Como assim?
Vamos logo a um exemplo: uma funo-dado, ou seja uma funo que retorna um
nmero inteiro entre 1 e 6:
Private Function Dado() As Byte
Dado = Int(6 * Rnd + 1)
End Function
Esta uma funo simples, com apenas uma linha de Cdigo. O mais
importante observar como fazemos para que a funo retorne um valor: a funo retorna
um valor que est contido em uma varivel cujo nome igual ao nome da Function.
Usar esta funo simples: Por exemplo:
MinhaVariavel = Dado + Dado, coloca em MinhaVariavel o que seria o
do lanamento de dois dados.

valor

Com Functions tambm possvel utilizar argumentos. Por exemplo, a


seguinte funo retorna a soma de trs nmeros:
Private Function SomaTres(Num1 as Integer, Num2 as Integer, Num3 as
integer) As Integer
SomaTres = Num1 + Num2 + Num3
End Function
E para usar esta funo:
MinhaVariavel = SomaTres (300, 20, 12) , colocaria 332 em
MinhaVariavel.
CONCLUINDO
Saber quando e como utilizar Subs e Functions adequadamente uma coisa que
s vem com o tempo, com a prtica. Alis, isto no acontece s com Subs e Functions...
Uma ultima observao que subprocedimentos so comumente chamados de
Procedures. Se algum dia voc vir algum texto falando em uma Procedure Sub ou
Procedure Function, j sabe do que se trata.

Pgina 44

DEPURAO DE CDIGO
O Visual BASIC no pode diagnosticar ou consertar erros para voc, mas fornece
ferramentas que o ajudaro a analisar. As ferramentas de depurao incluem passo a passo
em linhas na execuo do programa , breakpoints , break em expresses , passos a passo em
procedures e visualizao de variveis e propriedades. Visual BASIC tambm inclui
facilidades especiais de depurao tais como editar-e-continuar , alterando a prxima
sentena a ser executada e testando o procedimento enquanto a aplicao est parada.
Durante a digitao do Cdigo o Visual BASIC faz uma checagem prvia da sintaxe
assinalando os erros em relao as palavras chaves da linguagem. Isso s acontecer se
estiver ativada a opo Syntax Checking para Yes em Options , Environment no menu do
Visual BASIC.

Pgina 45

CRIANDO BASE DE DADOS VIA DATA MANAGER


-

Abrir o Visual Basic 5.0

Add-Ins

Visual Data Manager...

Se for a primeira vez que Acessa o Data Manager responda No para a Pergunta do
VB (Add SYSTEM.MD? to INI file?

ento aberta a janela do VisData

File, New, Microsoft Access, Verso 7.0

Digitar o nome do Banco de Dados a ser criado e Save

Na janela DataBase Window clicar com o boto direito e New Table

No campo Table Name digitar o nome da Tabela;

Clicar em Add Field para abrir a janela de adio de Campos;

Onde se deve entrar com o nome, tipo, tamanho e outras caracterstica do campo e
clicar em OK

Inserir caractersticas de outros campos e clicar em OK, at completar os campos

Clicar em Close para fechar a janela de criao dos campos

Adicionar ndice se necessrio

Clicar em Build the Table para construir a Tabela

Aparece ento o nome da tabela na janela DataBase Window

Caso desejemos inserir dados na tabela devemos dar um duplo clique no nome da
mesma na janela DataBase Window

Ser aberta a janela Dynaset para que sejam inseridos os dados, clicando em Add e
digitando

Fechar ento o Visual Datamaneger e o Banco de Dados est criado, podendo ser
utilizado em um projeto do VB atravs do Datacontrol, Caixas de Texto e outros
controles.

Pgina 46

DICAS E MACETES:
SETUP DO VB 4.0-32BITs OU DO VB 5.0 EM PORTUGUS:
Dica retirada do Site da Forum Access: www.forumaccess.com.br
Para instalar a verso em Portugus do Setup Kit 5.0 recomendamos
os seguintes procedimentos:
1. Localize o diretorio do Microsoft Visual Basic;
2. Renomeie o atual arquivo (ingls) Setup132.exe que j existe no
subdiretorio "\setupkit\setup1\" do seu Visual Basic.
Ex: Renomeie-o para "Setup132-original.EXE"
3. Copie o novo arquivo em Portugus para este mesmo diretrio;
4. Faa um teste com qualquer aplicao DEMO ou que voc j tenha
desenvolvido.
- Para fazer este teste, voc dever selecionar o cone do Application Setup
Wizard que est no mesmo grupo de programas do Visual Basic.
Na caixa que pergunta o nome do projeto, selecione qualquer um que voc
tenha em seu computador.
- Siga os passos do Wizard normalmente!
- Aps gerado o arquivos de instalao, execute o arquivo "setup.exe" que
foi criado pelo Wizard.
- Perceba que seu programa de instalao j encontra-se em portugus!
DICA: Voc pode renomear o arquivo SETUP.EXE que o Wizard criou para, por
exemplo, INSTALAR.EXE ou CONFIG.EXE, de modo que fique mais intuitivo para
usurios mais leigos.

UPGRADE: Antes de abrir um projeto do VB 3.0 no 4 ou 5, faa backup de todos os


elementos do projeto, inclusive as VBX, DLL, MDB, etc.

COMPILAO CONDICIONAL:
Procurar no Help do VB por compiler constants. (#If... Then... #Else).

Pgina 47

ABRIR BANCO DE DADOS:


Public Sub AbrirBanco(db As Database, Path_ps As String, File_ps As String)
On Error GoTo TrataErr_DB
Path_ps = VerificaOrtografiaCaminho(Path_ps)
File_ps = VerificaOrtografiaArquivo(File_ps)
Set db = OpenDatabase(Path_ps & File_ps, False)
On Error GoTo 0
Exit Sub
TrataErr_DB:
Select Case Err
Case 3000 'Banco est aberto como exclusivo
MsgBox "O Banco de Dados est aberto para manuteno.", 16
,
cNomeSistema_gs
End
Case 3033 'Identificao ou password Incorreta
MsgBox "Acesso negado. Usurio e senha, do Banco " & Arquivo_ps _
& ", sem permisso.", 16, cNomeSistema_gs
End
Case 3028
MsgBox "Informe o Diretrio de Trabalho do Sistema " _
& cNomeSistema_gs & ", no Gerenciador de Programas.", 16 _
, cNomeSistema_gs
End
Case 3049 'Banco de Dados Corrompido
Call RepararBanco(Path_ps, File_ps)
Resume
Case 3029 'Password Incorreta
MsgBox "Acesso negado. Senha, do Banco " & Arquivo_ps & " ,
invlida."_
, 16, cNomeSistema_gs
End
Case Else
MsgBox Str$(Err) & ": " & Error$(Err), 16, cNomeSistema_gs
End
End Select
End Sub

Pgina 48

CRYSTAL REPORTS CUSTOM CONTROL:


CONSTANTES USADAS NOS SISTEMAS:
Global Const cNomeSistema_gs = "Nome do Sistema"
Global Const cUserName_gs = "UserName"
Global Const cPassword_gs = "Password"
Global AtivadoPeloPrograma_gb As Boolean
Global InicializandoSistema_gb As Boolean
Dim Lendo_mb As Boolean
Dim Alterando_mb As Boolean
Dim Novo_mb
As Boolean
Acompanhando o Visual BASIC 5.0, vem o software Crystal Reports 4.0. um software
extremamente til, possibilitando a rpida criao e impresso de relatrios.
Aps ter criado seu relatrio, insira em seu formulrio um controle do Crystal. Se ele no
estiver em sua caixa de ferramentas, v no menu Project/Components e selecione o controle
do Crystal.
Assim como qualquer controle Visual BASIC, este tem vrias propriedades. Vamos a uma
breve explicao sobre as principais, com exemplos (entre <>) e supondo o nome do seu
controle ser Relatorio1
Action
<Relatorio1.Action = 1> Imprime seu Relatrio
Connect
<Relatorio1.Connect = "DSN = Villalon;UID = Fernando;PWD = LITOTECH">
D o log on em um servidor chamado Villalon, com o username Fernando e a senha
LITOTECH. Utilizado somente em ambientes cliente/servidor, com acesso a bancos de
dados via ODBC
Copies To Printer
<Relatorio1.CopiesToPrinter = 3> Imprime 3 cpias do seu relatrio.
Destination
<Relatorio1.Destination = x> manda o relatrio para um dispositivo especfico. No caso,
x ser 0 para que o relatrio seja enviado para o monitor, 1 para ser enviado impressora e
2 para ser gravado em arquivo.

Pgina 49

Password
<Relatorio1.Password = "Litotech "> Envia a senha Litotech para um
arquivo .MDB PrintFileName
<Relatorio1.PrintFileName = "C:\CONTROLE\CNTR.TXT "> imprime o
relatrio em um arquivo chamado CNTR.TXT
ReportFileName
<Relatorio1.ReportFileName = "C:\CONTROLE\OPEN.RPT "> especifica ao controle que
o relatrio corrente o OPEN.RPT.
UserName
<Relatorio1.UserName =
arquivo .MDB

"Fernando"> envia o username FERNANDO para um

Selection Formula
Muitos programadores por a esto quebrando a cabea tentando colocar SQL nessa
propriedade. ESTA PROPRIEDADE NO ACEITA O CDIGO SQL COM SUA
SINTAXE NORMAL. Essa propriedade tem sua sintaxe prpria, que muito parecida com
SQL. Um exemplo:
Voc quer imprimir o relatrio "PROVAS.RPT" na impressora, listando apenas os alunos
da classe 'F'. Voc tem o relatrio, e seu arquivo .MDB contm uma tabela 'EscolaA', e
dentro desta tabela um campo texto 'Classe'. O Cdigo fica assim:
Relatorio1.ReportFileName = "C:\ESCOLA\PROVAS.RPT"
Relatorio1.SelectionFormula = "{EscolaA.classe}='F'"
Relatorio1.Action = 1
Note alguns detalhes: Para especificar o campo a ser selecionado, escreva entre chaves o
nome da tabela. O nome do campo. Como o campo em questo um campo texto, o valor a
ser selecionado (no caso a string F) aparece entre aspas simples.
Assim como em SQL, voc pode unir vrios critrios de seleo por via da palavra chave
AND. Por exemplo, voc agora que listar apenas os alunos da classe 'F' e que tenham
recebido uma nota maior do que 5:
Relatorio1.ReportFileName = "C:\ESCOLA\PROVAS.RPT"
Relatorio1.SelectionFormula = "{EscolaA.classe}='F' AND {EscolaA.nota}>5"
Relatorio1.Action = 1

Pgina 50

Para se especificar datas, utiliza-se uma das vrias funes de data suportadas pelo Crystal.
vou dar o exemplo de uma, a funo Date, que tem a sintaxe <Date(yyyy,mm,dd)>. Voc
quer imprimir um relatrio de todas as Classes cujas provas tenham sido realizadas entre o
dia 1/04/97 e 31/5/97:
Relatorio1.ReportFileName = "C:\ESCOLA\PROVAS.RPT"
Relatorio1.SelectionFormula = "{EscolaA.DataProva}>=Date(1997,04,01) AND
{EscolaA.DataProva}>=Date(1997,05,31)
Relatorio.Action = 1
Para se programar, no necessrio que voc seja um 'cobra' da informtica, mas
conhecimento sempre ajuda. O importante em um programador sua capacidade de fazer
com que um programa execute suas tarefas escrevendo o menor nmero de linhas de
Cdigo possveis. Isso far com que o computador tenha a necessidade de processar menos
dados, aumentando a velocidade de execuo. Um bom programa deve ser escrito de forma
modular, ou seja, voc deve ter vrias funes ou subs que sejam comuns a vrios
procedimentos. Assim, fica mais fcil identificar erros, realizar manuteno de seu software
e atualizaes. Alm do mais, economiza seu tempo e pacincia, pois voc no ter que
digitar a mesma coisa vrias vezes. Por exemplo, os Cdigos de Selection Formula. Voc
provavelmente ter mais de um relatrio em seu programa. Assim, crie uma sub que defina
a selection formula e imprima seu relatrio, recebendo por referncia os valores necessrios
(nome dos campos, valores, comparadores, etc.).
Infelizmente, no se encontram com facilidade bons livros de Visual BASIC. Em sua
maioria, os livros so timos ao explicar as vantagens do ambiente G.U.I., o uso da
interface, dos grficos, etc. Mas praticamente TODOS so extremamente fracos no quesito
BANCO DE DADOS. Ora, os bancos de dados so os arquivos mais importantes da
maioria dos programas. Em quase todos os livros voc encontrar apenas noes
superficiais sobre o Microsoft Jet Engine e a linguagem SQL.
Um bom livro para quem j programador em outras linguagens o "Microsoft Visual
BASIC 4 - Segredos e Solues", de Gary Cornell e Troy Strain, editado pela Makron
Books. indicado para programadores pois se concentra em familiarizar o programador
com o ambiente Visual BASIC, sem grandes exemplos inteis e lies de lgica, etc.
Infelizmente tambm superficial no quesito banco de dados, mas muito bom em outros
pontos. Fora esse livro, os bons so os editados pela prpria Microsoft, os livros assinados
pela Microsoft Press. Voc pode compr-los em sua livraria local (geralmente a preos
acima de R$ 150,00) ou na amazon.com, a preos bem mais em conta. Detalhe: esses livros
so sempre em ingls.

Pgina 51

VERIFICAR ORTOGRAFIA DE ARQUIVO:


Sub VerificaOrtografiaArquivo(Arquivo_ps)
If Mid$(Arquivo_ps,1,1) = "\" Then
VerificaOrtografiaArquivo = Mid$(Arquivo_ps,2)
Else
VerificaOrtografiaArquivo = Arquivo_ps
End If
End Sub

VERIFICA ORTOGRAFIA DE CAMINHO:


Sub VerificaOrtografiaCaminho(Caminho_ps)
If Mid$(Caminho_ps,Len(Caminho_ps),1) = "\" Then
VerificaOrtografiaArquivo = Caminho_ps
Else
VerificaOrtografiaArquivo = Caminho_ps & "\"
End If
End Sub

Pgina 52

TOCANDO MIDI NO VB:


A edio profissional do VB inclui um OCX, o MCI Multimedia Control, que permite a
execuo de MIDIs, WAVs eCDs de msica, entre outros. Entretanto, para quem no tem a
edio profissional ou prefere no utilizar o OCX, pode utilizar a funo mciSendString da
API do Windows.
Primeiro, crie um Module e, nele declare a funo mciSendString:
Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal
lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength
As Long, ByVal hwndCallback As Long) As Long
Antes de tocar o MIDI preciso abri-lo. Basta usar o mciSendString assim:
mciSendString "open c:\Musicas\Musica.Mid type sequencer alias
apelido", 1, 1, 1
O trecho alias (apelido) pode ser omitido, mas recomendo a sua utilizao. Qualquer
palavra que for colocada no lugar de apelido, poder ser usada quando for feita alguma
referncia a este MIDI. Se voc no usar o alias apelido, dever indicar todo o caminho
(c:\Musicas\....) do arquivo. Nos exemplos a seguir, considerei o uso do alias apelido.
Para tocar o MIDI, use:
mciSendString "play apelido", 1, 1, 1
Saindo do programa sem parar de tocar o MIDI, ele continua tocando.
Para par-lo, use:
mciSendString "stop apelido", 1, 1, 1
Antes de fechar seu programa, voc ainda deve fechar o MIDI:
mciSendString "close apelido", 1, 1, 1
O ideal colocar este ltimo comando, o close, no Evento Form_Unload. Assim,
quando o Form fechado, o MIDI pra de tocar e fechado.

Pgina 53

ASSOCIAR UM CONE AO PONTEIRO DO MOUSE AO PASSAR


SOBRE UM CONTROLE:
-

Selecionar o controle;
Alterar a propriedade MousePointer do controle;
Alterar a propriedade MouseIcon para o cone desejado.

REGISTRAR OCX:
Na subpasta \tools\constrol do CD de instalao do VB5 existem controles extras (como
o caso do Sheridan e outros, inclusive os arquivos de Help desses controles e um arquivo
texto contendo instrues de como registrar estas OCX.
Supondo que desejamos registrar o controle Sheridan 3D Contrlos:
- Devemos copiar o arquivo threed32.ocx da referida pasta do CD para a pasta system;
- Devemos executar: c:\windows\system\regsvr32.exe threed32.ocx;
- Dar um duplo clique no arquivo com extenso reg da referida pasta do CD e pronto.

NOMES DE ALGUNS CONTROLES IMPORTANTES DO VB5:


Controle de ABAS: Mocrosoft Tabbled Dialog Control 5.0
Dilogo Comum: Microsoft Common Dialog Control 5.0
ToolBar, StatusBar e outros: Microsoft Windows Common Control 5.0

Pgina 54

AGRADECIMENTOS
Gostaria de deixar registrado aqui o meu agradecimento a vrios programadores de
Visual Basic espalhados pelo Brasil afora, em especial a Leonardo Mota Barros
(http://www.geocities.com/Area51/1380/), pelo fato de terem contribuido para a elaborao
desta apostila. Quando eu estava elaborando visitei o Cade (www.cade.com.br) e fiz uma
consulta sobre Visual Basic, encontrando quase 200 endereos. Vrios com dicas, arquivos
teis, projetos e alguns com apostilas ou captulos de apostilas (como foi o caso do
Leonardo).

Aqui vo alguns endereos quentes da INTERNET sobre o Visual Basic:


-

ZDNet University (cursos): http://www.zdu.com


Daniel Wimans Visual Basic homepage: http://www.oden.se/~daniel/vb/
Exotech Informtica - Frum Visual Basic: http://www.exotech.com.br/vbasic/
Marcio's Visual Basic : http://www.terravista.pt/copacabana/1102/
Informtica Exame Online - Forum Visual Basic:
http://www2.uol.com.br/info/forum/vbasic.html
Frum Access (foruns de Access e VB): http://www.forumaccess.com/
Visual Basil On Line: http://www.vbonline.com/
Microsoft: http://microsoft.com/vbasic

Pgina 55

BIBLIOGRAFIA
1) TTULO: VISUAL BASIC 5 APLICAES COMERCIAIS
AUTOR: ALCINDO ALVES DOS REIS FILHO
EDITORA: BRASPORT
2) TTULO: VISUAL BASIC 4 OBJECTS AND CLASSES SIPER BIBLE
EDITORA: WAITE GROUP PRESS
3) TTULO: VISUAL BASIC 5 EM 21 DIAS
EDITORA: CAMPUS
4) TTULO: USANDO O VISUAL BASIC 5
EDITORA: CAMPUS/QUE
Fortaleza, primeiro semestre de 1998.

Pgina 56