Control an Do a Porta Paralela

Embed Size (px)

Citation preview

Controlando a Porta Paralela

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

P r o f Fel ip e Di a s

1

Apostila de PM Programao para ManufaturaContedo* Comunicao atravs da porta paralelaCOMUNICAO 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

DescrioEnvia 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

2

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

3

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 dosCo nt r o la nd o a p o r ta p ar ale la P r o f Fel ip e Di a s

4

diodos, isto , possuem polaridade 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 EventosAo 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 ObjetosOutra 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

5

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

6

Barra de ObjetosEssa 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 PropriedadesAs 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 ProjetosEssa 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

7

Janela de CdigoEssa 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-RotinasAs 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

8

Agora vamos colocar em pratica!

Visual Basic Comunicao Porta paralelaComo 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

9

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

MenusMenu FileVoc 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 EditAbaixo 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 ProjectO 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-InsO 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

JanelasJanela 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 UtilizadosOs 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

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

Vamos detalhar os principais comandos:

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

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

DescrioExpresso 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 DescrioExibe 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 ValoresA 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.

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

SintaxeInputBox(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 ... ENDIFCondicionalmente executa uma seleo de comandos baseados no valor de uma expresso lgica. Sintaxe IF Expresso [THEN] Comandos [ELSE Comandos] ENDIF Argumentos ExpressoCo 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 - EndUnloadO 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.

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

ComentriosComentrios 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 BasicPropriedade, 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 outeclado 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" doCo 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

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

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

ControlesSo 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. MdulosSo 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 ProjetoH 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: AesOcorre 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. KeyUpOcorre 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.

ControlesTodos 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

AesEscolhe 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

AesSe 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

AesDefine 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 EnabledFont 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 computadorCo 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

AesValor 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

AesFigura 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

AesCom 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, istopoder 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

AesDetermina 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

AesDetermina 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

AesFigura 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

AesEscolhe 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 Textqueremos 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

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

As Propriedades Principais do VScrollBar

Propriedades Max Min

AesValor 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

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

LabelLabels 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 LabelPara 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 TextoA 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 WordWrapPelo 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 AcessoSelecione 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 PropostoSiga 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

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

FrameFrames 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 FormulrioQuando 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 FramePara 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 FramePara 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 BoxO 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 PropriedadeA 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 ClickPorm 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 tecladoO 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 PropostoSiga 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.

OptionButtonUsualmente, 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 PropostoSiga 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.

TimerO 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 realizadaCo 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 TimerUm controle timer tem duas propriedades fundamentais:

Propriedade Enabled Interval

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

VariveisO 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 VariveisEmbora 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 VarivelDois 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. EssasCo 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 VariveisComo 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 LongEsses 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 DoubleSingle 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 CurrencyO Visual Basic possui um tipo de dado especial para tratamento de valores monetrios, evitando-se assim erros de arredondamento durante clculos matemticos. Esse tipo