apostila visual basic

Upload: lricbol

Post on 31-Oct-2015

38 views

Category:

Documents


0 download

TRANSCRIPT

Visual basic 6

1)O que programao ? ..................................................................................2

2)Apresentando o Visual Basic......................................................................... 3

3)Usando Forms, objetos e controles.............................................................. 5

4)Propridades...................................................................................................... 6

5)O que so Forms(Formulrios)........................................................................7

5)Mtodos.......................................................................................................... ..7

6)Eventos............................................................................................................. 7

7)Controles........................................................................................................ . 8

Conhecendo melhor o formulrio.................................................................. ..11

Boto de Comando..........................................................................................14

Label...............................................................................................................17

TextBox...........................................................................................................18

Option Button..................................................................................................22

Frame..............................................................................................................22

CheckBox........................................................................................................24

ListBox.............................................................................................................25

ComboBox.................................................................................................... ..30

MaskedBox......................................................................................................32

8)Contruindo um Sistema.................................................................................35

19)Menus............................................................................................................37

10)Menus Dinmicos.........................................................................................39

11)O Cdigo........................................................................................................40

12)Variveis........................................................................................................41

13)Modifcadores de Acesso.............................................................................48

14)Constantes....................................................................................................49

15)Operadores...................................................................................................50

16)Comandos Condicionais e Loops..............................................................52

17)Contadores...................................................................................................58

18)SubProcedimentos......................................................................................60

19)Funes........................................................................................................62

20)Matrizes........................................................................................................63

21)Lgica de programao..............................................................................67

22)As Bibliotecas..............................................................................................68

23)Comandos, Funes e Objetos Nativos....................................................69

24)Funes Internas.........................................................................................74

Funes Numricas........................................................................................74

Funes de String.......................................................................................... 75

Funes de Data e Hora.................................................................................78

Funes de Converso...................................................................................81

Funes para Gerenciamento de Matrizes.....................................................83

Funes Lgicas.............................................................................................84

Funes de Disco.............................................................................................85

Funes de Escolha..........................................................................................88

Formatao de Dados.......................................................................................91

25)Banco de Dados

Criando um Banco de Dados............................................................................99

O que so tabelas?...........................................................................................100

Criando uma Tabela......................................................................................101

Criando ndices..............................................................................................106

Definindo a Chave Primria..........................................................................107

Acessando o Banco de Dados atravs do Visual Basic.................................108

26)Objetos de dados

Data Control...................................................................................................118

Data Grid........................................................................................................120

27)Impresso

Printer.............................................................................................................122

Crystal Reports...............................................................................................129

Noes de Linguagem SQL............................................................................145

O que Programao ?

Se voc nunca teve contato direto com programao na vida, talvez esteja se perguntando, o que afinal, programao. Embora talvez, voc nunca tenha programado, tudo que usamos, foi de alguma forma programado. Isso no acontece s no mundo da informtica, mas acontece tambm no mundo real. Por exemplo:

- Nas indstrias, j faz muito tempo que as mquinas vem sendo programadas para fazer determinadas tarefas.

- Na sua casa, Voc com certeza j programou o rdio-relgio para despertar de manh, j deve ter programado o vdeo-cassete e agora o DVD.

- Um automvel, por exemplo, pode ser programado para limitar a velocidade mxima atravs de um chip e para injetar mais gasolina depois que ele atingir uma velocidade X.

Como voc pode ver, quase tudo a nossa volta foi de uma certea forma programado e com a informtica assim tambm. OS famosos softwares que todo mundo usa (Windows, Word, Excel, etc..) s existem por que foram programados.Como programamos um software?

Atravs de instrues em conjunto, que formaro o cdigo fonte

dele.

Exempo de um cdigo :

Public Sub Main()

Msgbox Hello, World

End

End sub

Claro, que neste exemplo estou usando comandos do Visual Basic, que talvez alguns de vocs no conheam. No se preocupe em entender esse cdigo agora. Vamos agora usar comandos fictcios para ilustrar o que fizemos neste exempo:Ao iniciar()

Mostrarmensagem Hello,World

Fim

FinalDoEvento

No necessrio ser nenhum gnio para entender o que msgbox e end do exemplo anterior faziam. Pois se olharmos o ltimo exemplo , notamos que no lugar de msgbox colocamos mostrarmensagem e no lugar do end usamos fim. O Interpretador ir ler a primeira instruo(msgbox) e ir exibir uma mensagem dizendo:Hello,World e, logo aps encerrar o programa com o End. O interpretador sempre segue uma ordem lgica para ler as intrues, ento no podemos colocar tudo de forma desordenada no cdigo do programa, devemos colocar uma a uma, na ordem que precisamos que ele leia primeiro. Mais tarde veremos comandos condicionais e de lao para manipular essa execuo. Um bom programador tem que ser curioso. Deve gostar de saber como as coisas funcionam debaixo da cap, no deve se preocupar em travar a mquina com loops infinitos(se voc no sabe o que loop, veremos mais tarde) ou de qualquer outra forma. Programao uma arte. Envolve criatividade, anlise , dedicao e muita pacincia.

Apresentando o ambiente do Visual Basic 6

Ao abrirmos o Visual Basic, ele abrir uma janela nos perguntando o tipo de projeto a qual desejamos criar.

No momento nos limitaremos somente a usar o padro Standard Exe, que o que usualmente usamos na maioria dos casos. Ele abrir um projeto vazio, com os controles nativos do Visual Basic esquerda, um formulrio e suas respectivas propriedades a direita.

Vejamos na figura: Figura 1 Form(Formulrio)

Usando Forms, Objetos e ControlesObjetos Comearemos pelos Objetos j que os demais(Forms e Controles) Tambm se enquadram como objetos. Devemos nos acostumar com os objetos, pois estaremos sempre cercado deles. Qualquer Boto, Form, Relatrio, Controles, entre outros se enquadram como objetos.

Na figura abaixo temos exemplos de objetos :

Figura 1Todos os objetos tem propriedades, eventos e mtodos a eles associados. Veremos mais tarde o que so mtodos, eventos e propriedades dos objetos. No entanto o que necessrio saber agora o que so objetos. Vemos que objeto tudo aquilo que contem mtodos, eventos e propriedades.O que so Forms (Formulrios)? Na verdade, quase todas as janelas que vemos nos aplicativos so Forms(Formulrios). Ele serve de base para colocarmos nossos controles. Na figura 1 (Exemplo anterior), vemos que existe um formulrio, no nosso caso(Form1), com controles dentro dele(Caixa de texto, Lista e Boto).

Os forms(Formulrios), como qualquer objeto, possuem mtodos, eventos e propriedades a qual veremos mais tarde.

O que so Propriedades?

Propriedades, como o prprio nome sugere, so os atributos que podemos definir para cada objeto, seja um formulrio , controle, etc...

Quando selecionamos um objeto, no Visual Basic, aparecer no canto direito da tela uma janela onde poderemos definir as propriedades para esse objeto. Podemos definir a cor, o nome e muitas outras propriedades.

Algumas propriedades de alguns objetos podem ser definidas em tempo de execuo, outras porm so somente leitura, ou seja, podemos verificar os valores de tais propriedades, mas no podemos modic-los. Para atribuir um valor de propriedade a um objeto em tempo de execuo usamos o nome do objeto , seguido de ponto, o nome da propriedade, o sinal de igual e o valor que voc quer atribuir.

Exemplo :ObjetoTal.Cor=AzulClaro, que o ObjetoTal e a propriedade Cor desse objeto so fictcios. Um Exemplo real seria :

Text1.Text=Exemplo

No se preocupe em entender o que quer dizer a propriedade Text, mas sim em entender apenas como se faz para definir as propriedades em tempo de execuo.

importante ressaltar que cada objeto tem propriedades diferentes. Claro que todos tem propriedades em comum, mas um tipo de objeto sempre ter propriedades diferentes de outro tipo.

Mtodos

Mtodos so aes que agem sobre os objetos, por exempo, se temos um objeto carro, teramos a propriedade Cor semdo como Azul. Podermos ter um mtodo chamado Acelerar e outro Freiar. Poderamos tambm ter um mtodo abastecer. Em exempo prtico seria termos um formulrio chamado Form1. Existe um mtodo chamado Show que agem sobre formulrio e outros objetos. Ele serve para exibir um formulrio. Como faramos para exibir o nosso formulrio(Form1)?

Form1.Show

Ser exibido o formulrio. Este o procedimento para se aplicar os mtodos. Assim como as propriedades, cada objeto tem vrios mtodos diferentes. Podemos tambm passar parmetros para esses mtodos. Veremos isso mais tarde

Eventos

Vamos tomar um exemplo prtico. Voltaremos ao nosso exemplo do automvel. Assim como podemos atribuir sua propriedade cor para Azul, executar um mtodo Acelerar, podemos ter um evento

Ao Bater. Um evento gerado quando acontece algo com o objeto, por exemplo, se tivermos um Caixa De Texto e clicarmos em cima dela o Objeto TextBox(Caixa de Texto) vai gerar um evento chamado Click(). Dentro deste evento colocaramos um bloco de cdigo com as instrues que queremos que o programa faa cada vez eu o usurio clicar na Caixa de Texto. Assim como este , exitem muitos outros eventos e cada objeto tem seus eventos em comum, assim como tem eventos prprios de cada objeto.

Veremos mais tarde detalhadamente vrios tipos de eventos.

Os Controles

Ao abrirmos o ambiente do Visual Basic, podemos ver esquerda a Caixa de Ferramentas.

Esses controles que voc est vendo na figura so os controles nativos do Visual Basic. Podemos adicionar mais controles a esta Caixa de Ferramentas. Veja como :

Ir aparecer uma lista com todos os controles disponveis. Para que eles apaream na nossa Caixa de Ferramentas devemos selecion-alos nessa lista. Um controle, na verdade, representado por um Arquivo com extenso OCX. Podemos ver nessa janela que o Visual Basic Mostra o local onde determinado componente, ou seja , o arquivo OCX, se encontra. Se o controle que voc procura no se encontra nessa lista, basta voc saber onde o arquivo OCX dele se encontra, podendo assim adicion-lo a lista.

Conhecendo melhor o Form(Formulrio)

Veremos agora as principais propriedades, mtodos e eventos do Form. Comeremos com as principais propriedades. So elas:

Name Define o nome do formulrio. Um nome de objeto deve comear obrigatoriamente com uma letra, mas tambm pode conter nmeros . Espaos em branco e caracteres como(#$&+-^) no so permitidos.

Caption a ttulo do formulrio que aparece no seu topo. Podemos colocar qualquer valor nessa propriedade.

Appearence Define se o mode de exibio ser 3D ou Normal.

BakColor- Muda a cor de fundo do formulrio.

Como voc pode ver, voc pode optar entre 2 sistemas de cores.

O Palette e o System , sendo que o System mostra o sistema de cores do Windows, no caso de voc querer fazer uma aplicao bem padro Windows, enquanto o Palette ir lhe mostrar vrias outras cores e voc pode personalizar suas prprias cores tambm.BorderStyle: Muda o tipo de borda do formulrio. None: sem borda, sem barra de titulo, sem menu de controle, sem boto maximizar e sem boto minimizar, e no pode redimensionar a janela.

Fixed Single: Borda fixa. Aceita o Menu de Controle, Maximizar, Minimizar, barra de ttulo, mas no pode ser redimensionado.

(Default) 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 dialogo 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 a barra de ttulo e o boto Fechar prprio do Windows 95. Este tipo de formulrio no aparece na barra de tarefas do Windows.

Sizable ToolWindow: No possui o menu de controle, o boto Maximizar e o boto minimizar. Pode ser redimensionada. Aparecer somente a barra de ttulo e o boto Fechar prprio do Windows 95. Este tipo de formulrio no aparece na barra de tarefas do Windows.

ControlBox: Retira ou coloca o menu de controle e os botes maximizar, minimizar e fechar da janela.

Enabled: Se esta opo estiver com False, ou seja, estando o Enabled desabilitado, isto indicar que nenhum objeto desta janela, e nem a prpria

janela, poder responder a eventos gerados pelo usurio, como clicar do mouse, pressionamento de teclas, etc.

Font: Escolhe a fonte de letra padro que ser usada para todos objetos inseridos neste formulrio.

Icon: Nesta propriedade escolhemos um arquivo de cone para associar a esse formulrio. Esse cone o que vai aparecer quando a janela for minimizada e no lado esquerda da barra de ttulo ( Menu de Controle ).

KeyPreview: determina se os eventos do teclado no formulrio sero executados antes dos eventos correspondentes aos Objetos inseridos no formulrio.

MaxButton: Habilita ou no o boto de maximizao.

MDIChild: Determina se a janela ser uma janela filha. Ou seja, ter uma outra janela mestre que agrupara o Form que se esta criando.

MinButton: Habilita ou no o boto de minimizar.

MouseIcon: Sempre que o mouse for movido em cima do formulrio, o cone associado a esta propriedade aparecer (desde que a propriedade MousePointer esteja customizada).

MousePointer: Nesta propriedade especificamos o tipo de ponteiro que o mouse ter quando se mover sobre o formulrio. Veja os tipos existentes:

0(Default) Ponteiro padro.

1Ponteiro em forma de seta

2Ponteiro de seleo exata

3Seleo de escrita

4cone

5Seleo de Mover Objetos

6Redimensionamento na diagonal

7Redimensionamento na vertical

8Redimensionamento na diagonal

9Redimensionamento na horizontal

10Seleo alternada

11Sinal de ocupado.

12No disponvel ( Ocupado )

13Trabalhando em segundo plano ( Somente 32-bit Visual Basic.)

14Seleo de Ajuda. (Somente 32-bit Visual Basic.)

15Todos os Tamanhos. (Somente 32-bit Visual Basic.)

99Aparece o cone escolhido na propriedade MouseIcon

Picture: Inseri uma figura em nosso formulrio como papel de parede.

ShowInTaskbar: Habilita ou no a possibilidade da janela aparecer na barra de tarefas do Windows.

Visible: Determina se quando executarmos o programa essa janela ir ficar visivel ou invisvel.

WindowState: Determina se, quando executarmos o programa, a janela ir aparecer na tela do computador Normal, Maximizada ou Minimizada.

Bem, agora que voc j conhece as principais propriedades do Form, vamos Brincar um pouco.

Abra o Visual Basic e crie um projeto padro. Voc ver que por padro o Visual Basic j coloca um Form no projeto. Ento modificaremos este Form. Altera as seguintes propriedades:Name = FrmCadastro

Caption=Cadastro De Clientes

BorderStyle = 1 Fixed Single

Altere a cor de fundo do formulrio. Associe um cone ao formulrio e coloque uma imagem de fundo.

Feito isso, rode o programa teclando . Feito isso, veja o que acontece. Depois altere as propriedades, at mesmo as que no conhece. Procure conhecer todas, mude-as , execute o programa e veja o que acontece.

CommandButton ( Boto de Comando)

O Boto de Comando utilizado pelo usurio para executar determinadas aes. Quem determina essas aes o programador atravs de instrues associadas aos eventos do CommandButton. Existe um padro para se utilizar os botes de comando. Por exemplo. Em um Form(Formulrio), com vrios botes procure sempre deix-los do mesmo tamanho, mesmo que o texto deles seja de tamanhos diferentes.

Errado Certo Vamos as propriedades do CommandButton ou Boto de Comando:

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

Caption: O ttulo que ser exibido dentro do boto.

Default: Estando o boto com essa propriedade como True indica que este boto ser o Padro da janela, e sempre que apertarmos a tecla Enter ser como se tivssemos apertado o boto.

Enabled: Determina se o boto ser habilitado para pressionamento por parte do usurio ou no.

Font: Escolhe a fonte de letra que o Caption ter.

Name: O nome que daremos para o Objeto boto de comando.

Visible: Determina se o boto ser visvel para o usurio quando o programa estiver em execuo.

Style: Escolhe se o boto ter elemento grfico em seu interior. Se escolher Style do tipo "Graphical" o CommandButton aceitar figuras, e elas devem ser inseridas na propriedade Picture do objeto CommandButton.

TabStop: Quando temos um formulrio com diversos controles, podemos nos mover atravs desses controles usando o teclado, atravs da tecla TAB ou atravs de outras teclas, como veremos mais tarde. Quando a propriedade TabStop est desabilitada, ou seja com o valor False ento, ao nos movermos atravs dos controles o Boto ser ignorado e o foco movido ao controle seguinte.TabIndex: o Movimento de troca de foco, que vimos na propriedade TabStop tem uma ordem, e essa ordem seguida pela propriedade TabIndex do boto, a qual devemos atribuir um numero, esse nmero ser usado como a ordem que o foco percorrido pelos controles, ou seja, se tivermos um controle com a propriedade TabIndex definido como 1, e outro com a propriedade TabIndex definido como 2, o que tem o nmero 1, receber o foco primeiro do que tem o nmero 2 na propriedade TabIndex.

ToolTipText A no muito usada, mas no menos importante propriedade ToolTipText, quando no est vazia exibe uma pequena ajuda sobre o controle, quando o usurio passa o mouse em cima do respectivo controle. O texto que aparecer ser o definido na propriedade ToolTipText.Vamos agora um exemplo prtico envolvendo Botes de Comando:- Crie um Form e com as seguintes propriedades:

Caption = Exemplo do CommandButton

Name = FrmExemplo

- Insira neste Form 3 botes de Comando com as seguintes propriedades:

Boto 1:

Name = CmdOk

Caption = OK

Boto 2:

Name = CmdCancelar

Caption = Cancelar

Boto 3:

Name = CmdSair

Caption = Sair

Feito isso, d um duplo click no objeto CmdOk. Voc ver que ao clicar nesse boto abrir uma janela de cdigo, correpondente ao evento Click() do boto. Esse evento acionado toda vez que o usurio clicar no boto.

Dentro deste evento vamos inserir a seguinte linha:Msgbox Voc Clicou OK

Faa o mesmo processo com os demais botes. Apenas troque o texto que exiet dentro das aspas pelo texto de sua preferncia. Ao fazer esse processo com o boto CmdSair, insira uma linha a mais:

Unload me

Execute o projeto e veja o que acontece. Voc viu que criar a interface e fazer com que as coisas funcionem no nada difcil. Basta conhecer bem as propriedades, eventos e mtodos dos objetos.

Vamos agora conhecer os principais eventos do objeto CommandButton. Devo lembrar que muitos desses eventos e at mesmo propriedades, dependo do caso at mtodos, no so exclusivo do CommandButton , ou seja, outros objetos tambm tem as mesmas particularidades.

Eventos do CommandButton A maioria dos eventos do CommandButton no so usados, por isso, vamos nos reter apenas nos mais importantes. So eles:

Click() Esse o mais importante de todos os eventos do CommandButton. Acontece sempre que o boto clicado.

GotFocus() Um evento que acontece sempre que o CommandButton recebe o foco.

LostFocus() Esse evento chamado sempre que o CommandButton perde o foco.

MouseMove() chamado toda vez que o usurio mover o mouse por cima do CommandButton. Na prtica isso no muito usado, sendo que na maioria das vezes, um evento desses seria til apenas quando quisssemos que o evento informasse a funo do boto ao usurio, mas isso pode ser feito facilmente usando a propriedade ToolTipText do boto.

Mtodos

O CommandButton tem 7 mtodos, mas na prtica, dificilmente usamos todos. Na verdade, usamos quase sempre apenas um deles:

SetFocus - Este mtodo que no s usado por CommandButtons, mas na verdade, usado por quase todos os controles, tem a funo de passar o foco para o objeto que quisermos. Exemplo:CmdOk.SetFocus

Ir passar o foco para o objeto CmdOk.

O Label

No h muito segredo para se trabalhar com Labels. O Label na verdade, no passa de uma legenda que inserimos no Form. Sua finalidade inserir um texto no formulrio. Isto nos ser til quando precisarmos fazer um cadastro ou coisa parecida. Vamos as suas principais propriedades:Name O nome que ser usado pelo Label.

Caption Essa a propriedade principal do Label. A legenda que o Label ter.

Alignment: Determina o alinhamento que o texto ter dentro do label.

AutoSize: Com esta propriedade habilitada indicamos ao Controle para automaticamente dimensionar seu tamanho ao tamanho do texto do label.

Note na figura que, quando o AutoSize foi passado para True, as marcas de seleo do label foi ajustado para o tamanho do texto label1.

BackColor: Escolhe a cor de fundo que envolver o label.

BackStyle: Escolhe entre o fundo Transparente ou Opaco para o label.

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

Enabled: Habilita ou desabilita o objeto. Quando esta em False fica com a cor de seu contedo acinzentada.

Font: Escolhe a fonte de letra que ter o texto digitado na propriedade Caption.

ForeColor: Escolhe a cor da fonte de letra

Name: Nomeia o Objeto label. Como j foi dito importante que todos os objetos seja nomeado. A inicial do label lbl.

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

WordWrap: Quando o AutoSize esta em true, no possvel expandir o texto digitado na propriedade Caption em outras linhas. Mas se passarmos essa propriedade WordWrap para True isto poder ser feito, bastando para isto dimensionarmos o label.

O TextBox

O TextBox , com certeza, um dos controles mais importantes que voc vai usar. Formulrios de cadastro, entradas de dados e at mesmo consultas necessitam que voc entre com os dados. Claro que temos outros controles disponveis para isso, mas na maioria dois casos, usamos o TextBox. Vamos as suas principais propriedades:

BackColor: Escolhe a cor de fundo da Caixa de Texto. Geralmente branco.

BorderSytle: Tipo da borda: Fixa e simples, ou sem borda.

Enabled: Estando False o objeto no estar habilitado para interagir com o usurio.

Font: Escolhe a fonte de letra que ser mostrada dentro da caixa de texto.

ForeColor: Escolhe a cor da fonte de letra.

Locked: Estando em false trava qualquer digitao na caixa de texto

MaxLength: Quantidade mxima de caracteres dentro da caixa de texto.

MultiLine: Habilita a possibilidade de se digitar mais de uma linha na caixa de texto.

Name: Nomeia o objeto TextBox. Geralmente com a inicial txt. Exemplo: Se formos usar essa caixa de texto para que o usurio digite o nome do paciente, poderamos abreviar assim: txtNomePaciente.

PasswordChar: Se durante a digitao de qualquer dado na caixa de texto, quisermos que o Visual Basic mostre outro caractere no lugar do caractere digitado, s especificarmos aqui qual queremos que seja mostrado. Muito usado para digitao de senhas.

ScrollBars: Estando a propriedade MultiLine habilitada, interessante colocarmos um ScrollBars na caixa de texto, pois ele acrescentar uma barra de rolagem que poder ser:

rolagem que poder ser:

Text: A propriedade Text a mais importante deste Objeto. Todo o texto digitado pelo usurio dentro da caixa de texto incorporado nesta propriedade.

Eventos do TextBox

Irei citar aqui alguns dos principais eventos relacionados a caixa de texto. Lembramos que todos os Eventos ocorre quando o usurio faz alguma ao. Por exemplo: se ele aperta um boto aciona o Evento Click, se ele digita algo numa caixa de texto, aciona o evento Change e KeyPress, se ele movimento o mouse sobre um objeto, aciona o evento MouseMove.

Vamos explicar esses eventos aqui, mas antes importante entendermos que cada movimento ou ao do usurio dispara um evento no programa. Mas esses eventos somente tero alguma reao se programarmos isto na janela de codificao.

Change: Ocorre sempre que o usurio altera o valor contido na caixa de texto.

Click: Ocorre quando o usurio pressiona o boto esquerdo do mouse sobre a caixa de texto.DlbClick: Se o usurio apertar duas vezes o boto esquerdo do mouse sobre a caixa de texto

KeyDown: Ocorre quando o usurio aperta uma tecla no teclado.

KeyUp: Ocorre quando o usurio solta a tecla apertada.

KeyPress: Ocorre quando uma tecla pressionada e solta. Como argumento possui uma varivel cujo contedo a tecla pressionada (cdigo correspondente na tabela ASCII).

Cod.Cod.Cod.Cod.

0 32Espao64@ 96`

1 33! 65A 97a

2 34" 66B 98b

3 35# 67C 99c

4 36$ 68D 100d

5 37% 69E 101e

6 38& 70F 102f

7 39' 71G 103g

8Backspace 40( 72H 104h

9Tab 41) 73I 105i

10 42* 74J 106j

11 43+ 75K 107k

12 44, 76L 108l

13Enter 45- 77M 109m

14 46. 78N 110n

15 47/ 79O 111o

16 480 80P 112p

17 491 81Q 113q

18 502 82R 114r

19 513 83S 115s

20 524 84T 116t

21 535 85U 117u

22 546 86V 118v

23 557 87W 119w

24 568 88X 120x

25 579 89Y 121y

26 58: 90Z 122z

27Esc 59; 91[ 123{

28 60 94^ 126~

31 63? 95_ 127

Estes caracteres no so aceitos pelo Microsoft Windows.

MouseMove: Ocorre quando movemos o ponteiro do mouse sobre a caixa de texto.

MouseDown: Ocorre quando o usurio aperta o boto do mouse (seja da direita ou da esquerda) sobre a caixa de texto.

MouseUp: Ocorre quando o usurio solta o boto do mouse (seja da direita ou da esquerda) sobre a caixa de texto.,

Bem, agora que voc j conhece as propriedades do TextBox, assim como os seus eventos, vamos colocar em prtica tudo isso. Que tal um exemplo envolvendo Labels, TextBoxs e CommandButtons ? Lembra-se daquele formulrio que fizemos como exemplo do CommandButton ?

Vamos melhor-lo:

Quanto aos botes, voc pode deixar todos. Apenas os arraste para o canto direito do formulrio. Coloque 3 Labels. Voc ver que ao colocar a Label dentro do formulrio ela tem a propriedade Caption

Definida como o nome do Label. Voc deve troc-la. Coloque uma com o Caption = Cdigo, outra =Nome outra = Endereo. O formulrio deve ficar assim :

Agora coloque 3 TextBoxs na seguinte ordem, de cima pra baixo:

TxtCodigo

Text=

TxtNome

Text=

TxtEndereco

Text=

Defina para que a TxtCodigo aceita no mximo 5 caracteres e txtnome no mximo 20. Defina para que ao pressionarmos a tecla o foco passe primeiro pelas caixas de texto, de cima para baixo, e depois pelos botes, novamente, de cima para baixo. Veremos mais tarde como fazer as TextBoxs aceitarem somente nmeros, ou fazer o inverso(fazem com que elas no aceitem nmeros) atravs do evento keypress ou keydown.OptionButton

O OptionButton ou boto de opo serve para escolhermos entre vrias opes dentro do formulrio. Podemos ter vrios dentro do formulrio, mas apenas um poder ser marcado, pois quando marcamos um, o outro automaticamente desmarcado. Para usarmos vrios grupos de opes dentro do mesmo formulrio, teramos que usar um Frame, Objeto que veremos mais tarde. Na figura acima voc pode ver dos grupos de OptionButtons operando independentemente, fazendo uso dos Frames. Se eles estivessem soltos no formulrio, s poderamos marcar uma opo, ou seja, ou marcaramos o Estado Civil ou marcaramos o Sexo.

Vejamos agora as principais propriedades do Frame:

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

Caption: O texto que ser anexado ao Objeto.

Enabled: Habilita ou no o objeto. Estando desabilitado o usurio no poder selecionar a opo, e a cor do texto ser acinzentado.

Name: O nomeia o Objeto. A inicial abreviada que se usa opt.

Value: True para quando a opo esta selecionada e False para quando a opo no esta selecionada.

Eventos do OptionButton

Os eventos do OptionButton so praticamente os mesmo usados pelas TextBox, sendo que no h nenhum em especial.

O Frame claro que, depois do exemplo anterior no poderamos deixar de conhecer o Frame. Esse controle, como voc viu anteriormente serve para organizarmos melhor os controles dentro do formulrio. Todos os controles existentes dentro do Frame podem ser desabilitados ou habilitados definindo a propriedade Enabled de Frame como True ou False. Alm desses recursos de aninhar controles, o Frame tambm traz uma interface mais limpa para o usurio. Vamos conhecer algumas de suas propriedades:Caption: Coloca um texto no topo da moldura. No obrigatrio.

Enabled: Determina se todos todos os objetos colocados no interior da moldura estar ou no disponvel para o usurio.

Name: Nome dado ao objeto. A inicial abreviada fra. Cuidado para no colocar frm a abreviatura do Objeto Form.

Um exemplo de Frame com a propriedade Enabled definida como False:

Como voc pode ver o Frame da esquerda est com a propriedade Enabled definida como False. Estando assim no conseguiremos acessar nem mesmo os controles que esto dentro do Frame.

Esse recurso muito til quando queremos restringir ao usurio o acesso a certas opes.

O frame, assim como o OptionButton, tambm no possui nenhum evento em especial, sendo a maioria idnticos aos do OptionButton.CheckBox

A CheckBox ou Caixa de checagem utilizado para marcar opes. No funciona igual ao OptioButton, pois com a CheckBox podemos marcar vrias opes, uma, ou nenhuma opo, sendo que com o OptionButton, podemos selecionar apenas uma.

Alignment: Especifica se o texto ficara do lado esquerdo da caixa.

Caption: O texto anexado ao Objeto CheckBox.

Enabled: Habilita ou no esse Objeto. Estando desabilitado no aceitar que o usurio faa evento com a caixa de checagem.

Font: Escolhe uma fonte de letra para o texto digitado no Caption

Name: Nomeia o Objeto. A inicial abreviada para este tipo de controle chk.

Value: Determina o estado o objeto: 0 - Unchecked, 1 - Checked e 2 - Grayed.

Eventos O CheckBox tem praticamente os mesmo eventos do OptionButton.Bem, agora que j conhecemos vrios controles, assim como suas respectivas propriedades, mtodos e eventos, vamos criar um Form utilizando vrios desses objetos. Faremos o seguinte:

Primeiro Crie um Form com as fontes, cores e cones de sua preferncia. Ser um cadastro de clientes. Nesse cadastro ser necessrio:

Nome, endereo, bairro e cidade. Para isso sero necessrias 4 TextBoxs e 4 Labels, Certo ?

Nomeia-as e defina as suas propriedades de acordo com o que voc acha necessrio(No esquea que voc vai se referir aos controles dentro do cdigo atravs dos seus respectivos nomes, por isso siga a regra de nomenclatura adequada ou utilize um nome que voc tem certeza de que no ir esquecer).

Segundo Insira 2 Frames: Um que ter um grupo de opes com OptionButtons e se referir ao sexo do cliente, que obviamente ter 2 opes(Masculino ou Feminino). O outro Frame se referir ao estado civil do cliente. Teremos as seguintes opes:1- Solteiro

2- Casado

3- Divorciado

4- Vivo

Todas essas opes sero representadas pelos OptionButtons que voc vai inserir dentro do respectivo Frame. Siga as regras de nomenclatura padro para atribuir os nomes aos Frames e Optionbuttons.

Terceiro Insira 3 botes no formulrio, um boto de Ok, um boto de Cancelar e um boto de Sair. Defina as suas propriedades (nomes, fontes, legendas, cones, etc...).

Quarto Insira um CheckBox, que vai ser utilizado para saber se o cliente reside em Cachoeira do Sul. A legenda desse CheckBox poderia ser Reside em Cachoeira do Sul ou qualquer outra de sua preferncia desde que pergunte se o cliente mora ou no em Cachoeira do Sul.

Quinto Deixe todos os controles de modo que o foco passe primeiro pelas TextBoxs, de cima para baixo, depois pelas opes, da esquerda para direita, e depois pelos botes, de cima para baixo.No evento Click() do Boto OK coloque o seguinte cdigo:

MsgBox OK

Prossiga com os demais da mesma forma, trocando apenas o OK pelo nome do boto. Sexto - Bem, agora que j criamos a interface vamos fazer com que as coisas funcionem. Se voc observar no Form, poderemos ver que existe uma Caixa de Texto, onde perguntado ao usurio a cidade do cliente. No entanto, existe um CheckBox ou caixa de checagem que pergunta ao usurio se o cliente reside em Cachoeira do Sul. Ora, se soubermos que o cliente reside em Cachoeira do Sul no seria necessrio informar a cidade.Para isso, ser necessrio associar a um evento do CheckBox, uma instruo que limpasse a caixa de texto, para caso j tivssemos digitado alguma valor como Cidade, e desabilitasse a mesma para que no colocssemos nenhum valor, sendo que o cliente reside em Cachoeira do Sul. Mos a obra.O ListBox O ListBox ou caixa de listagem uma caixa a qual podemos adicionar itens, remov-los ou selecion-los. O ListBox cria um ndice com o nmero do item selecionado. Este ndice sempre inicia pelo zero, ou seja, se selecionarmos o primeiro item, o nmero dele ser zero. Se selecionarmos o segundo, ele retornar um. Este ndice visvel atravs de uma propriedade em tempo de execuo que veremos mais tarde.

O ListBox til para selecionamos nomes ou outro tipos de dados, remov-los ou adicion-los de acordo com a nossa necessidade.

Vamos conhecer agora as suas propriedades:

Columns: Determina a quantidade de colunas que a caixa de lista ter. Quando esta com 0 (zero) significa que ter somente uma coluna e a barra de rolagem ser vertical. Se o valor desta propriedade for 1 ser formado tambm somente uma coluna mas a barra de rolagem ser horizontal. Valor 2 significa que os itens inseridos no ListBox sero ajustados em 2 colunas, e assim por diante.

Enabled: Habilita ou no o ListBox para o usurio selecionar algum item no objeto.

IntegralHeight: Determina a possibilidade dos itens dentro da caixa de lista ser exibido de forma parcial.

List: o Local onde digitamos os itens que estaro dentro do ListBox.

MultiSelect: Quando esta propriedade esta habilitada significa que a caixa de lista aceitar mltiplas selees, ou seja, poder ser selecionado mais de um tem. As opes so 0 - None para seleo somente de 1 tem. 1 - Simple para seleo de vrios itens usando apenas o clicar do mouse ou barra de espao. 2 - Extended o padro do Windows para multiplas selees. Para selecionar mais de 1 item usa-se a combinao de tecla CTRL + Click do mouse ou barra de espao.

Name: Nome que o Objeto ListBox ter. A abreviao padro lst.

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

Style: O Estilo Standard o padro, a partir do Visual Basic 5 acrescentou-se o Estilo CheckBox, onde os itens existentes no ListBox so acompanhados de um quadradinho do lado esquerdo para se fazer a seleo dos itens. Para multiplas selees esse tipo de ListBox mais intuitivo para o usurio. Vamos agora conhecer as propriedades em tempo de execuo. Essas propriedades so de extrema importncia para manipularmos os dados existentes no ListBox, pois nos permitem saber o texto do itemselecionado, nmero do ndice do itemselecionado, nmero de itens existente no ListBox,etc...

So elas:

ListCount: Retorna a quantidade de itens existente dentro de um ListBox.

ListIndex: Retorna o nmero correspondente ao ndice do item selecionado.

NewIndex: Retorna o nmero correspondente ao ndice do ultimo item inserido no ListBox.

SelCount: Quando a propriedade MultiSelect esta ativada, possibilitando a seleo de vrios itens dentro da caixa de lista, o SelCount retorna a quantidade de itens que foi selecionado.

Selected: Retorna True ou False sinalizando se algum item foi selecionado. necessrio informar o ndice correspondente. Exemplo: Selected(2): Se o item que possui o ndice 2 for selecionado retornar True, se qualquer outro for selecionado retornar False.

Text: Retorna o texto do item selecionado. No necessita de ndice.

List: Retorna o texto do item especificado no ndice. Exemplo: List(2) ir mostrar o texto existendo na lista referente ao ndice 2.

Eventos do ListBox

De novo aqui s temos o evento DblClick(), que gerado toda vez que dermos um duplo clique sobre um item do ListBox.

Procure usar sempre o DblClick(), e no o evento Click(). Pois para o usurio mais intuitivo dar dois cliques numa caixa de listagem para abrir um certo item do que apenas um.Mtodos do ListBoxAddItem Usamos este mtodo sempre que queremos adicionar um item ao ListBox. A sintaxe usada a seguinte:

ListBoxTal.AddItem Texto a ser adicionado

RemoveItem Este outro mtodo usado para removermos um item do ListBox. A sintaxe seguinte:

ListBoxTal.RemoveItem

Voc pode notar que necessrio informar o ndice do item que se deseja remover. Geralmente para remover um certo item que encontra-se selecionado pelo usurio usamos:

ListBoxTal.RemoveItem ListBoxTal.ListIndex

Usamos ListBoxTal.ListIndex. Usando a propriedade listindex da nossa ListBox conseguimos automaticamente o nmero do ndice selecionado, necessrio para podermos remover o item que precisamos.Clear O mais simples de todos os mtodos do ListBox. Serve para limparmos completamente a nossa caixa de listagem. Sua sintaxe tambm muito simples:

ListBoxTal.Clear

Agora que j conhecemos as principais propriedades, mtodos e eventos dos ListBox, vamos fazer algo que funcione usando-os.

Crie um formulrio, com uma caixa de listagem, uma caixa de texto e 3 botes. Altere as propriedades dessa caixa para que esteja vazia sempre que abrirmos o formulrio. Agora selecione todas as propriedades necessrias para os botes(legenda,nome,etc...) e codifique os seus eventos, de forma que um boto servir para adicionar item, outro para excluir item e outro para limpar a caixa de listagem. Ao clicarmos no boto de AdicionarItem este boto pegaria o texto existente na Caixa de Texto e o adicionaria na Caixa de Listagem. Quando isso fosse feito, a caixa de texto deveria ser limpa para que um novo texto pudesse ser digitado nessa caixa de texto. A interface do formulrio poderia ficar assim:

Claro que voc pode incrementar com algumas legendas para facilitar para o usurio.

Por se tratar de um exemplo, vamos padronizar os nomes dos controles existentes no formulrio:

O boto de AdicionarItem ir se chamar CmdAdd

O boto de RemoverItem ir se chamar CmdRemove

O boto de Limpar ir se chamar CmdLimpa

A Caixa de Texto ir se chamar TxtItem

A Caixa de listagem simplesmente Lista

Bem, vamos ao que interessa. Comearemos primeiramente codificando o boto de AdicionarItem. Para isso, demos um duplo clique no boto de AdicionarItem. Abrir ento a janela de cdigo referente ao evento Click() do respectivo boto. O que precisamos fazer ento?Fazer com que cada vez que clicarmos neste boto ele limpe a caixa de texto.

Primeiro devemos adicionar o texto existente na caixa de texto, para depois limp-lo. Faramos assim:

Vamos agora ao boto de RemoverItem, a qual usaremos o mesmo evento click() para usar as instrues que faro que o item selecionado seja excludo caixa de listagem ao clicarmos na mesma. Para isso usaremos o mtodo RemoveItem do ListBox. Como voc sabe, quando usamos o mtodo RemoveItem necessrio que informemos o nmero do ndice para isso usaramos a propriedades ListIndex do ListBox, a qual retorna em tempo de execuo o ndice do item selecionado. Ficaria assim:

Bem, j codificamos o boto de AdicionarItem, o de RemoverItem, resta apenas o de Limpar a caixa de listagem. O mais fcil de todos. Basta colocar no evento Click() do respectivo boto a linha que usa o mtodo Clear do ListBox:

Voc vai notar que ao tentarmos remover um item sem ter selecionado nada na lista o sistema vai gerar um erro, pois o valor da propriedade ListIndex, que deveria se referir ao ndice do item selecionado estar como -1, isso por qu no h nenhum item selecionado. Logo mais veremos comandos condicionais, a qual poderemos manipul-los para que no deixem esses tipos de erros acontecerem.O objeto ComboBox

O ComboBox ou caixa de combinao uma combinao de um TextBox(caixa de texto) com um ListBox(caixa de listagem). Podemos digitar caracteres dentro dela, alm de podermos teclar na seta que existe sua direita e selecionarmos dados previamente inseridos em sua lista.

O ComboBox de ampla utilizao, pois poupa o tempo do usurio em precisar digitar dados, assim como pode evitar que o usurio digite dados incorretos tambm, alm de ocupar pouco espao no formulrio. Imagine um formulrio enorme com vrios controles e tivssemos que colocar uma lista de nomes para o usurio escolher, uma lista de cidades e uma lista de bairros, ao invs de colocarmos trs ListBox que ocupariam um espao maior poderamos colocar trs ComboBox . Vamos conhecer agora as suas propriedades:

O ComboBox usa as mesmas propriedades que aprendemos para o ListBox. A diferena esta somente em duas que veremos agora.

Style: Aqui escolhemos o tipo de Caixa de Combinao iremos colocar no formulrio:

0 - Dropdown Combo: a opo padro do Objeto. Aqui pode-se digitar qualquer nome na rea de digitao, clicar a seta para baixo e escolher qualquer um dos itens que ele ser automaticamente inserido na rea de texto.

1 - Simple Combo: Caixa de Combinao simples. Aparece em destaque a rea de edio de texto, onde podemos digitar algum item; ou selecionar qualquer um que esteja na caixa de lista, que ser inserido na rea de texto. O boto em forma de seta para baixo no existe neste tipo de ComboBox. Se aumentarmos o tamanho da Caixa de Combinao na vertical, aparecer a lista e esta ficar fixa. Caso deixamos ela somente do tamanho da rea de texto, ento a lista no aparecer, e se quisermos saber quais nomes existe teremos que apertar no teclado a seta para baixo ou para cima, para que os itens existentes dentro da Lista apaream.

2 - Dropdown List: Neste tipo de Caixa de Combinao o usurio pode somente escolher um item relacionado na lista, no podendo digitar nada. A rea de texto no aceitar digitao.

Text: Nesta propriedade digita-se um texto que ficar, como padro, fixo na rea de texto na caixa de combinao. Geralmente deixa-se em branco. Podemos usar essa propriedade tambm, em tempo de execuo, para saber qual texto o usurio digitou ou selecionou.

Mtodos do ComboBox Os mtodos usados pelo ComboBox so os mesmo usados pelo ListBox(AddItem, RemoveItem e Clear). MaskedBox

O MaskedBox aparenta ser uma caixa de texto. A diferena que ele tem vrios recursos adicionais. Ele tem recursos que possibilitam a colocao de uma mscara onde ele s vai aceitar caracteres digitados de acordo com a mscara. Por exemplo, se quisermos que ele aceite apenas nmeros, basta colocar a mscara correspondente que todos os caracteres que no so nmeros sero ignorados automaticamente. Vamos agora conhecer as propriedades:

Este objeto semelhante a uma caixa de texto, entretanto ele possui alguns recursos adicionais, como a possibilidade de colocar uma mscara para o texto que ir ser digitado e validar a digitao automaticamente.

Veja as principais propriedades:

AllowPrompt : Determina se o caractere informado como prompt vlido durante a digitao.

AutoTab : Determina se quando o usurio terminar de preencher a mascara do objeto o foco automaticamente passado para o objeto seguinte, sem necessidade do usurio apertar TAB ou o mouse.

ClipMode : Determina se, diante de um evento de copiar ou recortar dados do objeto Maskedit para a rea de transferncia, devem ser enviados os dados digitados com os caracteres que compem a mscara ou no.

* ClipText : Retorna o texto digitado no objeto sem os caracteres que compem a mscara.

Format : Determina o formato que os dados sero exibidos.

Use a propriedade Format para exibir dados em um formato consistente, ou seja, os dados sero exibidos neste formato, mesmo que o usurio digite os dados diferentemente do formato. Por exemplo, se voc definir a propriedade Format para dd/mmm/yyyy, todas as datas digitadas sero exibidas no formato 18/Set/1995. Se o usurio digitar a data como 18/09/95 (ou qualquer outro formato de data vlido), o Visual Basic converter a exibio para o formato estabelecido, que dia / ms-por-extenso-abreviado / ano-com-4-digitos.

A propriedade Format afeta apenas a maneira como um valor exibido e no como ele armazenado. Da mesma forma, um formato de exibio no aplicado at que o usurio termine a digitao e o controle perca o foco.

Nada exibido no campo para sugerir ou controlar o formato no qual os dados so inseridos.

Se voc precisar controlar a maneira como os dados so digitados, use uma mscara de entrada alm de ou ao invs de um formato de exibio de dados. Se voc quiser que os dados sejam exibidos exatamente como foram inseridos, no defina a propriedade Format.

* FormattedText : Retorna o texto digitado, incluindo os caracteres que compem a mscara.

Mask : Mscara que moldar o controle.

O Visual Basic fornece duas propriedades que produzem resultados parecidos: a propriedade Format e o Mask.

Use a propriedade Mask para exibir caracteres de exibio literais no campo com espaos em branco a serem preenchidos. Por exemplo, se todos os nmeros de telefones que inserir em um campo tiverem o mesmo formato, voc poder criar uma mscara de entrada:

(###) ###-#### ( (___) ___ -____ ( (062) 621-3862

Uma mscara de entrada garante que os dados se ajustem ao formato definido e voc poder especificar os tipos de valores que podero ser inseridos em cada espao em branco. Por exemplo, a mscara de entrada anterior solicita que todas as entradas contenham exatamente os dgitos necessrios para completar um cdigo de rea e nmero de telefone, e que somente dgitos possam ser inseridos em cada espao em branco.

Voc pode definir uma mscara de entrada usando os seguintes caracteres.

0Dgito (de 0 a 9, entrada requerida, sinais de mais (+) e menos (-) no permitidos).

9Dgito ou espao (entrada no requerida, sinais de (+) e menos (-) no permitidos).

#Dgito ou espao (entrada no requerida, os espaos so exibidos como vazios enquanto os dados so editados, mas so removidos quando perde o foco, sinais de mais e menos permitidos).

LLetra (de A a Z, entrada requerida).

?Letra (de A a Z, entrada opcional).

ALetra ou dgito (entrada requerida).

aLetra ou dgito (entrada opcional).

&Qualquer caractere ou espao (entrada requerida).

CQualquer caractere ou um espao (entrada opcional).

, . : ; - /Marcador de posio decimal e separadores de milhares, de data e de hora. (O caractere realmente usado depende das configuraes do Painel de Controle do Windows).

Faz com que todos os caracteres sejam convertidos para maisculos.

\Faz com que o caractere seguinte seja exibido literalmente (por exemplo, \A exibido simplesmente como A).

Quando voc define uma mscara de entrada e a propriedade Format para o mesmo objeto, a propriedade Format tem precedncia quando os dados so exibidos. Isso significa que mesmo voc tendo salvo uma mscara de entrada, ela ignorada quando os dados so formatados. O dado original como foi digitado no alterado; a propriedade Format s afeta a maneira como os dados so exibidos.

MaxLength : Determina a quantidade mxima de caracteres que o MaskEdBox pode ter.

Name: Nomeia o objeto. Geralmente inicia o nome com msk

PromptChar : Escolhe o caractere padro que ser exibido simbolizando o estado vazio. Por default possui o caractere _, e aconselho a substituir pelo caractere de espao. Esta propriedade no aceita vazio.

PromptInclude : Determina se o caractere inserido na propriedade PromptChar ser includo na propriedade Text.

* Text : Contm o texto digitado pelo usurio no objeto.

Evento ValidationError : Este evento ocorre sempre que o usurio digita alguma entrada que no corresponde a mscara estabelecida.

Construindo um sistema Um sistema em VB constitudo por vrios componentes e dividido em vrias partes. Ns j conhecemos os formulrios(Forms), mas num sistema podem conter vrios outros componentes:

- MDI Forms

- Mdulos(Mdule)

- Mdulos classe(Class Module)

- Relatrios (Data Report)

- User Controls

Estes so os principais componentes. Existem muitos outros que fogem ao objetivo do nosso curso. Alguns, como o Mdulo ClasseE o User Control tambm no sero abordados neste curso, apenas voc ter uma noo do que e para que serve. MdiForms O MdiForm na verdade um Form que suporta vrios outras Forms dentro dele. Ele tem a funo de ser o formulrio principal numa aplicao. Numa aplicao mdia ou grande, sempre vamos ter que adicion-lo no projeto.Mdulos Os mdulos so usados a todo momento no Visual Basic. Qualquer projeto seja ele mdio ou grande tem vrios deles. Dentro desses mdulos, existir um cdigo que poder se dividir em subprocedimentos e funes de usurio. Veremos logo a seguir o que so subprocedimentos e funes.

Mdulos Classe Mdulos classes so na verdade, blocos de cdigo que agem como objetos. Nosso curso no vai abordar a construo de objetos, no entanto aprenderemos a us-los.

Relatrios So relatrios gerados por uma ferramenta. Existem para facilitar o nosso trabalho de gerar relatrios. Tem vrias funes teis a quais veremos mais tarde. H outros geradores de relatrio alm do Data Report. Trataremos disso na seo Impresso.User Controls So controles construdos pelo prprio programador de acordo com alguma necessidade especfica a qual os controles normais no poderiam suprir.DataEnvironment Este componente muito til para tratarmos com banco de dados. Facilita muito o acesso aos dados e nos possibilita manipular o Banco de Dados com poucas linhas de cdigo. Para adicionar um componente, acesse o menu Project e selecione qual componente voc deseja adicionar.

Antes de nos aprofundarmos em alguns componentes, principalmente nos mdulos, vamos aprender a manipular as propriedades do projeto. Quando voc inicia um projeto, ele por padro sempre coloca um objeto Form dentro do projeto. De nada for alterado nas propriedades do projeto, o interpretador sempre inicia por esse Form, o abrindo. Existem alguns eventos do Form que talvez voc ainda no conhea e so de extrema importncia quando comeamos a trabalhar com o cdigo. So eles:

Initialize Este evento ocorre quando o Form chamado, seja pelo Visual Basic, ou por um mdulo onde definimos uma instruo para cham-lo.

Load Ocorre sempre que o Form carregado na memria. Podermos dizer que o ponto de entrada em qualquer formulrio. Quando o formulrio chamado, antes mesmo de podermos visualizar ele na tela, o evento Load j est ocorrendo.

Activate Este evento ocorre logo aps o evento Load. Quando este evento ocorre j podemos ver o Formulrio.

Unload Ocorre quando o formulrio descarregado da memria. o oposto do evento Unload .Terminate Este evento ocorre aps o evento Unload . Quando ele ocorre o formulrio j no est mais na memria, e muito menos podemos visualiz-lo.

Bem, fcil deduzir que se criarmos um projeto, no alterarmos nada, e colocarmos esse projeto pra rodar, o interpretador primeiro percorreria o evento Initialize do formulrio, depois o evento Load e depois o evento Activate. Ao fecharmos ele percorreria o evento Unload e depois o evento Terminate.

No entanto, um projeto pode iniciar tambm por um mdulo. Existe um evento chamado Main que o Visual basic sempre procura nos mdulos do seu projeto, caso voc defina para que ele procure. Podemos optar entre 2 pontos de entrada em sua aplicao:

- Um formulrio que voc mesmo define qual OU- Um mdulo que tem um procedimento chamado Main.

Vamos conhecer as propriedades de projeto onde podemos definir isso. Acesse o menu Project e selecione Properties. No caso de voc ter um projeto com o nome de Exemplo aparecer Exemplo Properties. Aparecer a seguinte janela:

Um projeto mdio ou grande sempre comea em um mdulo, atravs do subprocedimento Main .Menus

At agora vimos como inserir botes e muitos outros controles em um formulrio. Mas e se quisssemos inserir menus. O Visual Basic oferece um editor de menus muito simples. Acessando o menu Tools, Menu Editor ou teclando voc abrir o Menu Editor.

Agora que j conhecemos as propriedades, vamos aprender a criar os menus. Primeiramente, voc define o Caption e o Name do item de menu. Devo lembrar que o Name obrigatrio. Note que podemos criar submenus dentro dos menus. Usando e , sendo que avana um nvel e recua um nvel.

Menus que so antecipados com .... representam submenus. Quanto mais .... tiver na frente do submenu, mais avanado o seu nvel.

Menus dinmicos

Menus dinmicos so aqueles menus que aparecem quando clicamos com o boto direito do mouse em cima de algum item.

O comando que chama esses menus o PopUpMenu e sua sintaxe a seguinte:

PopUpMenu

Claro que ainda temos que saber quando usar esse comando. Podemos us-lo ento no evento MouseUp do objeto que vai ter o menu. Como sabemos, o evento MouseUp acontece toda vez que clicamos o boto do mouse em cima do objeto. Vamos conhecer melhor o evento MouseUp :

MouseUp (Button as Integer, Shift As Integer, X as Single, Y as Single)

Como voc pode ver, o evento MouseUp nos passa parmetros dizendo que boto foi pressionado, que tecla estava pressionada no momento em que pressionamos o boto do mouse, a linha e a coluna onde foi pressionado o boto.

Button : retorna um nmero inteiro que informa qual dos botes foram apertados:

1Boto esquerdo pressionado. vbLeftButton

2Boto direito pressionado.vbRightButton

4Boto do centro pressionado.vbMiddleButton

Shift : retorna um nmero inteiro que informa qual tecla estava pressionada no momento em que algum boto do mouse tambm foi pressionado.

1SHIFT pressionado. vbShiftMask

2CTRL pressionado.vbCtrlMask

4 ALT pressionado vbAltMask

X : Coordenada para linha

Y : Coordenada para Coluna

Exemplo:Private Sub List1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 2 then

PopUpMenu MenuLista

End if

End Sub

No cdigo acima usamos o evento MouseUp do objeto List1 e depois verificamos se o boto do mouse que foi pressionado o direito. Caso seja, usamos o comando PopUpMenu para chamar o menu com o nome de MenuLista.

O cdigo

J falamos vrias vezes sobre cdigo aqui, no entanto nosso cdigo se resumiu a atribuir propriedades em tempo de execuo a alguns objetos. No iramos muito longe apenas com isso. Precisaramos de comandos, funes e muitos outros.

Antes de vermos cada um desses itens detalhadamente, seria necessrio dividir o cdigo em:

- SubProcedimentos

- Funes de Usurio

- Propriedades- Eventos

Nosso curso tratar apenas subprocedimentos e funes de usurio. Propriedades e eventos, na maioria dos casos no so muito usados. Antes de vermos esses itens detalhadamente, assim como o mtodo de declar-los no cdigo, vamos conhecer a nossa amiga Janela de Cdigo. nela que estaremos trabalhando a maior parte do tempo.

Vamos tratar primeiramente sobre os subprocedimentos. Um subprocedimento so blocos de cdigo com tarefas especficas. Tem uma srie de instrues dentro dele que devem fazer alguma coisa. Dentro de um subprocedimento podemos ter comandos e funes. Alm disso, um subprocedimento tambm pode receber parmetros que especificam os valores que sero tratados pelo respectivo subprocedimento. Os subprocedimentos existem para facilitar a organizao de nosso projeto. Imagine um projeto enorme com milhares de linhas de cdigo. Seria difcil organizar tudo isso. No mesmo? Ento foram criados os subprocedimentos para que cada tarefa em nosso projeto pudesse ser dividida, organizando assim o cdigo. Veremos exemplo mais tarde e vamos aprender a declar-los tambm.

Quanto as Funes de Usurio , sero vistas logo mais, sendo que vamos precisar conhecer primeiro o que faz uma funo para que depois aprendemos a constru-la. Devemos agora primeiramente ter uma noo boa sobre variveis, comandos e funes de depois mergulharemos em subprocedimentos e funes de usurio.

Variveis

Voc j deve conhec-las da matemtica, onde geralmente tnhamos a varivel X ou varivel Y.

Em programao, ela tem a mesma funo com vrios recursos adicionais.

Na matemtica, s tnhamos a varivel numrica. Na programao temos vrios tipos de variveis. Vamos conhec-las:

NomeDescrioAbrangncia

IntegerNumrico Inteiro-32.768 a 32.767

LongNumrico Inteiro-2.147.483.648 a 2.147.483.648

ByteNumrico Inteiro0 a 255

SingleNumrico real-3,402823E38 a -1,401298E-45

1,401298E-45 a 3,402823E38

DoubleNumrico real-1,79769313486232E308 a 4,94065645841247E-324

4,94065645841247E-324 a 1,79769313486232E308

CurrencyNumrico -

Valores monetrios-922.337.203.685.477,5808 a 922.337.203.685.477,5807

StringTexto2.147.483.648 de caracteres nos sistemas 32 bits

65.536 de caracteres nos sistemas 16 bits

DateData e Horaentre 01/01/100 a 31/12/9999

BooleanTrue (verdadeiro) False (falso)

ObjectContm um objeto

VariantPode ser numrico, string, objeto ou valor nulo.

Quando atribumos um determinado valor a uma varivel esse valor fica armazenado na memria e quando nos referenciamos a essa varivel novamente esse valor lido na memria. Portanto, devemos pensar bem antes de escolher qual varivel usaremos para o nosso valor.

Voc viu que existem cinco tipos de variveis apenas para tratar com nmeros. A Integer abrange um certo valor, a Long outro, a Single outro, a Double outro e a Currency a mais adequada para tratarmos com valores monetrios . Devemos usar exatamente o tipo de varivel que precisamos. No caso de voc precisar colocar o nmero 100 numa varivel, o tipo Integer se enquadra perfeitamente. J se usarmos Long para um valor desse porte, estaramos desperdiando memria. O tipo Variant, por exemplo, permite-nos, de antemo, atribu-lo com um valor a qual no sabemos qual . No entanto, devemos usar o tipo Variant com muito cuidado, pois tem um consumo de memria bem superior aos outros tipos de variveis.

O Visual Basic nos permite atribuir um valor a uma varivel sem precisarmos declarar o seu tipo. No entanto essa prtica apesar de facilitar o trabalho, no recomendada. Voc deve estar se perguntando por qu: Bem, em primeiro lugar, imagine voc um sistema com milhares de linhas de cdigo. E nessas linhas voc tivesse a seguinte linha:

Nome = Maria Da Silva

Digamos que voc se distraia e digite:

Nomex = Maria Da Silva

O que ir acontecer que o compilador no vai dar nenhum aviso de erro, por qu assim como existe a varivel Nome pode existir tambm a varivel Nomex. Tudo bem, o programa ir compilar sem problema o seu cdigo. Mas e, quando voc precisasse desse valor dentro da varivel Nome?

Resposta: Ela no estaria l!

E seu cdigo?

Se quebraria.

Daria erro em um certo ponto. Talvez voc demoraria para notar o erro, mas cedo ou tarde, em determinada parte, iria ver que o valor no estava sendo gravado ou qualquer outro tipo de erro.

Esse tipo de problema comum se voc no optar que o Visual Basic exija obrigatoriamente a Declarao de Variveis. Para isso, acessamos o Tools, Options e selecionamos Require Variable Declaration, como mostra a figura.

Podemos tambm usar a instruo Option Explicit na seo General-Declarations do mdulo em que dever ser forada a declarao de variveis.

Com este procedimento, se uma varivel no for declarada o Visual Basic vai gerar um erro dizendo que a varivel no foi declarada.

Voc deve estar se perguntando onde, e, como se declara uma varivel. H vrias palavras chave para se declarar uma varivel. Trataremos primeiro do comando Dim. Sua sintaxe a seguinte:

Dim VarivelTal as

Exemplo:

Dim Nome as string

Declaramos a varivel Nome como sendo do tipo String

Dim Numero as Integer

Declaramos a varivel Nmero como sendo do tipo Integer

Dim Valor as CurrencyValor = 58,34

Declaramos a varivel Valor como sendo do tipo Currency, que o tipo que usamos para valores monetrios, e, logo aps atribumos a ela o valor de 58,34

Vamos tratar agora os diferentes tipos de variveis que se dividem em numricas, string, lgicas, datas , objects e variants.Variveis numricas Uma varivel numrica pode ser do tipo Integer, Long, Single ou Double como j vimos anteriormente. Voc escolhe a varivel de acordo com as suas necessidades. Procure sempre utilizar o tipo de varivel de acordo com o que voc precisa. Por exemplo, se voc ir armazenar um nmero entre zero e 100 em uma varivel numrica do tipo Long, voc estaria utilizando mais recursos do que seu valor necessita. Pois numa caso destes, a varivel Single seria totalmente cabvel. muito importante que o programador leve em considerao casos como este. Pois em um programa grande o gerenciamento de recursos de extrema importncia. Procure usar as variveis numricas apenas quando estas forem objetos de clculos, ou seja, use-as apenas quando for realizar operaes matemticas com os seus valores. Por exemplo, voc no precisa utilizar um tipo numrico para uma varivel numrica que vai conter um Cpf ou um nmero de identidade.

Variveis Lgicas(Boolean)

Permitem somente dois valores: True or False. Ou seja, verdadeiro ou falso.

Este tipo de varivel parece no nos prometer nada, mas so de extrema importncia dentro de um programa. Quando declaramos uma varivel do tipo Boolean, ele definida automaticamente como False(Falso) e s passa a ser True(Verdadeiro) quando assim for definida. Exemplo:

Dim Nome as StringDim NomeIgual as Boolean

Nome = Maria da Silva

NomeIgual = (Nome = Maria)

A varivel lgica NomeIgual retornaria False

Declaramos duas variveis, uma do tipo String, e outra do tipo lgica(Boolean). A varivel lgica NomeIgual tem a funo de analisar a comparao entre a varivel nome e uma string qualquer. Se essa comparao for verdadeira, ele retornar true, e vice-versa. No nosso exemplo acima, temos a varivel Nome com o contedo Maria da Silva. A comparamos com a string Maria e o resultado que a varivel NomeIgual dar False, por qu a comparao no verdadeira. Vejamos agora como a varivel NomeIgual poderia retornar True:

Dim Nome as String

Dim NomeIgual as Boolean

Nome = Maria da Silva

NomeIgual = (Nome = Maria da Silva)

NomeIgual retornaria TrueConvm observar que se trocssemos uma letra que fosse, de maiscula para minscula a varivel lgica NomeIgual j retornaria False.

Dim Nome as String

Dim NomeIgual as Boolean

Nome = Maria da Silva

NomeIgual = (Nome = Maria da silva)

NomeIgual retornaria False Observe o s minsculoVarivel String Ao tratarmos sobre as variveis lgicas falamos sobre String. Uma string na verdade pode ser o contedo de uma varivel do tipo String ou qualquer contedo delimitado por aspas. Uma string aceita caracteres alfanumricos, smbolos, etc. Podemos fazer concatenao com essas strings, assim como extrair uma parte de seu contedo e at fazer comparaes. Concatenao seria juntarmos duas strings em uma s. Podemos usar para isso o operador + ou o &. Exemplo:

Visual + Basic resultaria Visual Basic 13 + 12 resultaria 1312

Visual & Basic resultaria Visual Basic 13 & 12 resultaria 1312

Bem, olhando assim parece que o operador + e operador & so iguais, mas na verdade no. A diferena est que o operador + fora a soma e operador & fora a concatenao. Vejamos:

12 + 13 resultaria 25

Note que ao tentarmos concatenar com o operador + uma string e um dado numrico ele somou e transformou o resultado em um valor numrico.

12 & 13 resultaria 1213

Agora ficou bem claro que o operador + ao encontrar 2 tipos diferentes, ou seja, um valor numrico e uma string, ele os somar e ir transform-los em um valor numrico, enquanto que o operador &, ao encontrar 2 tipos diferentes ir forar a concatenao, pegando o valor numrico e concatenando com a string, transformando assim o resultado em uma string.

Resumindo, podemos usar tanto o operador + quanto o operador & para concatenar strings, apesar de que geralmente mais usado o &.Varivel Date

A varivel Date nos possibilita o armazenamento de datas, porm, tambm podemos armazenar horas. Quando atribumos uma data a uma varivel devemos usar o operador #. Exemplo:

Data = #01/01/2001#

Se tentarmos atribuir uma varivel data assim:

Data = 01/01/2001

Ou assim:

Data = 01/01/2001

Se a varivel foi j foi declarada como Date, o programa retornar um erro dizendo que o que estamos tentando passar no uma data. Se a varivel ainda no foi declarada, no primeiro exemplo, ele pensar que estamos tentando dividir 01 por 01 por 2001 e colocar o resultado na varivel. No segundo ele armazenar uma string na varivel tornando assim uma varivel do tipo String.

A varivel Date nos possibilita fazer alguns clculos:a = #15/07/96#

b = #30/07/96#

b - a = 15 (Uma data menos outra retorna o intervalo em dias)

a + 3 = #18/07/96# ( uma data mais um valor numrico soma a quantidade de dias na data)

a - 3 = #12/07/96# ( uma data menos um valor numrico subtrai a quantidade de dias na data.

Varivel Variant A varivel do tipo Variant como o prprio nome sugere uma varivel que se transforma em qualquer tipo, dependendo do contedo que lhe atribudo. Por exemplo, se tivermos uma varivel A e atribumos A=Jos, A ser do tipo String, j se atribuirmos A = 1, A ser do tipo Integer.

A uso desse tipo de varivel s aconselhado quando no temos a menor idia do contedo que ser atribudo a ela, pois uma varivel do tipo VARIANT utiliza mais recursos do que os outros tipos.

Varivel Object e instanciao

A varivel Object representa um objeto. Podemos atribuir objetos s variveis, caso precisarmos. Essa prtica chamada de instanciao.

Como o Visual Basic trabalha com objetos, bom se acostumar a instanciar objetos a todo o momento. O que acontece, na verdade, no momento em que instanciamos o objeto que a varivel que contm a varivel passar a se comportar como o objeto. Podemos definir um tipo de varivel como sendo TextBox, ComboBox, Form ou qualquer outro objeto. O Tipo Object aceita qualquer um desses objetos. Seria como a varivel Variant dos objetos.Podemos instanciar qualquer objeto existente em nosso projeto. Para instanciar um objeto, temos de usar a palavra chave SET antes da varivel. Exemplo:Dim Objeto as ObjectSet Objeto = Text1

Objeto.text=ol Crie um projeto novo no VB. Insira um TextBox no formulrio. Agora coloque o cdigo acima no evento LOAD do Form e rode o projeto. Voc ver que aparecer a caixa de texto com o texto ol em seu interior. Bem, vejamos como isso aconteceu.

Primeiro, criamos uma varivel chamada Objeto, como sendo do tipo OBJECT.

Dim Objeto as Object

Depois instanciamos. Imagine o ato de instanciar como estar apontando para objeto. Como tornar a varivel um espelho do objeto.

Set Objeto = Text1

Depois de instanciarmos a varivel Objeto, fazendo que ela aponte para Text1(nossa TextBox), podemos modificar as suas propriedades atravs da varivel:

Objeto.text=ol

Simples, no mesmo. Note que, ao declarar a varivel, poderamos usar diretamente o tipo TEXTBOX. Pois como j falamos anteriormente, o Tipo Object seria como o Tipo VARIANT, s que para objetos. Este exemplo usou um TextBox, mas poderamos usar com qualquer outro objeto existente no projeto. Veremos instanciao com maiores detalhes mais adiante.Declarao de Variveis

O Visual Basic nos permite declarar variveis em qualquer parte do cdigo, no entanto, existem algumas observaes a serem feitas:

- Para que uma varivel seja vista por todo o mdulo, formulrio, ou qualquer outro objeto que a contm, a mesma deve ser declarada na seo General, Declarations do mdulo.

Se a declararmos dentro de um procedimento qualquer, ela ser vlida apenas dentro desse procedimento.- Para que a varivel seja vista pelo projeto inteiro, devemos declar-la como Public, no mdulo principal. Veremos agora o que significa Public , assim como os demais modificadores de acesso.Modificadores de acesso

Os modificadores de acesso mudam a forma como o programa enxerga as variveis. Se declararmos uma varivel usando no lugar de DIM a palavra chave PUBLIC na seo General-Declarations do mdulo principal, esta varivel poder ser usada em qualquer parte do projeto.

Public Nome as String

Esta varivel poder ser usada dentro de qualquer formulrio sem problemas. J se declararmos uma varivel pblica dentro de um formnulrio, tambm poderamos us-la em qualquer parte do projeto, no entanto devemos antecip-la com o nome do formulrio e um ponto. Exemplo:

FormularioTal.Nome

Alm do modificador de acesso PUBLIC, temos o PRIVATE, que funciona exatamente o oposto do PUBLIC. O usamos para evitar que as variveis internas de um mdulo entre em conflitos com variveis de mesmo nome de outros mdulos. Sua sintaxe a mesma usada no comando PUBLIC.

Constantes

Uma constante uma varivel que ter um valor somente leitura, ou seja, poderemos apenas ler o seu valor, mas no poderemos modific-la. til quando temos um determinado valor que referenciado vrias vezes dentro do projeto, e queremos uma varivel para representar esse valor, de forma que no precisemos mais digitar toda vez esse valor. Para declararem constantes, usamos a instruo CONST. Exemplo:

Const Numero as Integer = 3

O tipo da constante no obrigatrio, de forma que a linha acima poderia ficar assim:Const Numero = 3

No lugar do nmero 3 poderamos usar qualquer expresso, seja ela uma string, ou uma operao matemtica, ou qualquer outra expresso vlida envolvendo outras constantes.

As constantes so declaradas como Private por padro, no entanto podemos usar os modificadores de acesso Public antecipando a declarao. Exemplo:Public Const Data = #20/09/1979#

Se colocarmos essa linha na seo General-Declarations de um mdulo, esta constante poder ser acessada por qualquer parte do projeto. Se a colocarmos na seo General-Declarations de um formulrio tambm, mas da mesma maneira que acessamos as variveis, ou seja, antecipando com o nome do formulrio:

FormularioTal.Data Operadores

Agora que j aprendemos a trabalhar com variveis, vamos conhecer os operadores, que sero essncias para a manipulao dos valores de nossas variveis. Com eles, poderemos realizar operaes matemticas, lgicas, etc. Os operadores se dividem em:

- Matemticos

- Relacionais

- Lgicos

- String

Matemticos Os operadores matemticos j so conhecido de todos. Com eles poderemos somar, dividir, subtrair,etc. So eles:

OperadorDescrioExemplo

+SomaVar = 18+5

-SubtraoVar = 18-5

*MultiplicaoVar = 18*5

/DivisoVar = 18/5

\Diviso. Resultado ser um nmero inteiroVar = 18\5

^ExponenciaoVar = 18^5

ModResto da DivisoVar = 18 Mod 5

Assim como na matemtica, esses operadores sempre respeitam uma ordem para realizar os clculos:

1. Exponenciao

2. Multiplicao e Diviso

3. Adio e Subtrao

Se tivermos o seguinte clculo a ser feito:

7+3*2-4^2/2

Resultaria 5.

O programa primeiro calcularia as operaes de exponenciao, depois de multiplicao e diviso, e depois sim, ir realizar as operaes de soma e subtrao. Caso quisssemos que ele primeiro somasse, bastaria colocarmos a soma entre parnteses:

(7+3)*2-4^2/2

Resultaria 12.

Operadores Relacionais Realizam comparaes entre valores ou variveis e retornam o resultado da comparao, sendo True se a comparao for verdadeira, e False, se a comparao for falsa. So eles:OperadorDescrioExemplo

>Menor3 < 5

3

= 3

=Igual5 = 5

Diferente3 5

Operadores Lgicos Realizam operaes lgicas usando operadores que representam a palavra NO, E, OU, EQUIVALENTE, IMPLICAO E PRECISO. Veremos os mais importantes. So eles:And O mais usado de todos os operadores. Representa a palavra E em uma expresso. Por exemplo:

A = 5 and b = 7

Significa a igual a 5 e b = 7

OR- Representa a palavra OU numa operao lgica.

A = 5 or B = 7

Significa a igual a 5 ou B = 7

NOT Representa a expresso NO numa expresso lgica. Por exemplo:A = 5 AND NOT (A = B)

A igual a 5 e A no igual a B

Para facilitar o entendimento, imagine o operador NOT antes da expresso como se fosse a palavra NO.

Operadores de String Como j vimos anteriormente, so representados pelo + e pelo &, sendo que o + fora o clculo, no caso de termos uma das expresses sendo numrica, enquanto o & fora a concatenao, no caso de termos uma das partes sendo string e outra numrica. Para maiores detalhes, consulte a seo anterior.Comandos condicionais e Loops chegada hora de conhecermos alguns comandos, e vamos comear por alguns que j esto nos fazendo falta. Comearemos primeiro com os comandos condicionais.

Os comandos condicionais, como o prprio nome diz so comandos que nos permitem executar blocos de cdigo, apenas quando certas condies forem verdadeiras, ou falsas, dependendo do caso. Por exemplo, se tivermos um TextBox numa tela de cadastro. Digamos que esse TextBox servir para o usurio entrar com o nome do cliente, e porventura o usurio esqueceu de digitar o nome do cliente no TextBox. Imagina-se que nesse cadastro tem um boto para que possamos gravar os dados. No momento que o usurio clicar no boto de Gravar, o nome seria gravado em branco. Para isso deveramos, colocar, no evento Click do boto de gravar um cdigo que exiba uma mensagem dizendo que o usurio esqueceu de digitar o nome do cliente, e aps isso, mover o foco para o TextBox correspondente.

Mas o que acontecer se fizermos isso? Toda vez que clicarmos no boto de gravar, mesmo que o usurio tenha preenchido a TextBox, a mensagem seria exibida. Para resolver esse problema, teramos que usar os comandos condicionais. Vamos conhec-los:IF, Then, Elseif, Else, Endif Testa uma condio e executa determinado cdigo se esta condio for verdadeira. Sua sintaxe a seguinte:If then< Cdigo a ser executado se a condio for verdadeira>

Else

Endif

O Endif encerra o bloco condicional IF.Onde If representa a palavra SE

Then = ENTO

Else = SENO

Endif =Fim Do Comando SE

Vejamos um exemplo:

Dim Numero as integer

Numero = 3

If Numero > 2 then

Msgbox Nmero maior que 2

Else

Msgbox Nmero menor que 2

End if

No caso da condio especificada no comando If, ou seja que 0o nmero seja maior que 2, ento o bloco de cdigo entre If e Else ser executado. No caso da condio ser falsa, ser executado o bloco de cdigo entre Else e Endif.

Alm do If, Then, Else e Endif, temos tambm o ElseIf. Vejamos a sua sintaxe:

If then< Cdigo a ser executado se a condio for verdadeira>

Elseif then

Else

Endif

Como voc pode ver, o comando ElseIf, nos permite inserirmos mais opes condicionais no comando IF. Quando a condio do comando If for falsa, o programa procura pelo comando ElseIf, se ele existir. Sendo a condio do bloco ElseIf verdadeira, ele executa o bloco do ElseIf. Podemos colocar quantos comandos ElseIf quisermos em um Bloco IF. No caso de nenhuma das condies forem verdadeiras, ser executado o Bloco Else, se ele existir. importante lembrar, que, por todo o bloco IF, o bloco de cdigo que ser lido ser o primeiro que a condio for verdadeira, sendo as demais ignoradas, e o programa passando a executar a partir de Endif.Dim Numero as Integer

Numero = 4

If Numero = 1 then

Msgbox Numero igual a 1

Elseif Numero > 5 then

Msgbox Numero maior que 5

Else

Msgbox Numero no igual a 1 e no maior que 5

End if

No cdigo acima, o comando If testa a varivel Numero, que tem seu valor como 4. A condio do comando If caso a varivel Numero seja igual a 1. Como ela no , o programa passa automaticamente para a prxima condio, ou seja, a do comando ElseIf, que testa a varivel, pra ver se ela maior do que 5. Como o valor da varivel 4, no caso, no maior que 5, o programa passa novamente para a prxima condio. No nosso exemplo, no temos mais nenhuma condio. Como nenhuma das condies foi verdadeira, ele executar o bloco Else, que sempre executado quando nenhumas das condies forem verdadeiras.

Note que podemos ter quantos ElseIf quisermos em um bloco If, mas apenas um Else, pois s ele ser executado quando nenhuma das condies forem verdadeiras.

Lembram-se daquele nosso problema do cadastro com o nome do cliente em branco?O nosso maior problema seria verificar se o TextBox estava vazio, e informar ao usurio somente quando tivermos certeza que o TextBox est vazio. Vejamos como fazer isso:

Digamos que voc tenha um TextBox chamado TxtCli e Um boto de comando chamado CmdGravar.

Vamos usar o evento Click do boto. Ficaria assim:

Primeiro, verificamos se o TextBox est vazio, atravs da propriedade Text:If TxtCli.Text = then

onde representa uma string vazia. Poderamos usar a constante Empty do VB tambm:

If TxtCli.Text = Empty then

Se a condio for verdadeira, ou seja, se TxtCli estiver vazia, o bloco de cdigo existente entre If e Else, no caso do nosso exemplo, ser executado. MsgBox "Nome do cliente no foi informado"

TxtCli.SetFocus

Exibir uma mensagem ao usurio dizendo que o cdigo do cliente no foi informado, depois mover o foco para o TextBox. Em caso da condio de IF no ser verdadeira, executar o bloco ELSE.

Msgbox Cadastro Ok

Informando ao usurio que o cadastro est ok. Por este exemplo podemos notar o quanto os comandos condicionais facilitam nossa vida. Em continuidade aos comandos condicionais, veremos mais um.

Select Case

O Select Case funciona de forma semelhante ao IF, mas uma alternativa mais usada no caso de termos um nmero de opes maiores.

Opo = 3

Select Case OpcaoCase 1

Case 2

Case 3

Case Else

End Select

Primeiro, escolhemos que condio iremos testar:Select case Opo

No nosso caso, foi a varivel Opo. Depois, testamos os casos:

Case 1

Note que no necessrio usarmos o nome da varivel no caso. Isso por qu quando iniciamos o SELECT CASE, j definimos que a expresso que iramos testar seria a varivel Opo. Ento a linha Case 1 testa se a varivel Opo igual a 1.

Se a varivel Opo no for igual a 1, ela passar para o prximo caso:Case 2 No sendo a varivel Opo igual a 2, ela passar para o prximo caso, e assim sucessivamente at chegarmos no CASE ELSE, se ele existir. O CASE ELSE funciona como o ELSE, do comando IF. Ele ser executado quando nenhum dos casos for verdadeiro. O comando END SELECT encerra o SELECT CASE.Comandos de Lao(Loops)

Os comandos de lao ou loopings so extremamente usados na programao. Fazem que determinado bloco de cdigo se repita at que uma condio seja ou se torne verdadeira. Podem ser usados de vrias maneiras. Veremos as formas mais usadas.

Do While, Loop

Este comando executa os comandos existentes entre Do While e Loop enquanto as condies estabelecidas no comando Do While forem verdadeiras. Sua sintaxe a seguinte.Do While

11

Print Contador

Contador = Contador + 1

Loop

No exemplo acima, o lao se repetir at que a varivel Contador satisfaa a condio especificada em Do Until. Ou seja, quando a varivel Contador for maior que 11, ou seja, quando a varivel Contador for 12, o ciclo se encerrar.

Do, Loop Until

Quanto a avaliao das condies, o comando Loop Until funciona da mesma maneira que o Do Until. A diferena est que a condio s testada no comando Loop. Ou seja, o cdigo existente entre DO e Loop Until obrigatoriamente executado pelo menos uma vez.

Dim Contador as Integer

Contador = 1

Do

Print Contador

Contador = Contador + 1

Loop Until Contador > 11

Contadores Agora que j vimos os comandos condicionais, passaremos aos contadores. Os contadores tem inmeras aplicaes em programao. Vamos ao principal comando usado como contador:

For, Next

O comando For realiza uma contagem entre um intervalo de nmeros especificados.For = to

Next

Necessitamos de uma varivel numrica para usarmos o comando For, NextDim Contador as IntegerContador=0

For Contador = 1 to 10

Print Contador

Next

Podemos pedir ao comando FOR que conte de forma diferente atravs do comando STEP. O comando STEP modifica a forma com que o contador incrementado. Por padro, ele ser incrementado de 1 em 1. Com o comando STEP podemos configurar do modo que quisermos.

Dim Contador as Integer

Contador=0

For Contador = 1 to 12 Step 3

Print Contador

Next

No cdigo acima, o contador ir contar at 12, de 3 em 3.

EXIT DO e EXIT FOR Os comandos EXIT DO e EXIT FOR, foram a sada de um loop ou de um contador, respectivamente.

O comando EXIT DO nos permite forarmos a sada de um loop criado atravs do comando DO.Dim Numero as Integer

Numero=0

Do While Numero