Você está na página 1de 83

Controlando a Porta Paralela

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

Apostila de PM Programao para Manufatura


Contedo
* Comunicao atravs da porta paralela
COMUNICAO VIA PORTA PARALELA DO PC INTRODUO Nosso objetivo principal a comunicao de um PC com um dispositivo de hardware que permita o controle de sistemas externos por um software especfico feito pelo aluno, nas nossas aulas trabalharemos com a porta paralela do PC, conhecida como a porta da impressora (LPT), na qual pode ser utilizada como sada ou entrada. Inicialmente vamos concentrar nossos estudos para a sada de dados. A porta paralela conhecida tambm como porta Centronics utilizada no interfaceamento entre o computador e um hardware especfico (perifrico). Atualmente vrios dispositivos utilizam-se dela, tais como: Zip Drivers; Scanners; Cmeras e outros; A Porta paralela baseada na tecnologia TTL, isto , trabalha com 0V ou 5V que significam respectivamente, nvel baixo e nvel alto, ou ainda desligado e ligado. ENDEREAMENTO DA PORTA PARALELA Para comearmos o trabalho, primeiramente deve-se saber onde est porta, o computador as nomeia de LPT1, LPT2, LPT3 etc., mas a porta fsica default (padro) a LPT1 e seus endereos so 378H, 379H e 37AH. O H faz referncia ao sistema hexadecimal de numerao.

Endereo 378H 379H 37AH

Descrio
Envia um byte de dados para a porta. Utilizado para receber um byte atravs da porta. Utilizada para enviar dados.

DESCRIO DA PINAGEM DA PORTA CONFORME O ENDEREO Endereos 278H e 378H D7 Pino 9 D6 Pino 8 D5 Pino 7 D4 Pino 6 D3 Pino 5 D2 Pino 4 D1 Pino 3 D0 Pino2 Legenda: NC: No conectado; D0..D7: Dado 1.. Dado 7; Endereos 279H e 379H D7 Pino 11 D6 Pino 10 D5 Pino 12 D4 Pino 13 D3 Pino 15 D2 NC D1 NC D0 NC Endereos 27AH e 37AH D7 NC D6 NC D5 NC D4 NC D3 Pino 17 D2 Pino 16 D1 Pino 14 D0 Pino 1

CONECTOR DB25

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

Macho

Fmea

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

Cabo Paralelo, pronto para ser ligado no gabinete

DESCRIO DA FUNO DE CADA PINO DO CONECTOR DB25 Conector Macho Conector Fmea

Pino 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Sinal Strobe Dado 00 Dado 01 Dado 02 Dado 03 Dado 04 Dado 05 Dado 06 Dado 07 Ack Busy Pe --Auto Feed XT out ------GND GND GND GND GND GND GND GND

Direo Out Out Out Out Out Out Out Out Out In In In --Out -----------------------

Descrio Sinal de Controle Bit de dado 00 Bit de dado 01 Bit de dado 02 Bit de dado 03 Bit de dado 04 Bit de dado 06 Bit de dado 07 Bit de dado 08 Sinal de Controle Sinal de Controle Sinal de Controle --Sinal de Controle ------Sinal de terra Sinal de terra Sinal de terra Sinal de terra Sinal de terra Sinal de terra Sinal de terra Sinal de terra

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

No h necessidade do uso de todos os pinos, pode-se utilizar apenas pinos 2 a 9 (Vcc = 5V) e os pinos 18 a 25 (GND). Um detalhe muito importante, tomar muito cuidado com a corrente (I) na porta paralela, aconselhvel a utilizao de Buffers que sero responsveis tanto pela isolao quanto a amplificao do sinal. Mesmo sabendo-se que a porta paralela do computador trabalha sob a tecnologia TTL, no se pode simplesmente ligar CIs TTL na sua sada, pois seu computador pode utilizar tanto a tecnologia TTL LS (Low Power Schottky) ou TTL HC (High Speed CMOS), que no possuem corrente suficiente para excitar os CIs TTL, no caso do meu computador porta paralela apresentou uma corrente de sada em torno de 14mA uma corrente de valor baixo, porm este fato no deve ser encarado como um problema, j que podemos contar com alguns artifcios eletrnicos, tais como: Acopladores pticos; Rels; Buffers (a literatura especializada recomenda o CI 74LS514); SEQNCIAL DE LEDS Um circuito muito simples para testar a porta paralela do PC um circuito chamado de seqencial de leds que apresentado a seguir.

Lista de Componentes: 8 leds de 5mm; 3 vermelhos; 3 verdes; e 2 amarelos 8 resistores de 220 (vermelho, vermelho, marrom); 1 placa de circuito impresso (10x5cm) de 1 face; 1 conector DB25 macho, fios; 1 Conector tipo borneira de 9 vias. O circuito funciona da seguinte maneira: - Em cada uma das 8 sadas (Pinos 2 a 9) ligado um led em srie com um resistor de 220, sendo que cada led ligado no pino que possui o sinal de terra (GND pinos 18 a 25) do DB25. Deve-se tomar muito cuidado com a polaridade dos leds, pois os mesmo so da mesma categoria dos
Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

diodos, isto , possuem polaridade especfica e a corrente (I) flui em apenas um sentido. No incio mandado um sinal para a porta, com se fora um nmero binrio e esse nmero corresponde a um byte (8 bits), sendo assim cada led representa um bit, e agir como tal. Por exemplo, se mandarmos o nmero 41 em decimal que em binrio corresponde a 00101001, teramos acesos os leds 1,4 e 6, porque so os que correspondem aos uns, ou seja, esto em nvel lgico alto, ou ainda esto injetando corrente no circuito. A seguir apresenta um possvel diagrama para confeco da placa de circuito impresso.

Os pinos de 2 a 9 do DB25 so conectados na placa onde esta o sinal de +. Os pinos de 18 a 25 so conectados onde tem o sinal de -. No entanto para que o circuito entre em operao, necessria uma linguagem de programao, que ser responsvel pelo acionamento do circuito, ao longo do nosso curso ns utilizaremos o Visual Basic, pois um compilador de simples entendimento e rpida aprendizagem para os recursos que ns utilizaremos!

O que o Visual Basic?


O Visual Basic um compilador do tipo QuickBasic para criao de aplicativos para Windows, ele na realidade, uma aplicao do prprio Windows. dessa forma que os programas em Visual Basic podem ser criados, rodados, depurados e compilados diretamente no Windows. O Visual Basic possibilita aos usurios a programao baseada em eventos e objetos. Isto quer dizer que o programador coloca na janela todas as opes (menus, botes, cones, controles, etc...) para que o usurio selecione uma delas com o mouse ou com o teclado. Antes do Visual Basic uma aplicao 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 boto, estamos gerando um evento dentro do Windows o qual far com que um determinado pedao de cdigo seja executado. Podemos, tambm, colocar da seguinte maneira: um determinado pedao de cdigo foi executado em decorrncia de um evento gerado com o clique do mouse. Se o tal boto nunca for apertado aquele cdigo poder jamais ser executado. Programadores de linguagens voltadas para DOS, esto acostumados a escrever cdigos que so executados de maneira sequencial, ou seja, o programa orientado por sequncia, isto quer dizer que as linhas de cdigo so executadas uma aps a outra durante todo o programa. Enquanto o programa no chega ltima linha de cdigo ele no para a no ser que o usurio intervenha finalizando o programa antes que ele termine. No Windows diferente. No existe um corpo de programa com incio, meio e fim. O programa orientado por eventos. Normalmente, um programa para Windows apresenta vrias opes possveis na tela para que o usurio 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 responsvel pelo fluxo do programa o usurio e no mais o programador. Devemos ter isso em mente quando estivermos projetando um aplicativo. Na programao orientada por sequncia, normalmente o usurio entra com os dados na sequncia determinada pelo programador. O Visual Basic permite que o usurio entre com os dados na ordem que preferir.

Linguagem Baseada em Objetos


Outra caracterstica importante do Visual Basic a de ser uma linguagem baseada em objetos. As linguagens como o C++ e o Pascal, por exemplo, tambm baseadas em objetos, possuem classe e herana. No Visual Basic, os objetos so pr-definidos, isto , j existe uma coleo de objetos que acompanham o software.
Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

Para criar novos objetos, o programador dever utilizar a opo User Control como sendo o tipo de projeto a ser realizado. Os novos objetos s podero ser criados a partir de um outro objeto j existente, portanto basicamente esse novo objeto ter as mesmas caractersticas do objeto que serviu de base. Para criar objetos capazes de realizar funes diferentes dos objetos existentes, voc dever cri-los em linguagem C. Dentro do Visual Basic, os objetos so, por exemplo, menus, janelas, botes, quadros de texto, etc... Melhor especificados no captulo sobre objetos. Cada um dos objetos possui vrias propriedades, mtodos e eventos associados a eles.

Ambiente de Desenvolvimento
O ambiente de programao do Visual Basic composto pelas seguintes janelas: Janela Principal, Caixa de Ferramentas, Janela de Propriedades, Janela de Projeto, Janela de Cdigo e Formulrio. atravs dessas janelas que podemos escolher os objetos que faro parte do nosso programa, configurar suas propriedades conforme a especificao do programa, escolher os eventos que sero utilizados, etc.

Janela Principal

Essa janela a responsvel pelo controle geral do ambiente de programao do Visual Basic e contm uma barra de ferramentas e de menus. O menu Help, fornece informaes sobre todos os objetos e caractersticas do Visual Basic. Est tambm disponvel, atravs da tecla "F1" um Help On-Line, no qual podemos obter informaes detalhadas de um objeto previamente selecionado. Atravs desses recursos, tambm podemos obter informaes sobre a linguagem QuickBasic utilizada no Visual Basic. Com a barra de ferramentas, temos um acesso mais rpido das funes do menu mais utilizadas.

Barra de Ttulo

A barra de ttulo a barra horizontal localizada no topo da tela; ela informa o nome do aplicativo e comum a todos os aplicativos Windows da Microsoft. Interaes entre o usurio e a barra de ttulo so manipuladas pelo Windows e no pelo aplicativo. Tudo o que est abaixo da barra de ttulo e da barra de menu, em um aplicativo Windows, chamado de rea do cliente. Seu aplicativo totalmente responsvel pela aparncia, contedo e resposta dos objetos que voc alojou nessa rea.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

Barra de Objetos
Essa barra est localizada esquerda da tela do Visual Basic, logo abaixo da barra de ferramentas e possui os objetos grficos (botes, caixas de texto, caixa de figura, etc...) disponveis 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 programao aberto e extensvel, ou seja, alm dos controles disponveis no Visual Basic, podemos adquirir outros controles fornecidos por outras empresas ou construir o nosso prprio controle.

Janela de Propriedades
As propriedades definem as caractersticas de cada objeto - controle da aplicao. O conjunto de propriedades depende do controle selecionado. Por exemplo, um formulrio tem propriedades diferentes de uma figura. As propriedades podem ser alteradas em tempo de projeto ou de execuo, sendo que algumas delas somente em tempo de execuo. Para alterar o valor de uma propriedade em tempo de execuo s por meio de programao a ser carregada atravs de um objeto, por exemplo, um boto ou assim que o programa for carregado, j em tempo de projeto, devemos:

1. 2. 3. 4.

Selecionar o controle cuja propriedade deseja alterar; Rolar pela lista de propriedades at encontrar a propriedade desejada; Digitar o novo valor; Pressionar ENTER para confirmar a alterao efetuada.

Janela de Projetos
Essa janela possui uma lista dos arquivos que esto sendo utilizados dentro do programa que estamos desenvolvendo. Podemos ter arquivos com extenses "BAS", "FRM, "VBP" e outros dentro dessa janela. O Visual Basic organiza os trabalhos por projeto, permitindo que cada projeto possa ter vrios mdulos.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

Janela de Cdigo
Essa janela contm a declarao de variveis, constantes e rotinas. Na figura ao lado, podemos ver dois quadros combo, um contendo a lista de objetos dentro do nosso programa e o outro uma lista de eventos disponveis para cada um dos objetos. Podemos observar na figura que o evento selecionado o "Click" e o objeto o formulrio. O comando Beep na linguagem do Visual Basic gera um aviso originrio do alto-falante do PC. Portanto cada vez que o usurio der um clique com o mouse no formulrio o procedimento "Form_Click( )" ser executado e gerar um "beep".

Funes e Sub-Rotinas
As funes (functions) e sub-rotinas (subs) so chamadas de procedimentos (procedures). Existem trs tipos de procedimentos: 1.) do Visual Basic; 2.) associados aos eventos; 3.) criados pelo programador. Os procedimentos do Visual Basic so, por exemplo, os mtodos, as funes matemticas, as funes manipuladoras de "Strings", etc. Os procedimentos associados aos eventos so aqueles procedimentos que so chamados em resposta a um evento. Adicionamos cdigos a eles atravs da Janela de Cdigo do formulrio. Os procedimentos criados pelo programador so aquelas sub-rotinas e funes utilizadas para melhorar a estruturao do cdigo. Podemos ter, por exemplo, uma funo que abre um arquivo. Essa funo trataria os possveis erros e retornaria o nmero do arquivo aberto. Esse procedimento estaria declarado dentro do objeto "General" da Janela de Cdigo de um formulrio ou de um mdulo. Dentro do Visual Basic, a diferena entre uma funo e uma sub-rotina que a funo retorna um valor e a sub-rotina no.

Formulrio

Essa a janela do nosso aplicativo. Quando o usurio iniciar o programa, a mesma aparecer. A janela possui os quadros minimizar, maximizar, fechar e menu de controle. nessa janela que colocaremos os controles grficos (botes, quadros de texto, etc.) e tambm o cdigo associado a esses objetos. Para abrir uma janela de cdigo, basta dar um duplo clique em cima do objeto do qual um evento deve ser tratado.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

Agora vamos colocar em pratica!

Visual Basic Comunicao Porta paralela


Como uma linguagem de alto nvel, o Visual Basic no oferece recursos para acesso direto ao hardware. Desta forma, para acessar, por exemplo, a porta paralela ou serial devemos possuir um componente externo, o qual atuar como interface entre nosso programa e o hardware. Componentes para acesso direto ao hardware devem ser desenvolvidos atravs de linguagens que permitem instrues de baixo nvel (como Assembly ou C). Porm, para acesso porta paralela, temos disposio na Internet uma srie de DLLs gratuitas. No nosso curso estamos utilizando a "inpout32.DLL" uma DLL gratuita que permite a entrada (input) e sada (output) de dados atravs da porta serial RS232. Essa DLL deve residir na pasta do projeto ou na pasta c:\windows\system32. O uso da "inpout32.DLL" bastante simples! Basta introduzirmos as seguintes declaraes em um mdulo do projeto: Public Declare Function Inp Lib "inpout32.dll" _ Alias "Inp32" (ByVal PortAddress As Integer) As Integer Public Declare Sub Out Lib "inpout32.dll" _ Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

Esta instruo faz a declarao da funo Inp, que na realidade se encontra na biblioteca inpout32.dll sob o nome Inp32. Observe que o underline (_) indica apenas que o comando continua na linha de baixo. A mesma instruo pode ser escrita em uma nica linha, conforme mostrado abaixo:

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

Esta segunda instruo faz a declarao da funo Out, que se encontra na biblioteca inpout32.dll sob o nome Out32. Aqui tambm o underline (_) indica que o comando continua na linha de baixo. A mesma instruo pode ser escrita em uma nica linha, conforme abaixo:
Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

10

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

11

Vamos elaborar um projeto VB para praticar:


Para colocar em prtica as funes estudadas (Inp e Out), inicie um projeto em VB e, primeiramente, adicione um mdulo atravs do menu Project/Add Module. Insira, dentro do mdulo, as declaraes das funes Inp e Out, conforme figura abaixo:

Aps isso, siga os seguintes passos orientados pelo professor: 1 Adicionar um total de 8 Command Buttons e distribu-los no formulrio de forma organizada e simtrica, cada boto deve conter em sua propriedade caption o valor correspondente a um nmero, de acordo com sua propriedade name, por exemplo: (name): Command1 (Caption): 1, (name): Command2 (Caption): 2, (name): Command3 (Caption) 3, e assim sucessivamente at o oitavo boto. 2 Crie mais dois botes, agora um com o (Caption): Apagar (name): cmdapagar, e outro com o (Caption): Sair (name): cmdsair 3 Insira acima dos botes uma Label, que vai ter sua propriedade (caption) vazia, modifique a propriedade Border Style para opo 1-Fixed Single e vamos modificar o tamanho da fonte tambm, na propriedade (fonte) clique nos trs pontinhos e altere o tamanho da fonte para 24 coloque em negrito.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

12

Agora que terminamos a construo da interface grfica, vamos para parte da programao. Como nosso primeiro projeto, vamos fazer juntos desde o incio, para que o formulrio fique centralizado na tela do Windows, basta dar dois cliques no formulrio e colocar a seguinte linha de comando no evento Load, que quer dizer, ao carregar: Private Sub Form_Load ( ) Top = (Screen.Height - Height) / 2 Left = (Screen.Width - Width) / 2 End Sub Vamos ao funcionamento do nosso programa: Quando um daqueles oito botes for pressionado, ira acender o led correspondente ao seu numero, e ira aparecer na Label seguinte frase: O led n? est aceso. O boto apaga, apaga todos os leds acesos, e o boto sair, sai do programa. Formulrio pronto com todos os botes e a label.

Cdigo fonte do programa acima: Private Sub cmdapagar_Click() 'linha de cdigo do boto apagar (evento Click) Out &H378, "&h" & 0 'envia para o endereo H378(porta paralela) 'o valor zero, que apaga todos os led's Label1.Caption = "" 'muda o valor da propriedade caption do objeto label1 'para vazio End Sub fim da linha de comando Private Sub cmdsair_Click() 'linha de cdigo do boto sair (evento Click) End 'comando simples para encerrar o programa End Sub fim da linha de comando Private Sub Command1_Click() 'linha de cdigo do boto 1 (evento Click) Out &H378, "&h" & 1 'envia para o endereo H378(porta paralela) 'o valor 1 que acende o primeiro led Label1.Caption = "O led n1 est aceso" 'muda o valor da propriedade 'caption do label1 para o texto entre aspas End Sub fim da linha de comando

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

13

Private Sub Command2_Click() Out &H378, "&h" & 2 Label1.Caption = "O led n2 est aceso" End Sub Private Sub Command3_Click() Out &H378, "&h" & 4 Label1.Caption = "O led n3 est aceso" End Sub Private Sub Command4_Click() Out &H378, "&h" & 8 Label1.Caption = "O led n4 est aceso" End Sub Private Sub Command5_Click() Out &H378, "&h" & 10 Label1.Caption = "O led n5 est aceso" End Sub Private Sub Command6_Click() Out &H378, "&h" & 20 Label1.Caption = "O led n6 est aceso" End Sub Private Sub Command7_Click() Out &H378, "&h" & 40 Label1.Caption = "O led n7 est aceso" End Sub Private Sub Command8_Click() Out &H378, "&h" & 80 Label1.Caption = "O led n8 est aceso" End Sub Private Sub Form_Click() Beep End Sub Private Sub Form_Load() 'linha de cdigo do formulrio (evento Click) 'comando que reproduz um som nos auto falantes. fim da linha de comando 'linha de comando do formulrio (evento Load) = ao carregar 'comandos que mandam o formulrio para o 'Centro do monitor ao carregar.

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

fim da linha de comando

Observao: As informaes que seguem, sero usadas apenas para possveis consultas, pois para
satisfazer as necessidades das nossas aulas, o contedo descrito at aqui basta, as informaes complementares sero passadas durante as aulas.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

14

Menus
Menu File
Voc precisar do menu principal File para trabalhar com os arquivos que compem seu projeto. Esse menu inclui comandos para salvar, abrir e imprimir arquivos. O menu File tambm permite que voc saia do Visual Basic atravs de um item para isso, a outra maneira utilizando as teclas de combinao do Windows ALT + F4 quando estiver posicionado na barra de menu principal. Como em qualquer aplicativo Windows, voc tambm 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 prprio aplicativo. Abaixo segue um breve resumo sobre os itens para orient-lo melhor:

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

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

15

Menu Project
O menu Project contm itens que possibilitam a insero de vrios procedimentos, janelas, cdigos, mdulos, etc. em seus projetos. Abaixo segue um breve resumo sobre os itens para orient-lo melhor:

Menu Format

Menu Debug

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

16

Menu Run

Menu Tools

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

Menu Window

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

17

Menu Help

Barra de Ferramentas

Janelas
Janela de Projetos

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

18

Esta janela contm informaes sobre o projeto em uso. nela que sero exibidos todos os projetos utilizados ao mesmo tempo, caso existam, ou o nico projeto aberto. Abaixo do projeto, estaro definidos os nomes dos formulrios em uso no projeto. Voc notar que existem dois nomes independentemente do que estiver sendo exibido nesta janela. O primeiro nome o nome lgico (nome dado ao objeto) e o segundo nome o nome fsico (nome dado ao arquivo), este estar sendo exibido sempre entre parnteses. Ainda nesta janela atravs dos cones, temos a possibilidade de ir at a janela de cdigo, (janela em que se programa as atividades para os objetos), voltar para o modo de exibio do formulrio e tambm exibir os formulrios em formato de pastas de um projeto.

Janela de Propriedades

nesta janela que o programador altera as caractersticas originais dos objetos utilizados no(s) formulrio(s) do programa. Quando se cria um objeto dentro do formulrio, devemos selecion-lo clicando apenas uma vez nele mesmo no formulrio e depois clicar na janela de propriedades, onde sero isoladas apenas as propriedades do objeto selecionado. Ento o programador ir alterar algumas das propriedades adequando assim o objeto a ficar com as caractersticas e aparncia desejada. Esta mesma janela, possui uma caixa combo situada ao topo. Esta caixa contm o nome de todos os objetos utilizados no formulrio em desenvolvimento. Esta a outra forma do programador localizar e selecionar o objeto para trabalhar com suas propriedades sem ter que selecion-lo no formulrio. Obs: As propriedades dos objetos tambm podem ser alteradas atravs de programao na janela de cdigo, para que os objetos sofram as alteraes no decorrer do programa, devido aos eventos em que foram programados.

Janela de Posicionamento do Formulrio

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

19

atravs desta janela que o programador posiciona o local em que o formulrio aparecer assim que o programa for executado. Outra maneira de fazer isto, acessando a propriedade do formulrio Startup Position e escolher a opo Center Screen, mas no ser possvel acessar esta propriedade, caso esteja sendo usado um formulrio do tipo MDI. Ento o posicionamento dever ser feito atravs de programao ou por esta janela. Como centralizar um formulrio atravs de programao: 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, esto descritos nos sub-tens deste captulo, so eles:

Comandos MsgBox (Caixa de Mensagem) InputBox (Caixa de Entrada) If...End If (Se...Fim) Unload me - End (Encerrar)

Objetivo Emitir um aviso ao usurio Pedir informao ao usurio Fazer Perguntas ou Validaes Fechar um Formulrio ou Software

Comentrios
Comentrios so utilizados, como lembretes de informao junto programao e so muito importantes porque podero auxiliar na documentao do software.

Vamos detalhar os principais comandos:

MsgBox
Descrio
Exibe uma mensagem em uma caixa de dilogo, esperando pelo usurio clicar um boto, e retorna um valor indicando que o usurio clicou o boto.

Sintaxe
MsgBox (prompt [, buttons][, title][, helpfile, context]) A sintaxe do comando MsgBox tem estes argumentos:

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

20

Partes Prompt

Descrio
Expresso texto exibida como a mensagem em uma caixa de dilogo. A quantidade mxima de caracteres que podero ser utilizados em uma mensagem de aproximadamente 1024 caracteres, dependendo da largura ocupada pelos caracteres usados. Se a mensagem consiste em mais do que uma linha, voc pode separar as linhas usando um caracter de retorno (Chr(13)), alimentando linha com um ENTER, caracter (Chr(10)), alimentando linha com a quebra da mesma, ou ainda usar uma combinao (Chr(13) & Chr(10)) entre cada linha. Expresso numrica que representa a soma dos valores, especificando o nmero e o tipo de botes para exibir, o estilo da cone para usar, a identidade do boto padro, e a modalidade da caixa de mensagem. Veja as opes na seo para valores. Se omitidos, o valor padro para botes 0. Expresso de texto exibida na barra de ttulo da caixa de dilogo. Se voc omitir o ttulo, o nome da aplicao entra no lugar da barra de ttulo.

Buttons

Title Helpfile Context

No suportada. No suportada.

As opes de argumentos do boto so: Constantes vbOKOnly vbOKCancel vbAbortRetryIgnore vbYesNoCancel vbYesNo vbRetryCancel vbCritical vbQuestion vbExclamation vbInformation vbDefaultButton1 vbDefaultButton2 vbDefaultButton3 vbDefaultButton4 vbApplicationModal vbSystemModal Valor 0 1 2 3 4 5 16 32 48 64 0 256 512 768 0 4096 Descrio
Exibe somente o boto de ok. Exibe os botes de ok e cancelar. Exibe os botes abortar, repetir e ignorar. Exibe os botes sim, no e cancelar. Exibe os botes de sim e no. Exibe os botes repetir e cancelar. Exibe a cone de mensagem de parada crtica. Exibe a cone de questo. Exibe a cone de mensagem de alerta. Exibe a cone de mensagem informativa. O primeiro boto padro. O segundo boto padro. O terceiro boto padro. O quarto boto padro. Modalidade da Aplicao; o usurio dever responder a mensagem da caixa antes de continuar trabalhando na aplicao em utilizao. Modalidade do Sistema; todas as aplicaes so suspendidas at que o usurio responda a caixa de mensagem.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

21

O primeiro grupo de valores(05) descreve o nmero e o tipo de botes exibidos na caixa de dilogo; o segundo grupo (16, 32, 48, 64) descreve o estilo da cone; o terceiro grupo (0, 256, 512, 768) determina qual boto o padro; e o quarto grupo (0, 4096) determina a modalidade da caixa de mensagem. Quando estiver adicionando nmeros para criar um valor final para os argumentos dos botes, use somente um nmero de cada grupo.

Retorno de Valores
A caixa de mensagem segue os valores retornados abaixo:

Constantes Valor vbOK vbCancel vbAbort vbRetry vbIgnore vbYes vbNo 1 2 3 4 5 6 7

Botes OK Cancelar Abortar Repetir Ignorar Sim No

Obs: Se a caixa de dilogo exibe um boto de cancelar, pressionando a tecla ESC obtem-se o mesmo efeito como ter clicado o boto de cancelar.

InputBox
Descrio
Exibe um prompt em uma Caixa de Dilogo, esperando que o usurio entre com um texto ou clique um boto, e retorna o contedo de um TextBox.

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

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

22

A sintaxe do InputBox possui estes argumentos:

Partes Prompt

Descrio
exibida uma mensagem em formato texto em uma caixa de dilogo. O tamanho mximo da mensagem aproximadamente 1024 caracteres, dependendo da largura dos caracteres usados. Se a mensagem consiste de mais do que uma linha, voc pode separar as linhas usando um caracter de retorno (Chr(13)), alimentando linha com um ENTER, caracter (Chr(10)), alimentando linha com a quebra da mesma, ou ainda usar uma combinao (Chr(13) & Chr(10)) entre cada linha. Expresso de texto exibida na barra de ttulo da caixa de dilogo. Se voc omitir o ttulo, o nome da aplicao entra no lugar da barra de ttulo. Expresso de texto exibida na caixa de texto como a resposta padro se outra entrada no providenciada. Se voc omitir default, a caixa de texto exibida vazia. Expresso numrica que especifica, em pixels, a distncia horizontal da margem esquerda da caixa de dilogo da margem esquerda da tela. Se xpos omitida, a caixa de dilogo centralizada horizontalmente. Expresso numrica que especifica, em pixels, a distncia vertical da margem superior da caixa de dilogo do topo da tela. Se ypos omitida, a caixa de dilogo posicionada verticalmente aproximadamente em 1/3 da altura da tela.

Title Default xpos

ypos

Helpfile Context

No suportada. No suportada.

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

IF ... ENDIF
Condicionalmente executa uma seleo de comandos baseados no valor de uma expresso lgica. Sintaxe IF Expresso [THEN] Comandos [ELSE Comandos] ENDIF Argumentos Expresso
Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

23

Especifica a expresso lgica que recebe valor. Se a Expresso recebe valor verdadeiro (.T.), qualquer comando seguido do IF ou THEN e precedendo ELSE ou ENDIF (que sempre ocorrero primeiro) so executados.

Se a Expresso falsa (.F.) e o ELSE includo, qualquer comando depois do ELSE e antes do ENDIF executado. Se a Expresso falsa (.F.) e o ELSE no includo, todos os comandos entre o IF e o ENDIF so ignorados. Neste caso, a execuo 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 comentrios precedidos por && podem estar especificados em alguma linha depois de IF, THEN, ELSE, and ENDIF. Estes comentrios so ignorados durante a compilao e execuo do programa.

Unload - End
Unload
O comando Unload utilizado para fechar formulrios que integram um projeto. Pode ser usado de duas formas: Sintaxe:

Unload Me; Unload Form1.

Quando escrevemos Me, estamos nos referindo ao formulrio atual em uso. Isto feito para substituir o nome do formulrio, quando o nome fornecido a ele na propriedade name muito grande. J no segundo caso, utilizamos o nome de um Formulrio. Portanto, mesmo estando em um determinado formulrio, ao clicarmos em um boto, por exemplo, podemos estar fechando um outro formulrio, basta apenas escrever Unload e fornecer o nome do formulrio 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, sero:

Se estivermos diretamente no formulrio 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 encontrase em um item de menu descrito como Sair ou Fechar, em um boto, ou diretamente na programao, fazendo com que o sistema encerre-se propositalmente aps algumas interaes do usurio.

Comentrios
Comentrios so acrescidos ao programa para explicar o que um cdigo faz. muito simples perguntar-se por que os comentrios so importantes - at que voc tente modificar ou consertar um programa que algum escreveu ou mesmo que voc escreveu meses atrs. Os comentrios no so executados nem processados pelo Visual Basic. Eles no ocupam nenhum espao nos cdigos compilados. Existem duas formas de indicar um comentrio. A forma usual indicar um comentrio com aspas simples. Veja o exemplo abaixo:

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

24

Private Sub Command1_Click ( ) ' Um comentrio descrevendo o procedimento que viria aqui ' Toda linha de comentrio ficar na cor verde End Sub Obs: Voc pode utilizar a velha palavra-chave Rem. Voc poder tambm acrescentar comentrios no final das linhas. Nesse caso mais prtico utilizar aspas simples, porque a forma Rem requer dois-pontos antes dele.

Objetos A Terminologia do Visual Basic


Propriedade, Mtodo e Evento O Visual Basic composto de formulrios e controles genericamente chamados de objetos. Cada um dos objetos possui vrias propriedades listadas na Janela de Propriedades. As propriedades dos objetos nos permitem saber e modificar as caractersticas 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 posio, so propriedades associadas aos quadros de texto, "Labels" (legendas) e botes de controle, opo e de seleo. Ao selecionarmos um determinado objeto, dando um clique com o mouse sobre ele, a Janela de Propriedades automaticamente listar as propriedades disponveis para aquele objeto e ento poderemos modific-las. Cada objeto reconhece as seguintes aes, tais como um clique do mouse, abertura de formulrio, digitao em um quadro de texto, etc. Essas aes so chamadas de eventos. Para uma aplicao responder s aes do usurio e aos eventos do sistema, so utilizados os procedimentos associados a cada evento. Por exemplo, um boto de controle reconhece os seguintes eventos:

Eventos Click

Aes Um boto acionado com o mouse ou com o teclado.

DragDrop Um controle solto em cima do boto. DragOver Um controle est sendo arrastado sobre o boto. GotFocus O boto recebe a ateno do sistema, ou seja, qualquer ao do usurio atravs do mouse ou
teclado ser recebida pelo boto.

KeyDown Uma tecla pressionada enquanto o boto tem a ateno do sistema. KeyPress Uma tecla pressionada e um valor AscII retornado. LostFocus O boto perde a ateno do sistema para outro objeto.
Quando um evento ocorre em uma aplicao, o sistema automaticamente reconhece o evento e executa o cdigo associado a esse evento escrito pelo programador. Esse cdigo chamado de procedimento do evento ("Event Procedure"). Esse procedimento aparece na Janela de Cdigo. O nome do procedimento associado ao evento composto pelo nome do objeto e pelo nome do evento. O nome do objeto para todos os formulrios "Form" e para os controles o que aparece na propriedade "Name" do
Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

25

controle. Devemos escrever cdigo somente para os eventos que sero utilizados em nossa aplicao. O mtodo um procedimento ("Function ou Sub") que atua nos objetos. Por exemplo, um quadro de lista um controle que possui os seguintes mtodos:

Mtodos AddItem Clear Move Refresh SetFocus

Aes
Adicionar um novo item no quadro de lista durante o tempo de execuo, ou seja, quando o programa est sendo executado.

Limpar o contedo do quadro de lista.


Movimentar o quadro de lista para uma nova posio no formulrio.

Forar uma atualizao imediata ao quadro de lista.


Fazer com que o sistema transfira sua ateno para o quadro de lista.

RemoveItem Remover um item do quadro de lista.

Formulrios
Os formulrios so utilizados como interface com o usurio dentro de uma aplicao. Cada formulrio uma janela que pode conter controles grficos e outros formulrios. Podemos utilizar os formulrios como uma tela de ilustrao, um quadro de dilogo ou como um formulrio que contm outro. Podemos modificar o tamanho e localizao na tela do formulrio, clicando e arrastando o mouse na borda e na barra de ttulo desse formulrio, respectivamente. Alm dos controles, os formulrios podem conter cdigo e variveis. Na verdade, cada formulrio possui a prpria janela de cdigo. Dentro do objeto "General" da janela de cdigo, podemos declarar variveis, constantes e procedimentos criados por ns. Na janela de projeto, os arquivos com extenso " .FRM" contm, cada um, um formulrio, os controles contidos nele, uma lista das propriedades do formulrio e dos controles, as variveis e constantes utilizadas e o cdigo associado. Um projeto pode conter vrios formulrios e podemos adicionar um novo formulrio selecionando o item "Add Form" dentro do menu "Project". Podemos ter ainda outro tipo de formulrio: o do tipo "MDI" (Multiple Document Interface). Esse tipo de formulrio pode conter outros formulrios dentro dele. Cada projeto pode conter apenas um formulrio do tipo "MDI". Os formulrios que esto dentro do formulrio "MDI" possuem a propriedade "MDIChild" como "True" e so chamados de formulrios Filho. Adicionamos um formulrio "MDI" ao projeto selecionando o item "Add MDI Form" dentro do menu "Project".

Controles
So ferramentas utilizadas nos formulrios para receber e mostrar informaes. Os quadros de texto, botes, rtulos, quadros de figuras, etc., so exemplos de controles. Os controles disponveis em um projeto so mostrados na Caixa de Ferramentas ("ToolBox") e possuem a extenso 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 diretrio "WINDOWS\SYSTEM", mas voc pode import-los de outros diretrios normalmente. Podemos inserir um controle no formulrio de trabalho de duas maneiras: 1. Dando um duplo clique com o mouse no controle localizado na caixa de ferramentas;
Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

26

2. Selecionar o controle na Caixa de Ferramentas. Dar um clique com o boto do mouse na posio desejada do formulrio (ponto inicial) e arrastar at conseguir o tamanho desejado, soltando em seguida o boto (ponto final). Para os controles j localizados no formulrio, podemos modificar o seu tamanho da seguinte maneira: 1. 2. 3. 4. Selecionar o controle do formulrio dando um clique com o mouse; Apertar o boto da esquerda do mouse sobre um dos quadrados localizados na borda do controle; Arrastar o mouse at o tamanho desejado; Soltar o boto.

Podemos mudar a posio dos controles localizados no formulrio da seguinte maneira: 1. Posicionar o apontador do mouse no meio do controle; 2. Apertar o boto da esquerda do mouse e arrastar at a posio desejada;

3. Soltar o boto.
Para modificar a propriedade dos controles, devemos: 1. Selecionar o controle; 2. Selecionar a propriedade desejada da Janela de Propriedades;

3. Modificar a propriedade. Mdulos


So arquivos de extenso " .BAS" que contm declaraes (variveis e constantes) e procedimentos (funes e sub-rotinas). Podemos criar um mdulo selecionando o item "Module" dentro do menu "Project". O Visual Basic mostra uma janela de cdigo com o ttulo "Module". Podemos tambm ver, na janela de projeto, o arquivo criado. aconselhvel trocarmos o nome padro dado pelo Visual Basic, pois os arquivos .BAS" so uma maneira de reaproveitarmos as mesmas funes e sub-rotinas para vrias aplicaes. Selecionando o item "Save File As..." dentro do menu "File", podemos fazer essa alterao.

Projeto
um arquivo " .VBP" que contm a lista dos formulrios, mdulos e controles que compem uma aplicao. Repetindo, a Janela de Projeto lista todos os arquivos da aplicao. Cada projeto contm pelo menos um formulrio. Podemos inserir quantos formulrios 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 padro de "Project1.vbp" aconselhvel modificarmos esse nome, selecionando o item "Save Project As..." dentro do menu "File".

Etapas de Desenvolvimento de um Projeto


H trs etapas para a criao de um aplicativo em Visual Basic. 1. Criar a interface com o usurio; 2. Configurar as propriedades dos objetos;

3. Escrever o cdigo.
Para criarmos a interface com o usurio, podemos seguir os seguintes passos: 1. Abrir um novo projeto;
Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

27

2. 3. 4. 5. 6.

Salvar o projeto e o formulrio criado com os nomes desejados; Modificar o tamanho do formulrio, adequando-o aos requisitos do programa. Adicionar os controles necessrios (botes, quadros de texto, etc.); Adicionar mais formulrios e controles; Salvar esses formulrios 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 atravs de sua propriedade "Name". aconselhvel, para uma boa documentao, incluirmos no nome do objeto o seu tipo tambm. Por exemplo, podemos dar o nome "frmprincipal" para a janela (formulrio) que iniciar a aplicao. No item "Properties..." do menu "Project", podemos ver e alterar o formulrio que inicia o aplicativo. Na terceira etapa, adicionamos o cdigo, ou seja, projetamos como o programa responder aos diferentes eventos (cliques, duplo clique, teclas adicionadas, interrupo causada pelo temporizador, redimensionamento de uma janela, etc.). Devemos lembrar que essas trs etapas no dispensam um projeto de software detalhado, isto , como o programa dever funcionar, como ser o fluxo de dados dentro do programa, os algortmos utilizados, a interface com o usurio, etc.

Propriedades e Eventos mais Utilizados Propriedades comuns a todos os objetos: Propriedades BackColor Enabled Font ForeColor Height Left Aes Determinar a cor de fundo de um objeto.
Determinar se o formulrio ou controle podem responder aos eventos gerados pelo usurio. Determinar a fonte, o estilo e tamanho a ser usada para mostrar um texto em um controle; usada tambm em tempo de execuo para desenhar e imprimir.

Determinar a cor do texto impresso.


Determinar a dimenso vertical externa de um objeto.

Determinar a distncia entre a borda esquerda de um objeto e a borda esquerda do objeto que a contm. MousePointer Determinar o tipo do ponteiro do mouse mostrado quando ele est sobre uma parte especfica de um formulrio ou controle. Especificar o nome usado no cdigo para identificar um formulrio, controle ou objeto de Name acesso a dados. No est disponvel em tempo de execuo. ToolTipText Exibir uma janela de assistncia junto ao ponteiro do mouse, movendo-o sobre um formulrio ou controle. Determinar a distncia entre a borda interna superior de um objeto e a borda superior do Top objeto que o contm.

Visible Width

Determinar se o objeto est visvel ou no. Determinar a dimenso horizontal de um objeto.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

28

Eventos Activate Change Click DblClick

Eventos comumente utilizados nos objetos: Aes


Ocorre quando um formulrio se tornar uma janela ativa. Ocorre quando o contedo de uma caixa de combinao (caixa combo), barra de paginao (barra de rolagem), etiqueta, caixa de figura ou caixa de texto mudar. Ocorre quando o usurio pressiona e solta o boto do mouse sobre um objeto. Pode tambm ocorrer quando o valor do controle modificado. Ocorre quando o usurio d um duplo clique com o mouse.

DragDrop Ocorre quando uma operao de arrastar e soltar" completada como resultado do

arrastamento sobre um formulrio ou controle e soltura do boto do mouse. Ocorre quando uma operao de "arrastar e soltar" est em progresso. Pode ser utilizado para DragOver monitorar se o ponteiro do mouse entra, deixa ou est diretamente sobre um alvo vlido. O ponteiro do mouse determina que o objeto receba o evento. GotFocus Ocorre quando um objeto recebe a ateno do sistema (focus). Iremos notar que um formulrio recebe a ateno somente quando todos os controles visveis esto desabilitados.

KeyDown Ocorre quando o usurio pressiona uma tecla. KeyPress Ocorre quando o usurio pressiona e solta uma tecla. KeyUp
Ocorre quando o usurio solta a tecla previamente pressionada.

LostFocus Ocorre quando um objeto perde a ateno do sistema (focus). MouseDown Ocorre quando o usurio pressiona o boto do mouse. MouseMove Ocorre quando o usurio movimenta o mouse. MouseUp Ocorre quando o usurio solta o boto do mouse previamente pressionado.

Controles
Todos os controles possuem abreviaes para facilitar a programao. Assim caso, o programador esteja lendo um artigo ou desenvolvendo um programa que esteja em um livro (ou outra) fonte e no exista uma foto ao menos da tela deste programa, ele facilmente poder identificar os controles existentes dentro deste programa apenas acompanhando suas abreviaes. Abaixo seguem as Abreviaes dos Controles bsicos utilizados pelo Visual Basic.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

29

Controles CheckBox ComboBox CommandButton Data (Control) DirListBox DriveListBox FileListBox Form Frame HScrollBar Image Label Line ListBox Ole OptionButton PictureBox Shape TextBox Timer VScrollBar

Abreviaes CHK CMB CMD DTC DIR DRV FIL FRM FRM SCR IMG LBL LIN LST OLE OPT PCT SHP TXT TMR SCR

As Propriedades Principais do CheckBox

Propriedades Alignment Caption Enabled Font Name Value

Aes Especifica se o texto ficar do lado esquerdo da caixa. O texto anexado ao objeto checkbox.
Habilita ou no este objeto. Estando desabilitado, no aceitar que o usurio faa evento com a caixa de checagem.

Escolhe uma fonte para o texto digitado no caption.


Nomeia o objeto. A inicial abreviada para este tipo de controle "chk". Determina o estado do objeto: unchecked, checked ou grayed.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

30

As Propriedades Principais do ComboBox

Propriedades Style Text

Aes
Escolhe o tipo de caixa de combinao que ser utilizada: dropdown combo, simple combo, dropdownlist. Nesta propriedade digita-se um texto que ficar como padro, fixo na rea de texto, na caixa de combinao. Geralmente deixa-se em branco.

As Propriedades Principais do CommandButton

Propriedades Cancel Caption Default Enabled Font Name Visible

Aes
Se esta opo for ajustada como verdadeira, o boto ser associado tecla ESC e sempre que pressionarmos essa tecla, ser como se tivssemos apertado o boto.

O ttulo que ser exibido dentro do boto.


Estando o boto com essa propriedade como True, indica que este boto ser o padro desta janela e sempre que apertarmos a tecla ENTER, ser como se tivssemos clicado sobre o boto. Determina se o boto ser habilitado para pressionamento por parte do usurio ou no.

Escolhe a fonte de letra que o Caption ter. O nome que daremos para o objeto boto de comando. Determina se o boto ser visvel para o usurio quando o programa estiver em execuo.
As Propriedades Principais do Data

Propriedades

Aes

DataBaseName Localizao da base de dados a ser utilizada pelo programa. RecordSource Associa a tabela da base de dados a ser utilizada pelos campos contidos no formulrio.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

31

As Propriedades Principais do Form

Propriedades Apperance BackColor

Aes
Define se o modo de exibio ser 3D ou normal. Muda a cor de fundo do formulrio. Muda o tipo de borda do formulrio. None: Sem borda, sem barra de ttulo, sem menu de controle, sem boto maximizar e sem boto minimizar e no pode redimensionar a janela. FixedSingle: Borda Fixa. Aceita o menu de controle, maximizar, minimizar, barra de ttulo e pode ser redimensionada. Sizable: Borda comum. Possui o menu de controle, maximizar, minimizar, barra de ttulo e pode ser redimensionada. Fixed Dialog: Muito usada para janelas que vo manter um dilogo com o usurio. Ela pode ter menu de controle e a barra de ttulo, mas no ter os botes de maximizar e minimizar. No pode ser redimensionada. Fixed ToolWindow: No possui o menu de controle, o boto maximizar e o boto minimizar. Tambm no pode ser redimensionada. Aparecer somente barra de ttulo e o boto fechar, prprio do windows, esse tipo de formulrio no aparece na barra de tarefas do windows. Sizable ToolWindow: No possui o menu controle, o boto maximizar e o boto minimizar. Pode ser redimensionada. Aparecer somente barra de ttulo e o boto fechar, prprio do windows, esse tipo de formulrio no aparece na barra de tarefas. Ser o texto mostrado na barra de ttulo do formulrio (da janela). Retira ou coloca o menu de controle, boto maximizar, minimizar e fechar a janela. Se esta opo estiver com False, indica que nenhum objeto desta janela, e nem a prpria janela, podero responder a eventos gerados pelo usurio, como clicar do mouse, pressionamento de teclas, etc. Escolhe a fonte padro que ser usada para todos os objetos inseridos neste formulrio. Nesta propriedade escolhemos um arquivo de cone que ir representar o programa. Determina se os eventos do teclado no formulrio sero executados antes dos eventos correspondentes aos objetos inseridos no formulrio. Habilita ou no o boto de maximizao. Determina se a janela ser uma janela filha. Ou seja, ter uma outra janela mestra incorporando-a.

BorderStyle

Caption ControlBox Enabled


Font Icon

KeyPreview MaxButton MDIChild MinButton MouseIcon

Habilita ou no o boto de minimizao.

Sempre que o mouse for movido em cima do formulrio, o cone associado a esta propriedade aparecer (desde que a propriedade MousePointer esteja customizada, ou seja, personalizada). MousePointer Nesta propriedade especificamos o tipo de ponteiro que o mouse ter quando se mover sobre o formulrio. Os tipos de ponteiro de mouse esto abaixo da tabela.

Name Picture Visible

Nome definido para o objeto formulrio. Insere uma figura em nosso formulrio.
Determina se, ao executarmos o programa, essa janela ficar visvel ou invisvel. normal, maximizada ou minimizada.

ShowInTaskbar Habilita ou no a possibilidade da janela aparecer na barra de tarefas do windows. WindowState Determina se, ao executarmos o programa, a janela aparecer na tela do computador
Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

32

Ponteiros do mouse:

0 - (Default) Ponteiro padro; 1 - Ponteiro em forma de seta; 2 - Ponteiro de seleo exata; 3 - Seleo de escrita; 4 - cone (variados); 5 - Seleo de mover objetos; 6 - Redimensionamento na diagonal; 7 - Redimensionamento na vertical; 8 - Redimensionamento na diagonal; 9 - Redimensionamento na horizontal; 10 - Seleo alternada; 11- Sinal de ocupado; 12 - No disponvel (ocupado); 13 - Trabalhando em segundo plano; 14 - Seleo de ajuda; 15 - Todos os tamanhos; 99 - Aparece o cone escolhido na propriedade MouseIcon.

As Propriedades Principais do Frame

Propriedades Caption Enabled Name

Aes Coloca um texto no canto superior esquerdo da moldura.


Determina se todos os objetos colocados no interior da moldura estaro disponveis ou no para o usurio. Nome dado ao objeto. A inicial abreviada "frm". Cuidado para no colocar um name igual ao de algum form.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

33

As Propriedades Principais do HScrollBar

Propriedades Max Min

Aes
Valor mximo a ser utilizado pela barra de rolagem, geralmente 100. Valor mnimo a ser utilizado pela barra de rolagem, geralmente 0.

As Propriedades Principais do Image

Propriedades Picture Strech

Aes
Figura a ser exibida pelo objeto. Pode ser qualquer arquivo de imagem suportado pelo Visual Basic ou at mesmo um arquivo de cone. Possibilita que a imagem seja esticada mantendo toda a visualizao possvel dentro da rea do objeto.

As Propriedades Principais do Label

Propriedades AutoSize

Aes
Com esta propriedade habilitada, indicamos ao controle para redimensionar automaticamente seu tamanho do texto no label.

BackColor Escolhe a cor de fundo que envolver o label. BackStyle Caption Enabled Font ForeColor Name Visible Escolhe entre o fundo transparente ou opaco para o label.
A propriedade principal do label. Determina o texto que ser exibido dentro do objeto. Habilita ou desabilita o objeto. Quando est em False, a cor de seu contedo fica acinzentada. Escolhe a fonte que ter o texto digitado na propriedade caption.

BorderStyle Escolhe entre colocar uma moldura envolvendo o label ou no.

Escolhe a cor da fonte do label.


Nomeia o objeto label. Como j foi dito, importante que todos os objetos sejam nomeados. A inicial do label "lbl".

Indica se o objeto ser visvel ou no para o usurio.


Quando o autosize est em True, no possvel expandir o texto digitado na propriedade

WordWrap caption em outras linhas. Mas, se passarmos essa propriedade wordwrap para True, isto
poder ser feito, bastando para isto, dimensionarmos o label.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

34

As Propriedades Principais do ListBox

Propriedades Columns Enabled

Aes
Determina a quantidade de colunas que a caixa de listagem ter. Habilita ou no o listbox para o usurio selecionar algum item no objeto. maneira parcial. Nesta propriedade existe uma caixa onde colocamos nmeros relacionados com os itens existentes dentro do listbox. o local onde digitamos os itens que estaro dentro do listbox. Quando esta propriedade estiver habilitada, significa que a caixa de listagem aceitar mltiplas selees, ou seja, poder ser selecionado mais de um item: none, simple e extended. Nome que o objeto listbox ter. A abreviao para este objeto "lst". Classifica os itens existentes dentro do listbox em ordem alfabtica ou numrica ascendente. Esta propriedade em tempo de execuo tem a finalidade de informar o estado que se encontra o sorted.

IntegralHeight Determina a possibilidade dos itens dentro da caixa de listagem serem exibidos de ItemData List MultiSelect Name Sorted

As Propriedades Principais do OptionButton

Propriedades Alignment Caption Enabled Name Value

Aes
Determina se o texto ficar do lado direito ou esquerdo do boto de opo.

O texto que ser anexado ao objeto.


Habilita ou no este objeto. Estando desabilitado, o usurio no poder selecionar a opo e a cor do texto ser acinzentada. Nomeia o objeto. A inicial abreviada para este tipo de controle "opt". True para opo selecionada e False quando no est selecionada.

As Propriedades Principais do PictureBox

Propriedades Picture

Aes
Figura a ser exibida pelo objeto. Pode ser qualquer arquivo de imagem suportado pelo Visual Basic ou at mesmo um arquivo de cone.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

35

As Propriedades Principais do TextBox

Propriedades BackColor Enabled Font ForeColor Locked MaxLength MultiLine Name

Aes
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 no estar habilitado para interagir com o usurio. Escolhe a fonte que ser mostrada dentro da caixa de texto.

Escolhe a cor da fonte.


Estando em False, trava qualquer digitao na caixa de texto. Quantidade mxima de caracteres dentro da caixa de texto. Habilita a possibilidade de se digitar mais de uma linha na caixa de texto.

Nomeia o objeto textbox. A inicial do textbox "txt".


Se durante a digitao de qualquer dado na caixa de texto, quisermos que o Visual Basic

PasswordChar mostre outro caracter no lugar do caracter digitado, s especificarmos aqui qual ScrollBars Text
queremos que seja mostrado. Muito usado para digitao de senhas. Estando a propriedade multiline habilitada, interessante 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 digitado pelo usurio dentro da caixa de texto incorporado nesta propriedade.

As Propriedades Principais do Timer

Propriedades Interval

Aes
Associa o intervalo de tempo em que a programao contida no objeto ocorrer.

As Propriedades Principais do VScrollBar

Propriedades Max Min

Aes
Valor mximo a ser utilizado pela barra de rolagem, geralmente 100. Valor mnimo a ser utilizado pela barra de rolagem, geralmente 0.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

36

No vamos estudar todos os objetos de controle, apenas alguns como:


CommandButton Label TextBox Frame CheckBox OptionButton Timer

CommandButton
Obs:Um boto de comando tipicamente usado para iniciar um evento que retorna uma ao com fechar um formulrio, movimentao para um registro diferente, imprimir u relatrio, etc. Use a propriedade Caption para especificar o texto que aparece no boto de comando. Use a propriedade Picture para especificar uma figura para um boto de comando, s no se esquea de habilitar a propriedade Style para Graphical, caso contrrio a figura no aparecer. Voc pode escolher um boto de comando para clic-lo e se a propriedade Default est selecionada para True (.T.), pelo pressionamento da tecla ENTER o boto de comando selecionado. Se a propriedade Cancel do boto de comando est selecionada para True (.T.), voc pode escolher o boto de comando pelo pressionamento da tecla ESC. Exerccio Proposto 1 Siga os seguintes passos:

No menu File escolha a opo New Project; Escolha ento o tipo de projeto Standard Exe.

Feito isto, construa os seguintes botes no formulrio, utilizando-se das propriedades descritas na tabela abaixo:

Name CmdLimpar CmdOk CmdCancelar CmdFechar

Caption Limpar Ok Cancelar Fechar

Na propriedade Name do formulrio digite FrmCommand1 e na propriedade Caption digite "Exemplo do objeto Command".

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

37

O resultado obtido dever ser o formulrio abaixo:

<> Aps termos construdo a tela, deveremos passar para a parte da programao. Para gerar a programao, devemos clicar duas vezes no objeto desejado. Programao do boto Limpar:

<> Programao do boto Ok:

<> Programao do boto Cancelar:

<>

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

38

Programao do boto Fechar:

<> Programao para centralizar o Formulrio:

<> O resultado deste exerccio ser a impresso das mensagens inseridas dentro dos botes atravs do comando Print diretamente no formulrio, como na figura abaixo:

<> Para retirar as mensagens escritas no formulrio, s clicar no boto Limpar e para encerrar o programa s clicar no boto Fechar. No momento de salvar, o nome a ser dado ao projeto PrjCommand1. Exerccio Proposto 2 Siga os seguintes passos:

No menu File escolha a opo New Project; Escolha ento o tipo de projeto Standard Exe.

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

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

39

Propriedades Style Picture

Opes Graphical Qualquer arquivo de figura

Modifique tambm a propriedade Caption dos objetos, acrescentando & antes do nome fsico. Voc estar criando uma tecla de atalho para eles. Assim, quando voc precisar utilizar o CommandButton, s clicar nele ou manter pressionada a tecla Alt, do lado esquerdo do teclado, seguida da letra escolhida para atalho. Na propriedade Name do formulrio digite FrmCommand2 e na propriedade Caption digite "Exemplo do objeto Command". O resultado obtido dever ser o formulrio 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 no necessariamente dever ser a primeira letra, poder ser uma letra do meio ou do final da palavra.

Label
Labels so usados para exibir texto e no podem ser editados pelo usurio. Eles so usados para identificar objetos em um formulrio providenciando uma descrio do que um certo controle far se clicado, por exemplo em tempo de execuo, Eles podem exibir informao em resposta a um evento ou processo em sua aplicao.

Labels so usados em muitas instncias nas mais diferentes situaes. Muito comumente, eles so usados com controles que no tem a propriedade Caption. Por exemplo, voc pode usar o controle label para adicionar descries para TextBoxes, ListBoxes, ComboBoxes e outros. Eles tambm podem ser usados para descrever textos em um formulrio, por exemplo, para auxiliar o usurio com informao de ajuda. Voc pode tambm escrever um cdigo que altere o texto exibido por um label em resposta eventos em tempo de execuo. Por exemplo, se sua aplicao leva alguns minutos para processar uma alterao, voc pode exibir uma barra de status processando uma mensagem atravs de um label. Obs: Este controle no pode receber foco.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

40

Selecionando a Propriedade Caption do Label


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

Alinhando o Texto
A propriedade Alignment permite que voc selecione o alinhamento do texto do label para Justificado Esquerda (0, o padro) , Centralizado (1), ou Justificado Direita (2).

As Propriedades AutoSize e WordWrap


Pelo padro, quando inserimos um texto dentro da propriedade Caption excedendo a largura do controle, o texto desce para a prxima linha e alterado se ele excede a altura do controle. Para que o controle ajuste automaticamente seu contedo, selecione a propriedade AutoSize para True. O controle expandir horizontalmente para receber o contedo da propriedade Caption. Para que o contedo desa 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 usurio pode pressionar e utilizar ALT + o caracter que o programador designou para mover o foco para o prximo controle na ordem da tabulao. Voc pode tambm 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 no pode receber foco, ento o foco se move automaticamente para o prximo controle na ordem fornecida na propriedade TabIndex. Use esta tcnica 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 ento desenhe o controle. -ouDesenhe o controle em qualquer ordem e selecione a propriedade TabIndex do label para numerar o uso do controle. 2. Use o caracter & na propriedade Caption para fornecer uma tecla de acesso para o label. Obs: Voc pode querer exibir teclas de acesso em um controle label, se voc estiver usando eles para criar teclas de acesso. Isto permite que voc una um controle label a um campo de uma linha de registro onde os dados so includos atravs do &. Para exibir & em um controle label, selecione a propriedade UseMnemonic para False.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

41

Exerccio Proposto
Siga os seguintes passos:

No menu File escolha a opo New Project; Escolha ento o tipo de projeto Standard Exe.

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

Name LblNome LblSexo LblExame

Caption Nome do Paciente Sexo Exame

Na propriedade Name do formulrio digite FrmLabel e na propriedade Caption digite "Exemplo do objeto Label". O resultado obtido dever ser o formulrio abaixo:

<> No momento de salvar, o nome a ser dado ao projeto PrjLabel. Com certeza, os objetos criados no ficaram com esta mesma aparncia apresentada acima. Para isso, algumas propriedades dos labels devero ser alteradas. Siga as instrues abaixo e confira o resultado:

Objeto LblNome LblSexo

Propriedades Font AutoSize, BorderStyle, Font e ForeColor BackColor, Font, ForeColor e WordWrap

LblExame

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

42

TextBox
Obs: Para exibir mltiplas linhas de texto em um controle TextBox, altere a propriedade MultiLine para True. Se um TextBox com MultiLine no 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 aparecero 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 padro justificado esquerda. Se a propriedade MultiLine False, alterar a propriedade Alignment no proporcionar efeito. Exerccio Proposto Siga os seguintes passos:

No menu File escolha a opo New Project; Escolha ento o tipo de projeto Standard Exe.

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

Name LblNomePaciente TxtNomePaciente LblSexo TxtSexo LblExame TxtExame CmdOk CmdCancelar

Caption Nome do Paciente

Text

Sexo Exame Ok Cancelar

Na propriedade Name do formulrio digite FrmTextBox e na propriedade Caption digite "Exemplo do objeto TextBox". Obs: a propriedade que define o contedo de texto no objeto TextBox, o Text.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

43

O resultado obtido dever ser o formulrio abaixo:

<> Aps termos construdo a tela, deveremos passar para a parte da programao. Para gerar a programao, devemos clicar duas vezes no objeto desejado. Programao da caixa de texto Nome do Paciente:

<> Programao da caixa de texto Sexo:

<>

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

44

Programao da caixa de texto Exame:

<> Programao do boto Ok:

<> Programao do boto Cancelar:

<> Programao para centralizar o Formulrio:

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

Frame
Frames so usados para criar grupos de controles com identidades. Por exemplo, voc pode usar um frame para subdividir um formulrio funcionalmente, separando grupos de botes de opes (OptionButton).

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

45

Figura 1. O controle Frame

Em muitos casos, voc usar o frame passivamente para agrupar outros controles e no 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 Formulrio


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

Desenhando controles dentro do Frame


Para adicionar outros controles no frame, desenhem eles dentro do frame. Se Voc desenhar um controle do lado de fora do frame, ou usar o mtodo do duplo-clique para adicionar um controle em um formulrio, e ento 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 transferncia, selecionar o frame, e ento col-los dentro do frame.

Selecionando mltiplos controles em um Frame


Para selecionar mltiplos 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 sero selecionados, como na Figura 3. Figura 3. Selecionando controles dentro de um Frame

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

46

Check Box
O controle checkbox exibe uma marca de checagem quando ele selecionado. Ele comumente utilizado para presenciar uma seleo Sim/No ou Verdadeiro/Falso para o usurio. Voc pode utilizar este controle em grupos para exibir mltiplas escolhas das quais o usurio pode selecionar uma ou mais.

Este controle similar ao controle optionbutton, mas neste cada opo usada para indicar uma seleo que feita pelo usurio. Eles diferem somente porque um optionbutton em um grupo pode ser selecionado por vez. Com o controle check box, porm, qualquer nmero de caixas de checagem pode ser selecionado.

O Valor da Propriedade
A propriedade Value do check box indica se o check box est checado, no-checado ou no acessvel. Quando selecionado, o valor ser 1. Por exemplo:

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

Opo No-Checado Checado No-Acessvel

Valor 0 1 2

Constante VbUnchecked VbChecked VbGrayed

O usurio clica no controle check box para indicar um estado checado ou no-checado. Voc pode ento testar o estado do controle e programar sua aplicao para desenvolver alguma ao baseada nesta informao. Por padro, o check box selecionado para vbUnchecked. Se voc quer preselecionar um check box de uma srie de check boxes, voc pode selecion-lo atravs da propriedade Value para vbChecked na rotina Form_Load ou Form_Initialize. Voc pode tambm selecionar a propriedade Value para vbGrayed para desabilitar o check box. Por exemplo, pode querer desabilitar um check box at que uma certa condio seja acionada.

O Evento Click
Porm se o usurio clica no check box, o evento Click acionado. Voc pode ento programar sua aplicao para desenvolver alguma ao 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 no-checado.
Private Sub Check1_Click() Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

47

If Check1.Value = vbChecked Then Check1.Caption = "Checked" ElseIf Check1.Value = vbUnchecked Then Check1.Caption = "Unchecked" End If End Sub

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

Respondendo pelo Mouse e pelo teclado


O evento click do check box tambm acionado quando o foco passado para o controle com o teclado usando a tecla TAB e ento pressionando a tecla de espao. Voc pode selecionar o check box atravs do caracter que cria tecla de atalho (&). Por exemplo:

Neste exemplo, pressionando a combinao de teclas ALT+C voc pode alternar entre os estados checado e no-checado.

Exerccio Proposto
Siga os seguintes passos:

No menu File escolha a opo New Project; Escolha ento o tipo de projeto Standard Exe.

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

Name FrmOpcoes ChkArroz ChkFeijao ChkFritas ChkOvo ChkBife CmdFechar

Caption Arroz Feijo Fritas Ovo Bife &Fechar

Na propriedade Name do formulrio digite FrmFrameCheckBox e na propriedade Caption digite "Exemplo do objetos Frame e CheckBox".

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

48

O resultado obtido dever ser o formulrio abaixo:

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

OptionButton
Usualmente, os controles OptionButton so usados em um grupo de opes para exibir opes das quais o usurio seleciona somente uma. Voc agrupa os controles OptionButton desenhando-os dentro de uma controle que os contm como um Frame, um PictureBox, ou um formulrio. Para agrupar os controles OptionButton em um Frame ou PictureBox, desenhe o Frame ou o PictureBox primeiro, e ento desenhe os controles OptionButton dentro. Todos os controles OptionButton com o mesmo recipiente, contidos no mesmo grupo.

Enquanto o controle OptionButton e o controle CheckBox parecem funcionar similarmente, h uma importante diferena: Quando um usurio seleciona um OptionButton, o outro controle OptionButton do mesmo grupo est automaticamente no disponvel. Em contraste, qualquer nmero de controles CheckBox poder ser selecionado.

Exerccio Proposto
Siga os seguintes passos:

No menu File escolha a opo New Project; Escolha ento o tipo de projeto Standard Exe.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

49

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

Name FrmSexo OptMasculino OptFeminino FrmEstado OptSolteiro OptCasado OptViuvo OptSeparado OptDivorciado CmdFechar

Caption Sexo Masculino Feminino Estado Civil Solteiro Casado Vivo Separado Divorciado &Fechar

Na propriedade Name do formulrio digite FrmOptionButton e na propriedade Caption digite "Exemplo do objeto OptionButton". O resultado obtido dever ser o formulrio abaixo:

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

Timer
O controle Timer realiza aes atribudas a ele de acordo com a passagem do tempo. Eles so independentes do usurio, e voc pode program-los para ter aes em intervalos de tempo regulares. Uma tpica ao realizada
Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

50

com ele a checagem do relgio do sistema para visualizar as horas em alguma barra de tarefas. Timers tambm so muito usados para outros tipos de processamento.

Cada controle timer tem uma propriedade chamada Interval que especifica o nmero de milisegundos (ms) que passam entre um evento de tempo para o prximo. 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 limitaes para considerar quando voc est programando em um controle timer:

Se sua aplicao ou outra aplicao feita exigindo uma demanda maior do sistema tal como longos retornos, clculos intensivos, ou leitura de drives, redes, ou portas de acesso sua aplicao no permite rodar no evento timer com frequncia como especificado na propriedade Interval. O intervalo poder ser entre 0 e 64.767, o que significa que um intervalo muito longo no poder ser mais longo do que um minuto (cerca de 64.8 segundos). O intervalo no garantido exatamente com o decorrer do tempo. Para assegurar exatido, o timer exibe a checagem do relgio do sistema quando necessrio, 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 aplicao com tempo, voc dever criar no mnimo um form.

Inicializando um Controle Timer


Um controle timer tem duas propriedades fundamentais:

Propriedade Enabled Interval

Opo
Se voc quiser que o controle timer inicie trabalhando, como o evento load do form, altere esta propriedade para True. Em todo caso, deixe esta propriedade selecionada como False. Voc poder escolher ter um evento externo (como um clique de um boto de comando, por exemplo) para iniciar a operao do timer.

Nmero 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 usurio. Com o controle Timer, alterando a propriedade Enabled para False suspendemos as operaes do timer. Obs: Lembre-se que o evento Timer peridico. A propriedade Interval no determina "quanto tempo" e sim "qual a frequncia". O tamanho do intervalo depende de quanta preciso voc vai precisar, porque, existe a chance em potencial de que algum erro ocorra fazendo um intervalo quebrado, mesmo assim voc ter mais preciso.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

51

Agora vamos entrar na parte de variveis, elas so muito importantes em qualquer projeto, nos projetos mais complexos indispensveis.

Variveis
O que so Variveis?
Toda linguagem de programao precisa de algum lugar para armazenar o resultado de seus clculos ou simplesmente para controlar o fluxo do programa. Assim como acontece na lgebra cotidiana, as linguagens de programao se valem de variveis para armazenar dados na memria do computador. Uma varivel de memria nada mais do que uma posio da memria do computador reservada exclusivamente para que sejam guardadas informaes e dados. A essa posio de memria damos um nome para referncia dentro do nosso programa, como por exemplo, NomeCliente. Quem controla qual posio de memria do computador ser reservada a prpria linguagem e o sistema operacional, ou seja, devemos apenas nos preocupar em nomear e declarar as variveis. E j que estamos falando de variveis, quando formos nome-las, deveremos seguir algumas regras bsicas:

O nome precisa iniciar com uma letra. Somente so permitidas letras, nmeros e o caractere de sublinhado. Qualquer sinal de pontuao e espao em branco ser invlido. No Visual Basic 6.0, os nomes podem ter at 255 caracteres de comprimento. Isso significa que podemos ter nomes de variveis bem descritivos, como por exemplo, PrimeiroNomeDoCliente. No podem coincidir com uma palavra reservada do Visual Basic, como nomes de funes ou procedimentos. Precisam ser nicos dentro do escopo atual, ou seja, no podemos ter duas variveis com o mesmo nome dentro de uma rotina, porm, entre rotinas diferentes, isso perfeitamente possvel.

Escolha nomes sugestivos para as variveis, de tal forma que descrevam sua funo ou contedo que ser armazenado nelas. Por exemplo, para uma varivel onde seria armazenado o resultado do clculo do salrio de um funcionrio, poderamos escrever nSalarioFunc, em vez de X, Y ou Z. Acostume-se a iniciar o nome de uma varivel com uma combinao de at trs letras em minsculo que identifica o seu tipo de dado. Por exemplo, para uma varivel do tipo string, utilize a combinao "str", para uma varivel numrica inteira utilize "int", e assim por diante. Veja os seguintes exemplos: strNomePrograma = "Controle de Despesas Domsticas" lngSaldoInicial = 125080

Declarao de Variveis
Embora voc possa ir criando variveis a medida que for precisando, aconselhvel que declare todas as variveis que ir utilizar em seu programa. Isso torna o programa mais estruturado e menos propenso a erros, como por exemplo, ocorrncias de alteraes indevidas do valor de uma varivel entre chamadas de rotinas. Quando declaramos uma varivel, um escopo atribudo a ela, ou seja, determinada sua abrangncia (visibilidade) e tempo de vida (existncia). No Visual Basic 6.0, utilizamos o comando de declarao Dim para declararmos uma varivel, dando-lhe assim um nome e definindo o seu tipo de dado e escopo. A sintaxe completa : Dim NomeVarivel [ As TipoDado ]

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

52

NomeVarivel representa um nome vlido para variveis. J a clusula opcional As permite que seja definido o tipo de dado que a varivel armazenar. Os tipos de dados disponveis sero vistos mais frente. Voc pode deixar para o Visual Basic declarar implicitamente as variveis. Assim voc simplesmente cria as variveis medida que for precisando. Por exemplo, suponhamos que voc tenha a seguinte funo que calcula a mdia entre dois nmeros: Function Media (PrimeiroNumero , SegundoNumero ) intSoma = PrimeiroNumero + SegundoNumero Media = intSoma / 2 End Function Neste caso, a varivel Soma no fora declarada. Agora imagine que por questo de descuido, voc tenha digitado o seguinte: Function Media ( PrimeiroNumero , SegundoNumero ) intSomar = PrimeiroNumero + SegundoNumero Media = intSoma / 2 End Function A funo no seria executada, uma vez que est tentando utilizar uma varivel, no caso intSoma, que no possui qualquer valor, j que o mesmo fora atribudo varivel intSomar. Para evitar esse tipo de problema (apenas um entre vrios possveis), aconselhvel declarar-se todas as variveis que sero utilizadas pela rotina (procedimento ou funo). Portanto, o correto seria escrever a funo da seguinte forma: Function Media ( PrimeiroNumero , SegundoNumero ) Dim intSoma intSoma = PrimeiroNumero + SegundoNumero Media = intSoma / 2 End Function Voc pode forar o Visual Basic a verificar se todas as variveis foram declaradas previamente e, em caso negativo, apresentar uma mensagem de advertncia. Isso possvel atravs da incluso do comando Option Explicit na seo Declarations da classe, formulrio ou mdulo. Podemos tambm selecionar a opo Options, do menu Tools, e ativar a caixa de seleo Require Variable Declaration, na pgina Editor. Isso far com que em todo mdulo novo, porm no em mdulos existentes, seja includo o comando Option Explicit.

Abrangncia e Tempo de Vida de uma Varivel


Dois termos muito utilizados na programao so abrangncia e tempo de vida das variveis. Esses termos definem o limite da visibilidade de uma varivel e o tempo em que ela poder reter seu valor. A isso chamamos de escopo. Abrangncia refere-se (s) parte(s) do cdigo do programa onde uma determinada varivel visvel, ou seja, onde ela pode ser acessada. Isso significa que podemos ter variveis cujos valores somente podero ser acessados e/ou alterados pelo procedimento/funo que as declarou e em nenhuma outra parte do programa. Isso evita que outras rotinas do programa possam alterar inadvertidamente os valores dessas variveis. Essas
Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

53

variveis so ditas locais rotina. Para declarar uma varivel local rotina, seja ela um procedimento (Sub) ou funo (Function), utilize o comando de declarao Dim ou Static dentro da mesma, como no fragmento de cdigo a seguir: Function CalculaSaldo ( dSaldoAntes , dSaldoDebito ) Dim dblNovoSaldo as Double End Function Podemos ter tambm variveis que so visveis apenas pelas rotinas existentes num mdulo e no pelas rotinas de outros mdulos da aplicao. Essas variveis possuem escopo local ao mdulo inteiro. Voc declara variveis locais a nvel de mdulo atravs dos comandos de declarao Dim ou Private, colocados na seo Declarations do mdulo. Veja o seguinte exemplo: Private strSenhaas String Para tornar uma varivel disponvel a todos os mdulos e a todas as rotinas, voc dever declar-la na seo Declarations de qualquer um dos mdulos com o comando Public, como mostra o exemplo: Public strSenhaas String A esse tipo chamamos de varivel de escopo global, ou seja, qualquer rotina de qualquer mdulo tem acesso a ela. O tempo de vida de uma varivel diz respeito ao tempo em que ela poder reter seu valor entre as diversas chamadas do procedimento/funo. Quando uma varivel declarada e a ela atribudo um valor, esse valor se perde quando a rotina encerra sua execuo. Em outras palavras, a varivel criada quando se entra na rotina e destruda quando se sai da mesma. H, porm, situaes onde devemos manter o valor da varivel entre as chamadas. Suponhamos por exemplo, que voc esteja programando um pequeno jogo e que tenha criado uma rotina para controle dos pontos acumulados. Voc precisar de uma maneira de preservar os pontos j marcados entre as chamadas da rotina. Desse modo, a varivel, embora no seja global, no perde seu valor aps o retorno da rotina ao cdigo que a invocou. A esse tipo, damos o nome de varivel esttica. Para declarar uma varivel esttica, utilize o comando de declarao 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 variveis de uma rotina como sendo estticas, coloque a palavra reservada Static frente do nome do procedimento/funo, da seguinte forma: Static Function Pontos (intMarcados ) Dim lngPontosAcumulados as Long lngPontosAcumulados = lngPontosAcumulados + intMarcados

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

54

Pontos = lngPontosAcumulados End Function Devemos lembrar que voc dever utilizar variveis com o escopo mais local possvel, para assim evitar conflitos de nomes de variveis e alteraes de valores indesejveis.

Tipos de Variveis
Como toda linguagem de programao, o Visual Basic tambm possui vrios tipos de dados aplicveis s variveis, que definem quais os valores que essas podero armazenar. O Visual Basic 6.0 define 11 tipos de dados bsicos, cada qual com suas caractersticas peculiares, como largura da faixa de dados, tamanho em bytes, etc. A tabela a seguir, relaciona todos esses tipos:

Tipo de Dado Integer Long Single

Tamanho em Bytes 2 bytes 4 bytes 4 bytes

Faixa de Valores -32.768 32.767 -2.147.483.648 2.147.483.647 -3,402823E38 1,401298E-45 (-) e 1,401298E-45 3,402823E38 (+) -1,79769313486232E308 -4,94065645841247E324 (-) e 4,94065645841247E-324 1,79769313486232E308 (+) -922.337.203.685.477,5808 922.337.203.685.477,5807 De zero 65.500 caracteres. Em sistemas de 32 bits, mximo de 2E32 caracteres. 0 255 True (verdadeiro) ou False (falso) De 1 de Janeiro de 100 31 de Dezembro de 9999 Qualquer referncia a objeto Qualquer valor numrico, caracter, objeto ou valor nulo.

Double

8 bytes

Currency String

8 bytes

1 byte por caracter Byte 1 byte Boolean 2 bytes Date 8 bytes Object 4 bytes 16 bytes + 1 byte Variant para cada caracter

Os tipos de dados determinam o que voc pode armazenar numa varivel. Por exemplo, voc no pode entrar com uma expresso caractere numa varivel do tipo numrico, nem digitar um nmero numa varivel lgica. Vejamos os detalhes dos tipos de dados mais comumente utilizados.

Tipos Integer e Long


Esses dois tipos de dados permitem o armazenamento de valores numricos inteiros, com os quais podemos efetuar clculos e operaes matemticas.
Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

55

A faixa de valores permitida para o tipo Integer vai de -32.768 32.767, sendo, portanto limitada para alguns tipos de operaes. Variveis desse tipo so muito teis como contadores de loops For... Next, por serem de manipulao muito rpida pelo processador, pois necessitam de poucas instrues de mquina. O tipo Long, por outro lado, abrange uma faixa muito maior de valores, da ordem de 2 milhes, conforme pode ser constatado na tabela anterior.

Tipos Single e Double


Single e Double tambm so tipos de dados numricos, porm permitem a manipulao de valores decimais, como pesos, unidades de medidas, etc. Como nos tipos anteriores, podemos efetuar qualquer operao matemtica com eles. O que diferencia o tipo Single do tipo Double a preciso nas casas decimais e a faixa de valores abrangida por cada um. Veja a tabela anterior para comparao. Variveis do tipo Single so ditas de preciso simples, comumente chamadas apenas de variveis de ponto-flutuante. Variveis do tipo Double so denominadas variveis de dupla preciso.

Tipo Currency
O Visual Basic possui um tipo de dado especial para tratamento de valores monetrios, evitando-se assim erros de arredondamento durante clculos matemticos. Esse tipo de dado chamado de Currency. Deve-se utilizlo apenas para armazenamento de valores monetrios. Se num determinado clculo, o valor resultante tiver mais de quatro casas decimais, as casas decimais extras (a partir da quinta casa) sero truncadas. Assim, o nmero 5402,105782 por exemplo, ser armazenado como 5402,1057 numa varivel do tipo Currency.

Tipo String
O tipo de dado String certamente o mais utilizado. Ele possibilita que uma sequncia de caracteres seja armazenada numa varivel. Essa sequncia de caracteres pode conter desde letras do alfabeto at smbolos grficos e nmeros, muito embora no possamos efetuar clculos com os nmeros armazenados numa sequncia. Devemos envolver a cadeia de caracteres com aspas (). Com variveis do tipo caractere, possvel efetuarmos algumas operaes de comparao, concatenao (juno) de duas ou mais sequncias de caracteres ou extrao de uma parte da sequncia. No possvel, porm efetuar clculos matemticos e aritmticos, j que qualquer nmero armazenado numa varivel desse tipo ser considerado como uma sequncia de texto e no um valor numrico. Podemos determinar um tamanho mximo para uma varivel do tipo String, simplesmente adicionando um asterisco (*) seguido por um nmero que define o tamanho mximo em caracteres. Por exemplo, para declarar uma varivel strNomeCliente com um tamanho mximo de 50 caracteres, voc escreveria: Dim strNomeCliente As String * 50 Se for armazenada uma cadeia de caracteres menor que o tamanho mximo especificado, a varivel ser preenchida com espaos em branco direita para complet-la. Se por outro lado, voc tentar armazenar mais caracteres do que o permitido, os excedentes sero descartados.

Tipo Byte
Variveis do tipo Byte so tambm numricas, mas somente podem armazenar nmeros na faixa de 0 255. Esse tipo de varivel tambm til em contador de loops For...Next pequenos, cujo ciclo de repetio no ultrapasse 255.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

56

Tipo Boolean
Uma varivel do tipo Boolean pode conter apenas dois tipos de valores: True (verdadeiro) ou False (falso). So muito utilizadas como sinalizadores, ou seja, variveis que indicam se uma determinada condio lgica retornou ou resultou num desses dois valores. Veja o pequeno exemplo a seguir: Dim blnRepete As Boolean blnRepete = True While blnRepete ' ' ' Wend

Tipo Date
Variveis do tipo Date permitem o armazenamento de valores que representam uma data do calendrio ou um horrio. Para armazenar uma data numa varivel, especifique-a entre "#", como no seguinte exemplo: dtDataVencimento = #05/06/99# dtHora = #05:25:00# Com valores do tipo Date possvel executarmos adio ou subtrao, para assim calcularmos uma nova data. Por exemplo: dtDataHoje = Now dtDataAmanha = dtDataHoje + 1 dtDataOntem = dtDataHoje - 1

Tipo Object
Variveis do tipo Object podem fazer referncia a objetos definidos pelo Visual Basic ou mesmo campos de uma base de dados, como dados OLE ou binrios. Elas so armazenadas em endereos de 32 bits. Para esse tipo de varivel, precisamos utilizar o comando de atribuio Set para assinalar valores a ela, em no apenas o sinal de igualdade. O exemplo a seguir, ilustra sua utilizao: 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 varivel, mas no especifica seu tipo de dado, o Visual Basic automaticamente atribui a ela o tipo Variant. Assim, o dado que voc armazenar na varivel que definir o seu tipo naquele momento.
Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

57

Podemos atribuir tambm um valor nulo a variveis Variant, especificando a palavra-chave Null direita do sinal de igual. Diversas funes podem ser utilizadas para determinarmos qual o tipo de dado armazenado numa varivel Variant.

Constantes
As constantes, diferentemente das variveis, no podem ter seus valores alterados durante a execuo da aplicao. Elas so utilizadas principalmente para fornecer maior legibilidade ao cdigo fonte, substituindo expresses numricas ou caracteres mais complexos e de difcil entendimento. Suponhamos como exemplo, que voc tenha o seguinte cdigo: Dim intNumeros ( 30 ), intContador As Integer For intContador = 1 to 30 intNumeros ( intContador) = intContador * 10 ' ' Next Se amanh voc precisasse modificar sua aplicao, aumentando o nmero mximo de elementos da matriz intNumeros, teria de percorrer toda a listagem do programa e alterar as ocorrncias do nmero 30 para a quantidade desejada de elementos. Utilizando uma constante, esse problema seria facilmente resolvido. Voc poderia incluir a seguinte linha na seo Declarations do mdulo principal do programa: Const Num_Elementos= 30 E no cdigo do programa, escreveria: Dim intNumeros ( Num_Elementos ), intContador As Integer For intContador = 1 to Num_Elementos intNumeros ( intContador) = intContador * 10 ' ' Next No caso de modificaes futuras, ser necessrio apenas alterao na definio da constante e uma nova compilao. O resto ficar por conta do Visual Basic. Um dos tipos de constantes mais famosos o valor de PI (3,14159265358979...).

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

58

Operadores
De nada adiantaria termos dados e mais dados armazenados em nossas variveis de memria ou em nosso banco de dados, se no pudssemos trabalhar com eles, ou seja, se no fosse possvel fazer clculos, comparaes ou qualquer outra operao. Para efetuarmos essas operaes que existem os operadores. Eles podem ser divididos em quatro categorias bsicas:

Operadores Operadores Operadores Operadores

Aritmticos; Relacionais; Lgicos; de Strings.

Operadores Aritmticos
Como ocorre na matemtica comum, os operadores aritmticos permitem que sejam feitos clculos com os dados armazenados em variveis ou em campos de bases de dados. Eles somente podem ser utilizados com dados numricos. A tabela a seguir, relaciona todos os operadores aritmticos disponveis no Visual Basic.

Operador + * / \ ^ Mod

Descrio Efetua a soma entre dois ou mais nmeros. Efetua a subtrao entre dois ou mais nmeros. Efetua a multiplicao entre dois ou mais nmeros.
Efetua a diviso entre dois nmeros e resulta num nmero de ponto-flutuante. Efetua a diviso entre dois nmeros e resulta num nmero inteiro.

Efetua a exponenciao.
Retorna o resto de uma diviso no exata entre dois nmeros

Estes operadores respeitam uma ordem de precedncia universal: 1. Exponenciao 2. Multiplicao e Diviso 3. Adio e Subtrao O operador Mod utilizado para se encontrar o resto de uma diviso no exata. Por exemplo, na diviso de 19 por 3, o resultado seria 6,333333 e mesmo assim no seria um resultado preciso, j que se trata de uma dzima peridica. Assim se multiplicssemos 6,333333 por 3, obteramos 18,999999. Com o operador Mod na expresso 19 Mod 3, teremos como resultado o nmero 1, ou seja, o resto da diviso 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 nmero 1, ter novamente o valor 19.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

59

Operadores Relacionais
Os operadores relacionais, tambm chamados de operadores de comparao, permitem que relacionemos (comparemos) dois valores entre si. Por exemplo, para saber se o valor de uma determinada varivel X maior que o de uma varivel Y, poderamos escrever: X>Y Isso nada mais que uma comparao entre as duas variveis.

A seguinte tabela, lista todos os operadores relacionais do Visual Basic. O funcionamento de cada um deles no difere daquele empregado na matemtica comum.

Operador < > <= >= = <>

Descrio Menor que Maior que Menor que ou igual a Maior que ou igual a Igual a Diferente de

Operadores Lgicos
Os operadores Lgicos como o prprio nome j diz, avaliam uma expresso numrica ou caractere e retornam valores lgicos, ou seja, verdadeiro ou falso. Por exemplo, se uma varivel, digamos X, possui o valor 100 e uma outra varivel Y , possui o valor 500, ento a expresso a seguir avaliar verdadeiro. X = 100 And Y = 500 A tabela a seguir, apresenta todos os operadores lgicos do Visual Basic:

Operador And Or Not Xor Eqv Imp

Descrio
Efetua a operao lgica E. Se ambas as expresses forem verdadeiras, ento o resultado ser verdadeiro. Efetua a operao lgica OU. Se uma das expresses (ou ambas) for verdadeira, ento o resultado ser verdadeiro. Efetua a operao lgica NO. Inverte o estado lgico de uma expresso, se ela for verdadeira, torna-a falsa e vice-versa. Efetua a operao lgica OU EXCLUSIVO. Se uma das expresses for verdadeira, o resultado ser verdadeiro, porm se ambas forem verdadeiras, o resultado ser falso. Efetua a operao de equivalncia de expresses. O resultado ser verdadeiro somente se ambas as expresses forem equivalentes. Efetua a operao de implicao lgica. Retorna verdadeira se uma expresso implica em outra.
P r o f Fel ip e Di a s

Co nt r o la nd o a p o r ta p ar ale la

60

Para entender melhor como funcionam os operadores lgicos, vamos analisar cada um deles.

Operador Lgico And


O operador lgico And pode ser visto como um conector lgico. Imagine que voc possua dois fios ligados a uma lmpada e a uma bateria. A lmpada somente acender se voc tiver ligado ambos os fios aos plos da bateria. Acompanhe esse exemplo:

Fio Vermelho Ligado Falso Verdadeiro Falso Verdadeiro

Fio Preto Ligado Falso Falso Verdadeiro Verdadeiro

Lmpada Acende Falso Falso Falso Verdadeiro

Operador Lgico Or
O operador lgico Or s vezes chamado somador lgico, uma vez que avalia verdadeiro (1) sempre que uma das expresses for verdadeira (pode at ocorrer de ambas serem verdadeiras). Considere agora, como exemplo, que voc deseja escrever uma carta (ou quem sabe um livro tambm sobre o Visual Basic). Se voc tiver uma mquina de escrever (OR) um micro-computador, poder tranquilamente satisfazer seu desejo. Acompanhe o exemplo:

Tem Mquina Falso Falso Verdadeiro Verdadeiro

Tem Micro Falso Verdadeiro Falso Verdadeiro

Pode Escrever Falso Verdadeiro Verdadeiro Verdadeiro

Operador Lgico Not


O operador lgico Not um operador de inverso, ou seja, ele transforma em falsa uma expresso lgica que avalia verdadeiro, e vice-versa. Por exemplo, se voc possui um carro e o pneu est furado, voc no (NOT) pode viajar. o que mostra a tabela abaixo:

Pneu Furado Falso Verdadeiro

Pode Viajar Verdadeiro Falso

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

61

Operador Lgico Xor


O operador lgico Xor pode ser visto como um operador que no admite ambiguidades, quer dizer, ou uma coisa ou outra, nunca ambas. Voltemos ao nosso exemplo da lmpada e da bateria. Imagine agora que voc se encontra perto de uma tomada. Voc poder assim, ligar os fios da lmpada na bateria ou na tomada da parede, mas no em ambas ao mesmo tempo. A tabela abaixo ilustra essa situao:

Fio Ligado na Bateria Falso Verdadeiro Falso Verdadeiro

Fio Ligado na Tomada Falso Falso Verdadeiro Verdadeiro

Lmpada Acende Falso Verdadeiro Verdadeiro Falso

Operador Lgico Eqv


O operador Eqv utilizado para desempenhar uma equivalncia lgica entre duas expresses. Por exemplo, se tivssemos as variveis Numero1 = 10, Numero2 = 8 e Numero3 = 5, a expresso lgica a seguir, resultaria em verdadeiro, j que ambas as comparaes so equivalentes: Numero1 > Numero2 Eqv Numero2 > Numero3

Operador Lgico Imp


O operador Imp talvez seja o mais complexo de todos. Ele utilizado para desempenhar a funo de uma implicao lgica entre duas expresses. Ele tambm desempenha uma comparao bit a bit dentro de uma expresso numrica. A seguinte tabela ilustra os resultados obtidos com o operador Imp de acordo com as diversas possibilidades:

A primeira expresso Verdadeiro Verdadeiro Verdadeiro Falso Falso Falso Nulo Nulo Nulo

A segunda expresso Verdadeiro Falso Nulo Verdadeiro Falso Nulo Verdadeiro Falso Nulo

O resultado ser Verdadeiro Falso Nulo Verdadeiro Verdadeiro Verdadeiro Verdadeiro Nulo Nulo

Para melhor entendimento, veja o exemplo a seguir: Se Numero1 = 10, Numero2 = 8 e Numero3 = 5, ento temos que:
Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

62

Numero1 > Numero2 Imp Numero2 > Numero3 verdadeiro.

Operadores de Strings
No Visual Basic, somente permitido dois tipos de operadores para se trabalhar com strings, muito embora ambos possuam o mesmo efeito. So os operadores "&" e "+". Esses operadores servem para concatenar duas ou mais strings de caracteres. Por exemplo, suponhamos que voc tenha definido duas variveis strings Rua e Bairro. Para agrupar os seus valores em uma nica varivel Endereo, voc poderia utilizar um dos seguintes mtodos: a.) Endereco = Rua & " " & Bairro b.) Endereco = Rua + " " + Bairro

Comandos de Lao
Comando de Lao ou Estruturas de Repetio, como tambm so conhecidas. possvel repetir-se um bloco de instrues dentro de um programa em Visual Basic. Para isso existem sete tipos diferentes de estruturas de repetio, 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 diferenas.

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 comea avaliando uma expresso e comparando o seu resultado com uma srie de condies, at encontrar uma que se iguale ao resultado retornado pela expresso. Quando isso ocorre, o cdigo que est ligado condio executado. Essa estrutura uma alternativa mais flexvel e confivel ao If...Then...ElseIf. importante observar que somente efetuada uma comparao do resultado da expresso com as condies, portanto, se for necessrio efetuar outro tipo de operao lgica, voc dever valer-se da estrutura If...Then...ElseIf. A sintaxe dessa estrutura : Select Case Opo Case 1 Print "Opo 1 acionada" Case 2 Print "Opo 2 acionada" Case 3 Print "Opo 3 acionada" Case Else
Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

63

Print "Opo no 1,2 ou 3" End Select Acrescentando na estrutura a clusula Case Else (caso contrrio), o Visual Basic ir verificar se a varivel 1, 2 ou 3. No sendo, ento ser Case Else, e a linha seguinte a esta clusula ser executada. No comando Case podemos usar tambm intervalos, como por exemplo: Case 2 to 4 Ou seja, caso a condio esteja entre 2 e 4.

Do While...Loop (Faa enquanto)


Executa todos os comandos que existem entre Do While e o Loop. Quando a execuo do programa encontra o comando Loop, o Do While reavaliado e a rotina continua at que a condio estabelecida esteja satisfeita.

Veja o exemplo abaixo:


Contador = 0 Do While Contador < 10 Contador = Contador + 1 Print Contador Loop Print "Fim de Execuo" Inicializamos uma varivel de nome Contador com zero, e pedimos para o programa: Repita as instrues 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 condio de novo. Somente quando a condio for verdadeira, ou seja, quando Contador for maior ou igual a 10, que o programa executar a linha aps o Loop. Perceba que, dependendo do resultado da condio, os comandos existentes dentro da estrutura podem no serem executados, passando direto para a linha aps o comando Loop.

Do...Loop While (Retorne enquanto)


Neste caso, o comando Do abre a sequncia de repetio, mas no faz nenhum teste de condio. Este teste feito no final da estrutura com o comando Loop While, ou seja, obrigatoriamente as instrues contidas aps o comando Do sero executadas. Contador = 0 Do Contador = Contador + 1 Print Contador Loop While Contador < 10 Print "Fim de Execuo"

Do Until...Loop (Faa at que)


Executa todos os comandos que existem entre Do Until e o Loop. Quando a execuo do programa encontra o comando Loop, o Do Until reavaliado e a rotina continua at que a condio estabelecida esteja satisfeita.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

64

Contador = 0 Do Until Contador = 10 Contador = Contador + 1 Print Contador Loop Print "Fim de Execuo" Inicializamos uma varivel de nome Contador com zero, e pedimos para o programa: "Repita as instrues 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 condio de novo. Somente quando a condio for verdadeira, ou seja, quando Contador for maior ou igual a 10, que o programa executar a linha aps o Loop. Semelhante ao Do While, dependendo do resultado da condio, os comandos existentes dentro da estrutura podem no serem executados, passando direto para a linha aps o comando Loop.

Do...Loop Until (Repita at que)


O comando Do abre a sequncia de repetio, mas no faz nenhum teste de condio. Este teste feito no final da estrutura com o comando Loop Until, ou seja, obrigatoriamente as instrues contidas aps o comando Do sero executadas. Contador = 0 Do Contador = Contador + 1 Print Contador Loop Until Contador = 10 Print "Fim de Execuo"

For...Next (Conte o Intervalo)


O comando For faz uma contagem de um determinado intervalo de nmeros. Sempre que essa contagem encontra com o comando Next (prximo), a execuo do programa retorna ao comando For at que o nmero final seja alcanado. Exemplo: For Contador = 1 to 10 Print "A varivel Contador agora vale: " & Contador Next Print "Fim de Execuo" Neste programa, o Visual Basic atravs do comando For, avisa "Vamos contar at 10, comeando pelo 1". As instrues contidas na linha abaixo so executadas, e quando o comando Next encontrado, a execuo volta para o For e a varivel Contador incrementada em mais um e assim por diante. Quando Contador for igual a 10, a estrutura For/Next desfeita.

Step
Usamos Step em conjunto com o For para fazer com que a contagem seja incrementada. Exemplo: Se queremos que o comando conte de 2 em 2 faremos: For Contador = 1 to 10 Step 2
Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

65

Exit
O comando Exit permite que se saia prematuramente de um loop, de uma funo (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 repetio, o programa deparar-se com uma certa situao que dever forar a interrupo 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 sada de uma estrutura de repetio ou procedimento/funo, e isso altamente desestimulado pelas tcnicas de programao estruturada. A tabela a seguir, apresenta os formatos do comando Exit para cada situao:

Utilizao Dentro de um loop Do Dentro de um loop For...Next Para sair de uma funo Para sair de um procedimento Funes e Procedimentos

Formato Exit Do Exit For Exit Function Exit Sub

Alm dos formulrios, que compem a interface com o usurio, temos por trs desses, diversas rotinas (funes e procedimentos) que executam as tarefas para as quais a aplicao fora desenhada. So essas rotinas que fazem todo o trabalho rduo de clculos, chamadas dos formulrios e execuo ordenada da aplicao. nesta etapa do desenvolvimento do aplicativo que o programador entrar com sua parte, definindo os algortmos e a lgica geral das rotinas. Podemos concluir, portanto, que uma aplicao em Visual Basic uma unio entre os formulrios e as rotinas, trabalhando amigavelmente.

O que uma Funo?


Uma funo em Visual Basic, seja ela interna prpria linguagem ou desenvolvida pelo programador, como sua similar na matemtica: ela opera nos valores passados como parmetros (se houver algum) e devolve outro valor. Para declararmos uma funo devemos utilizar a palavra-chave Function. Seguindo essa palavra-chave vem o nome da funo e, opcionalmente, uma lista de eventuais parmetros dentro de parnteses. A sintaxe completa a seguinte: Function NomeFuno ( [ Parmetros ] ) Bloco de Instrues End Function Os nomes dos argumentos devem seguir as mesmas regras de nomeao de variveis j vistas anteriormente. Eles devero vir tambm separados por vrgula. Para retornarmos um valor rotina que chamou a funo, devemos atribuir esse valor ao nome da prpria funo. No exemplo a seguir, temos uma funo que recebe como parmetros dois nmeros, sendo que o primeiro se refere base e o segundo potncia qual o nmero ser elevado. Ento ele calcula a potncia do nmero (o prprio nmero multiplicado por ele mesmo) e devolve o valor rotina chamadora. Exemplo: Function Potencia ( intNumeroBase, intPotencia) Dim LngResultado, intContador
Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

66

lngResultado = 1 For intContador = 1 to intPotencia lngResultado = lgnResultado * intNumeroBase Next Potencia = lngResultado End Function Na rotina chamadora, tudo que devemos fazer atribuir o valor da funo a uma varivel de memria, como no exemplo: NumElev = Potencia ( 5 , 3 ) Da mesma forma que voc d um escopo s variveis de memria, voc pode tambm ocultar funes no Visual Basic, criando assim, funes que somente podem ser acessadas pelos procedimentos e funes declarados no mesmo mdulo. So verdadeiras caixas-pretas, uma vez que esto escondidas do resto do programa. Elas so chamadas de funes privadas. Para declarar uma funo privada ao mdulo, coloque a palavra-chave Private antes da declarao Function, assim: Private Function MinhaFunc ( ) ' ' ' End Function Voc pode especificar tambm o tipo de dado retornado pela funo. Por exemplo, podemos alterar nossa funo Potencia, vista anteriormente, para que ela retorne um nmero 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 varivel que receber o valor da funo deve obrigatoriamente ser do mesmo tipo dessa.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

67

O que um Procedimento?
Um procedimento nada mais do que uma rotina desenvolvida especificamente para executar uma determinada tarefa, como ocorre com as funes. Essa tarefa pode inclusive ser genrica, ou seja, servir para aplicaes. Por exemplo, podemos desenvolver um procedimento para abrir um formulrio e maximiz-lo na tela, independente do formulrio (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 funes, no retorna qualquer valor rotina chamadora. Ele pode ser encarado mais como um comando definido pelo programador/usurio, no sentido de que apenas executa a tarefa para a qual fora concebido. Voc declara um procedimento atravs 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 declarao de procedimentos : Sub NomeProc ( [ parmetros] ) Bloco de Instrues End Sub Veja um exemplo de procedimento: Sub TestePot( ) Dim NumElev as Long NumElev = Potencia ( 5,4 ) Debug.Print NumElev End Sub

Passando Parmetros
Embora j tenhamos utilizado a passagem de parmetros a procedimentos e funes, veremos neste tpico, maiores detalhes sobre esse assunto. Primeiro voc dever especificar os parmetros a serem recebidos atravs de uma lista de parmetros colocada entre parnteses aps o nome do procedimento/funo. Esses parmetros, dentro do procedimento ou funo, iro comportar-se como variveis comuns, podendo ser manipulados como tais. Vamos tomar como exemplo nossa funo que calcula a potncia de um dado nmero: Function Potencia (intNumeroBase, intPotencia ) Dim LngResultado, intContador lngResultado = 1 For intContador = 1 to intPotencia lngResultado = lgnResultado * intNumeroBase Next Potencia = lngResultado

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

68

End Function Voc dever prestar bastante ateno quanto ao nmero de parnteses a serem passados a uma funo ou procedimento, isso para evitar, por exemplo, que voc passe quatro parmetros quando na verdade a funo/procedimento espera por cinco ou mais. Para invocar uma funo com parmetros, voc os especifica entre os parnteses. 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 parmetro, voc poder utilizar duas formas de chamada: colocando os parmetros entre parnteses ou diretamente aps o nome do procedimento, separando-os por um espao. Se o procedimento possuir mais de um parmetro, ento voc poder especific-los utilizando o formato direto (sem parnteses), sendo que os parmetros devero ser separados por vrgulas. Voc pode tambm chamar um procedimento passando mais de um parmetro entre parnteses, porm 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 parmetros logo aps a declarao 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 Parmetros por Valor ou por Referncia


Procedimentos e Funes no Visual Basic podem ter ou no a capacidade de alterar o valor dos parmetros recebidos. Para isso, podemos especificar os parmetros por valor ou por referncia. No primeiro caso, o procedimento ou funo recebe uma cpia dos valores passados como parmetros, assim qualquer alterao nesses valores no ser refletida na rotina chamadora, j que as alteraes afetam apenas a cpia. Para especificar uma passagem de parmetros por valor, utilize apenas a palavra-chave ByVal Antes de cada um deles, conforme mostrado a seguir: Sub PassaValor ( ByVal strNome as String , ByVal intIdade as Integer ) ' '
Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

69

End Sub No segundo caso, o padro do Visual Basic, o procedimento ou funo pode alterar livremente os valores dos parmetros. Essas alteraes so refletidas nas variveis da rotina chamadora aps o retorno da funo/procedimento. como se passssemos o endereo da varivel de memria. No preciso nenhuma palavra-chave para se passar um parmetro por referncia, simplesmente especifique-os na declarao da funo/procedimento: Sub PassaReferencia ( strNome as String, intIdade as Integer) ' ' End Sub Utilizando essa habilidade de alterao dos valores de parmetros, podemos criar funes que retornam mais de um valor rotina chamadora, ou mesmo ter procedimentos que retornam valores indiretamente. Por exemplo, no seguinte cdigo, a funo Incr( ) atualiza os valores dos dois parmetros e os retorna. Function Incr ( intParam1 as Integer, intParam2 as Integer) intParam1 = intParam1 + 1 intParam2 = intParam2 + 1 End Function

Parmetros Opcionais
Podemos criar rotinas que recebem parmetros opcionalmente, ou seja, sua passagem no obrigatria. Para fazer isso, declare todos os parmetros 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 parmetros opcionais devero obrigatoriamente ser do tipo Variant e que se voc especificar um parmetro opcional, todos os parmetros subsequentes a esse tambm precisaro ser declarados como opcionais. Isso demonstrado no seguinte cdigo: Sub ParamOpcional2 ( Optional strNome as String , strSobreNome as String , Optional intIdade as Variant, Optional sngAltura as Variant ) Dim strNomeCompleto as String strNomeCompleto = strNome + " " + strSobreNome
Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

70

' ' End Sub

Nmero Indefinido de Parmetros


Como dissemos anteriormente, voc precisa especificar o nmero de parmetros na chamada da rotina de acordo com a sua declarao, ou seja, se a rotina espera por cinco parmetros, ento voc precisa passar cinco parmetros na sua chamada. No entanto, o Visual Basic possibilita que, atravs da palavra-chave ParamArray, especifiquemos um nmero indefinido de parmetros. A quantidade real de parmetros recebidos somente ser estabelecida no momento da chamada da rotina. O exemplo a seguir, demonstra como utilizar um procedimento com nmero indefinido de parmetros: 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

Referncias
Existem centenas de funes desenvolvidas internamente no Visual Basic. Abaixo encontra-se uma pequena relao das funes mais comuns:

Fune Abs Atn Cos Exp Fix FV Hex Int Ipmt

Descrio Encontra o valor absoluto de um nmero. Encontra o arco tangente. Encontra o co-seno. Eleva e (2,718u2) a uma potncia dada. Retorna a parte inteira de um nmero. Valor futuro. Fornece o hexadecimal equivalente. Encontra o maior valor inteiro. Juros pagos por tempo.
P r o f Fel ip e Di a s

Co nt r o la nd o a p o r ta p ar ale la

71

IRR Log Mirr Nper Npv Pmt PV Rate Rnd Sgn Sin Sln Sqr Syd Tan Timer

Taxa interna de retorno. Logartmo comum. Taxa interna de retorno modificada. Tempo de acmulo de uma anuidade. Valor presente lquido. Gastos com anuidade. Valor presente. Taxa de juros por perodo por uma anuidade. Chama o gerar de nmero aleatrio. Retorna o sinal de um nmero. Retorna o seno. Depreciao linear. Raiz quadrada. Soma da depreciao do ano. A tangente de um ngulo em radianos. Retorna o nmero de segundos desde meia-noite.

As funes alfa-numricas mais comuns:

Fune Asc InStr LCase Left Len Ltrim Mid Right Rtrim Str StrComp StrConv String Trim Ucase

Descrio
Retorna o cdigo do caractere correspondente a primeira letra. Retorna a posio da primeira ocorrncia de uma cadeia dentro de outra.

Converte a cadeia de caracteres em minscula.


Encontra ou remove um nmero especfico de caracteres do incio de uma cadeia.

Fornece o comprimento de uma cadeia de caracteres.


Remove os espaos do incio de uma cadeia de caracteres.

Encontra ou remove caracteres de uma cadeia.


Encontra ou remove um nmero especfico de caracteres do final de uma cadeia. Remove os espaos do final de uma cadeia de caracteres. Retorna a cadeia de caracteres equivalente ao nmero.

Compara cadeia de caracteres.


Converte uma cadeia de caracteres de um formulrio para outro. Retorna a repetio de uma cadeia de caracteres idnticos. Remove os espaos do incio e do fim de uma cadeia de caracteres.

Converte uma cadeia de caracteres em maiscula.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

72

As funes data-hora:

Fune Date DateAdd DateDiff DateSerial DateValue Day Hour Minute Month Now Second Time TimeSerial Weekday Year Retorna a data corrente.

Descrio

Permite que voc adicione um intervalo especfico a uma data.

Calcula diferenas entre datas.


Retorna uma data correspondente a um dia, m e ano especficos.

Transforma uma cadeia de caracteres em data.


Informa qual dia em uma cadeia de caracteres alfa-numricos ou nmeros representa. Informa qual hora uma cadeia de caracteres alfa-numricos ou nmeros representa. Informa quantos minutos uma cadeia de caracteres alfa-numricos ou nmeros representa. Informa qual ms uma cadeia de caracteres alfa-numricos ou nmeros representa.

Retorna a data e horrio correntes.


Informa quantos segundos uma cadeia de caracteres alfa-numricos ou nmeros representa.

Informa o horrio corrente.


Retorna uma varivel do tipo data para o horrio fornecido.

Informa o dia da semana correspondente data. Informa a qual ano uma data corresponde.

Banco de Dados
Sempre que trabalhamos com qualquer tipo de dado devemos grav-los em arquivos para no perd-los quando desligamos o computador. Chamamos esses arquivos que recebem vrios dados de Banco de Dados. Iremos abordar o padro MDB (Microsoft DataBase) que representa a grande maioria de arquivos de Banco de Dados para Windows existente hoje. Esse padro utilizado pelo Microsoft Access e o Visual Basic tambm o aceita.

Caractersticas
Um arquivo que contm dados ir possuir a extenso 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 vrias 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 sero armazenados os dados. Por exemplo, na tabela Mercadoria temos o campo de Descrio da Mercadoria, Quantidade no Estoque, Valor de Venda, etc. Tudo isso representa os Campos que esto armazenados dentro da tabela. Dentro dos campos que esto os dados que precisamos armazenar, veja a disposio 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 sero inseridos pelo usurio medida que for trabalhando com seu programa. Para criar um banco de dados o Visual Basic traz uma ferramenta chamada Visual Data Manager. Ele se encontra no menu Add-Ins.
Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

73

Visual Data Manager


O data manager (Gerenciador de Banco de Dados) a nica maneira de se construir um banco de dados diretamente dentro do Visual Basic. Ele est disponvel 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 tambm pode construir um novo banco de dados em formato Jet. Isso normalmente chamado de formato .MDB para o nome do arquivo.

Operaes com o Data Manager


Alm 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 botes de setas e d um clique no boto excluir. O Data Manager tambm permite que voc acrescente novos campos a uma tabela j existente no banco de dados. Abra um banco de dados j existente e ento d um duplo clique na estrutura. Agora o boto Adicionar permite que voc atualize a tabela. O Data Manager tambm permite que voc elimine campos, renomeie-os ou modifique qualquer de suas propriedades. Por fim, ao excluir e adicionar registros, seus bancos de dados crescero rapidamente. Por essa razo, voc poder querer utilizar, periodicamente, a opo 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 opo New. Os bancos de dados com que o Data Manager capaz de trabalhar sero exibidos. Ento, escolha o Microsoft Access em sua ltima verso.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

74

Fornea a localizao e o nome da base de dados a ser criada.

Trabalhe somente na janela Database Window, ela responsvel pelo Access. Nela d um clique com o boto direito do mouse sobre a opo Properties e escolha o tem New Table.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

75

Esta a janela de criao da estrutura da tabela. As informaes contidas nesta janela sero utilizadas para que a tabela da base de dados seja construda. Fornea o nome dos campos necessrios, o nome do ndice da tabela e posteriormente o boto Build the Table (Construir Tabela) ser habilitado.

Para adicionar os campos necessrios na tabela clique no boto Add Field (Adicionar Campo). Fornea o nome do campo (Name), Tipo (Type) e Tamanho (Size) se necessrio.

Para adicionar o ndice da tabela, clique no boto Add Index (Adicionar ndice), posicionado abaixo da lista de campos que foram adicionados tabela.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

76

Exerccio Final Proposto


Construir um simples sistema de Cadastro de Funcionrios: Siga os seguintes passos:

No menu File escolha a opo New Project; Escolha ento o tipo de projeto Standard Exe.

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

Name FrmCadastro lblcodigo lblnome lblendereco lblbairro lblcidade lblestado lbltelefone lblidentidade lblsalario dtcfunc txtcodigo txtnome txtendereco txtbairro
Co nt r o la nd o a p o r ta p ar ale la

Caption - Text Cdigo do Funcionrio Nome do Funcionrio Endereo Residencial Bairro Cidade Estado Telefone Identidade Salrio Funcionrios P r o f Fel ip e Di a s

77

txtcidade cmbestado txttelefone txtidentidade txtsalario cmdprimeiro cmdanterior cmdproximo cmdultimo cmdadicionar cmdremover cmdalterar cmdimprimir cmdlimpar cmdsobre cmdfechar

SP, RJ, ES, MG &Primeiro An&terior Pr&ximo ltim&o &Adicionar Re&mover Alt&erar &Imprimir &limpar &Sobre &Fechar

Na propriedade Name do formulrio digite FrmFunc e na propriedade Caption digite "Cadastro de Funcionrios". O resultado obtido dever ser o formulrio abaixo:

Aps termos construdo a tela, deveremos desenvolver os menus. Para isto, voc dever clicar no menu Tools e escolher o item Menu Editor. A outra maneira clicando sobre a terceira cone da barra de ferramentas do Visual Basic.

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

78

ou

Confira abaixo a tela que se abrir:

Nesta tela voc dever cadastrar todos os menus que seu software ir precisar e os tens que devero estar contidos nesses menus. Abaixo esta a relao dos menus e tens a serem criados.

Caption &Registros &Adicionar Re&mover


Co nt r o la nd o a p o r ta p ar ale la

Name mnuregistros mnuadicionar mnuremover


P r o f Fel ip e Di a s

Atalho F2 F3 79

Alt&erar &Limpar &Imprimir &Fechar &Navegar &Primeiro An&terior Pr&ximo ltim&o Aj&uda &Sobre o Sistema

mnualterar mnutraco1 mnulimpar mnuimprimir mnutraco2 mnufechar mnunavegar mnuprimeiro mnuanterior mnuproximo mnuultimo mnuajuda mnusobre
O resultado obtido dever ser:

F4 F5 F6 F12 Ctrl+P Ctrl+T Ctrl+X Ctrl+O F1

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

80

Obs: No necessrio deixar espaos no topo do formulrio para que os menus se encaixem posteriormente, o prprio menu se encarrega de empurrar todos os objetos contidos no Form para baixo. Feito isto, adicione mais um form no projeto. Para isto, voc dever clicar no menu Project e escolher o item Add Form. A outra maneira clicando sobre a segunda cone da barra de ferramentas do Visual Basic.

ou

O resultado ser:

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

81

E tambm na janela de projetos:

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

Name Image1 lblinformacao cmdvoltar

Caption - Text Sistema de Cadastro de Funcionrios produzido no curso de Visual Basic 6.0

&Voltar

Na propriedade Name do formulrio digite FrmSobre e na propriedade Caption digite "Sobre o Sistema". O resultado obtido dever ser o formulrio abaixo:

Aps termos construdo as telas, deveremos passar para a parte da programao. Para gerar a programao, devemos clicar duas vezes no objeto desejado. A programao fica por sua conta, se necessrio pea ajuda.
Co nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

82

No momento de salvar, o nome a ser dado ao projeto PrjFunc. Obs: os programas relacionados ao Hardware sero passados durante as aulas!!!

Co nt r o la nd o a p o r ta p ar ale la

P r o f Fel ip e Di a s

83