Vbasic6 PDF
Vbasic6 PDF
Vbasic6 PDF
Objetivo do módulo
O formulário é o centro de uma aplicação gráfica. É com ele que o usuário interage de
modo a executar suas tarefas. Nele, você define e posiciona os controles que
apresentarão ao usuário as opções disponíveis
A Janela de Projeto ( Project Window ) é uma lista usada pelo Visual Basic para
controlar que arquivos fazem parte da sua aplicação. Esta lista poderá ser composta
por arquivos do tipo :
1
Colégio Cruzeiro do Sul Visual Basic
Para Inicializar o VB :
2
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
• Adiciona um Projeto
• Adiciona um Formulário
• Editor de Menu
3
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
• Grava um Projeto
• Recorta
• Copia
• Cola
A janela de código é o lugar onde você escreve o código que a máquina deve executar para
responder às ações do usuário. Para abrir uma janela de código, basta dar um click-duplo em
cima do objeto do qual um evento deva ser tratado.
4
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
5
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Objetivo do módulo
Objetos - São ferramentas que o Visual Basic fornece com as quais você construirá aplicações.
Um formulário é um tipo de objeto; controles dentro do formulário, como: botões, caixas de
texto e figuras também são objetos. Cada objeto possui uma lista de propriedades;
alterando-as você estará caracterizando, criando a identidade do seu objeto. A objetos você
pode aplicar métodos: mostrar um formulário é o método mostrar aplicado a um formulário,
adicionar um item a uma lista é o método adicionar aplicado a uma lista, etc.. A objetos
6
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
também acontecem eventos. Eventos são percebidos pelo sistema, e você pode programar a
sua aplicação para que ela reaja a estes eventos.
Propriedades - são as características que personalizam seu objeto. Cada objeto tem uma lista
de propriedades própria.
Métodos - Procedimentos fornecidos pelo Visual Basic que podem ser aplicados aos
objetos. Cada objeto possui uma lista de métodos própria.
Características de um método :
• Você não pode criar um método, o VB já os cria para você. Métodos somente podem ser
chamados.
• Não é possível ver ou alterar o código de um método.
• Os nomes de métodos são palavras reservadas do Visual Basic.
Sintaxe :
nome_controle.método
Exemplos :
Form1.Hide
List1.AddItem
GRDAgenda.RemoveItem
Picture1.Drag
Eventos - Acontecem aos objetos e são detectados pelo Windows. Podemos programá-los
para que os objetos reajam aos eventos.
7
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
2. Crie um formulário para cada janela que você conseguir visualizar dentro da aplicação.
Para instalar o executável para os usuários ou clientes, você precisa levar também uma cópia
da biblioteca do Visual Basic VBRUN300.DLL. Este arquivo faz parte dos arquivos de
instalação do Visual Basic e pode ser distribuído livremente.
Determinações Básicas :
• Projetar a interface para o usuário, não para o sistema. - Típico caso de criar telas diferentes
para Inclusão, Alteração e Exclusão ( quando, na maioria dos casos, estas três funções
poderiam estar agrupadas em uma única tela).
• Ter em mente que agora é o usuário que mantém o controle da aplicação, e não mais o
programa.
• Clareza - Ter certeza de que o propósito de cada tela está bem claro para o usuário.
• Estética
• Usar cores como um chamariz de atenção, porém cuidado para não exagerar !
• A letra, normalmente utilizada em aplicações Windows, é qualquer uma Sans Serif. Ao usar
tipos de letras diferentes, cuidado para não abusar da variedade.
8
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Objetivo do módulo
9
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
3.2.1 Load
Sintaxe :
Load objeto
10
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Importante O comando Load não mostra automaticamente o formulário; ele apenas carrega
em memória. Para tornar o formulário visível, é necessário chamar o método Show.
3.2.2 Unload
O comando Unload é utilizado para retirar um formulário de memória. Note que ao retirar um
formulário de memória apenas a parte gráfica da tela é descarregada, o código continua em
memória.
Sintaxe :
Unload objeto
11
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
3.3.1 Load
Acontece sempre antes que um formulário seja carregado em memória. É utilizado normalmente
para inicializar os controles do formulário.
3.3.2 Unload
Este evento ocorre sempre momentos antes de um formulário ser descarregado. Nele devem ser
tratados procedimentos de finalização de banco de dados, cálculos e etc.
O Evento QueryUnload de um formulário permite que você consiga detectar como o Unload do
formulário foi iniciado. Este evento possui dois parâmetros : o UnloadMode e o Cancel. O
UnloadMode indica como o Unload foi iniciado. O Cancel, que inicialmente possui valor
False, se receber o valor True impede que o Unload do Formulário continue.
UnloadMode Significado
0 O usuário iniciou o Unload a partir do Control Menu do formulário.
1 Pelo comando Unload, utilizado no código.
2 O Usuário está saindo do Windows.
3 O usuário selecionou Finalizar Tarefa a partir do Gerenciador de
Tarefas.
4 Um formulário MDI-filho está sendo fechado porque o MDI-pai está
sendo fechado.
Exemplo :
Sub Form1_QueryUnload ( Cancel as Integer, UnloadMode as Integer )
If UnloadMode <> 1 Then
MsgBox "Utilize o botão 'Sair' para finalizar a tarefa"
Cancel = true
12
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Para exemplificar a utilização do evento Query Unload, criaremos uma aplicação onde somente
será possível finalizar a aplicação através do comando End a partir do código.
Executando a Aplicação
13
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
3.3.4 Activate
3.3.5 Deactivate
Sintaxe :
[formulário].Hide
O método Show é utilizado para mostrar um formulário. Assim como o método Hide, o
Show trabalha com a propriedade Visible do formulário, atribuindo-lhe o valor True. Caso o
formulário não esteja carregado em memória, o método show executa automaticamente o
comando Load.
Sintaxe :
[formulário].Show [estilo%]
14
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
15
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
16
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Executando a Aplicação
24. Tecle F5 ou clique na opção Run / Start do menu.
Normalmente uma aplicação contém mais de um formulário. Se este for seu caso, você
precisa definir o formulário inicial da aplicação (que por default é aquele que foi criado
primeiro). Para fazer isto selecionar a opção Project Properties do menu Project. O text box
Startup Object deve conter o nome (propriedade Name) do formulário inicial.
17
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
O MsgBox() é uma função que produz uma caixa de mensagem pop-up. A figura abaixo
mostra uma caixa de mensagem. Como podemos ver, uma caixa de mensagem exibe um ícone e
uma mensagem com pelo menos um botão de comando. O botão de comando dá ao usuário uma
chance de ler a mensagem dentro da caixa e dar um clique no botão depois de concluir.
Os argumentos que você fornece para a função MsgBox() determinam qual ícone a
função exibirá, a mensagem é o número de botões de comando. Portanto, o programador
controla exatamente como a caixa de mensagem aparecerá para o usuário. Quando a
MsgBox() for concluída, seu valor de retorno especificará em qual botão de comando o
usuário clicou. Portanto o seu programa fará sempre um teste no valor de retorno da função
MsgBox(), caso a função tenha dois botões de comando. O programa pode então utilizar uma
instrução If a fim de determinar o melhor curso de ação com base na seleção do botão de
comando do usuário.
MsgBox(“mensagem”)
Note que a mensagem ficou simples, ou seja, sem ícone e o título ficou sendo o nome do
projeto. Para melhorar a aparência de uma MsgBox() podemos utilizar argumentos opcionais.
Esses argumentos podem ser:
Tipo do Botão
18
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
0 VbOKOnly Botão OK
Você pode utilizar tanto o valor numérico como a cosntante identificada para expecificar o
tipo do botão.
Ícone
19
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Botão Default
Você pode alterar o botão que aparece como botão padrão quando a caixa de mensagem
aparecer pela primeira vez ao adicionar um dos seguintes valores ao argumento Botão
Default:
Exemplo de uma função MsgBox() utilizando botões , ícone e definido o segundo botão como
padrão:
20
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Título
O argumento Título é utilizado quando você deseja especificar um título para sua caixa de
mensagem, como por exemplo:
Quando você utiliza uma caixa de mensagem com mais de um botão você pode utilizar uma
variável (Resposta) para armazenar o comando que recebeu o clique, e utilizar essa
informação em uma instrução If para executar um determinado comando para cada botão. A
tabela a seguir mostra os valores de cada botão:
21
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
22
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Objetivo do módulo
Mostrar como trabalhar com aplicação composta por mais de um formulário, montando
menus. Nos módulos anteriores, trabalhamos com um único formulário, basicamente, para
mostrar o funcionamento de uma aplicação Visual Basic.
A seguir destacamos alguns ítens que devem ser observados para que um menu esteja dentro do
padrão Windows.
• Três pontos devem ser colocados ao final do comando para indicar a existência de uma caixa
de diálogo, quando esta existir;
• Para indicar que uma opção está ativa, colocar um check-mark (√) ao lado da opção.
• Barras de separação devem ser utilizadas para separar, visualmente, ítens relacionados ou
opções perigosas para o usuário.
• Teclas de acesso ou atalho devem ser definidas para todos os ítens do menu. ( Pelo padrão
Windows, as aplicações devem possibilitar seu uso, mesmo quando o usuário não tem um
mouse).
23
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Par
24
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
25
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
26
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
27
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
28
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
29
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Ítens de Menu
Item
Descrição
Caption
Name
Index
30
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Negotiate Position
ShortCut
Checked
Enabled
HelpContextId
31
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Visible
WindowList
Na parte de manipulação de ítens, você define a hierarquia dos ítens de menu, inclui novos ítens
e apaga outros. Para qualquer uma das operações, o item deve estar selecionado.
Manipulação de Lay-Out
Item
Função
32
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Seta para Cima Move a posição do cursor para um item de menu acima.
Seta para Baixo Move a posição do cursor para um item de menu abaixo.
Next Move a seleção para o próximo item da lista.
Insert Insere uma linha em branco acima do item
Delete Apaga um item de menu.
33
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Sair
&Sair
MNUSair
34
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Editar
&Editar
MNUEditar
Copiar
&Copiar
MNUCopiar
Colar
Co&lar
MNUColar
35
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
4. Pressione F5 para executar o programa e verifique o encadeamento dos menus. Note que,
para que os menus executem alguma ação é necessário que o evento Click de cada objeto
menu seja codificado. No caso acima, deveríamos codificar o evento click dos seguintes
objetos : MNUAbrir, MNUSair, MNUCopiar e MNUColar.
Objetivo do módulo
Apresentar os controles, suas principais propriedades e eventos. Não é intenção do curso, que
ao final deste módulo, você tenha domínio absoluto de todos os controles e propriedades
existentes no Visual Basic.
Ao longo do módulo, uma série de pequenos exercícios e apresentações serão feitas de modo
que você se familiarize com o uso de cada controle, e perceba como as propriedades os
afetam.
Labels
Text boxes
Frames
Command Buttons
Check Boxes
Option Buttons
Combo Boxes
List Boxes
Timers
Picture Boxes
Grid
Panel 3d
36
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Além de controles, neste capítulo também introduziremos dois conceitos muito importantes,
que são diretamente relacionados aos controles. São eles :
/ Foco
/ Control Arrays
37
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Caixa de Ferramentas
38
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Labels
Labels são normalmente utilizados para exibir textos que o usuário não deve modificar. Um
exemplo clássico seria o título de campos em formulários.
Propriedade Descrição
Alignment Alinhamento do texto dentro do label.
Backcolor Cor de fundo do label.
BorderStyle Tipo de borda do label. Recomendável não utilizar borda.
Caption Texto que aparece no label.
Font Tipo de letra utilizada.
FontSize Tamanho da letra utilizada.
ForeColor Cor da letra.
Height Altura do label.
Left Posição do extremo esquerdo do label em relação ao formulário.
Name Nome do controle a ser utilizado no programa.
Top Posição do topo do label em relação ao formulário.
39
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Text Boxes
O text box é um controle utilizado, basicamente, para a exibição de informação pelo sistema
ou para a entrada de dados do usuário.
Propriedade Descrição
Alignment Alinhamento do texto dentro do text box.
Font Tipo de letra utilizada.
Height Altura do text box.
Left Indica margem esquerda do text box em relação ao formulário.
MaxLegth Tamanho máximo do texto.
Multiline Indica se um text box tem mais de uma linha.
Name Nome do controle a ser utilizado pelo programa.
PasswordChar Caracter utilizado para esconder palavras secretas. Funciona
apenas quando a propriedades Multiline tem valor False. Ex.:
senhas.
ScrollBars Indica a existência de barras de rolagem.
Text Texto do text box.
Top Indica do topo do text box em relação ao formulário.
Width Largura da text box.
EVENTOS
Change Este evento acontece toda vez que o usuário altera o conteúdo de uma Text Box.
Por exemplo, quando o usuário escreve a palavra "papel", o evento Change ocorre cinco (5)
vezes.
40
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Criando um Label
2. Clicar duas vezes sobre a ferramenta Label na Caixa de Ferramentas.
3. Selecionar o label1 e chamar a Caixa de Propriedades.
4. Atualizar a propriedade Caption com Nome: e a propriedade Name com LBLNome.
Executando a Aplicação
15. Tecle F5 ou clique na opção Run / Start do menu.
41
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Maxlength de TextBoxes
Determina o número máximo de caracteres que uma caixa de texto pode conter. Se o usuário
digitar mais que o permitido, o sistema emitirá um beep, e ignorará tudo que o usuário digitar
que ultrapasse o limite.
PassWordChar de TextBoxes
Determina o caracter a ser mostrado na tela, independente do que o usuário estiver digitando.
Normalmente é utilizado para que senhas e códigos secretos não apareçam na tela.
Normalmente o caracter utilizado em aplicações Windows é o asterísco (*).
42
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Tab Stop
Quando esta propriedade estiver com o valor false, o cursor não parará aqui quando o usuário
estiver usando o Tab para se movimentar pelo formulário.
43
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Assim como podemos usar o & ( E comercial) para designar teclas de acesso a menus e
botões, podemos também utilizá-lo para acessar caixas de texto. Para isso, basta inserir um
label na frente ( na ordem de tabulação ) de um TextBox, e utilizar o & para designar uma
tecla de acesso para o label.
Como labels não recebem foco, o foco irá para o controle que tenha o TabIndex
imediatamente maior, portanto o Text Box receberá o foco.
Suponha que você tivesse que montar a seguinte tela para o envio de mensagens :
44
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Executando a Aplicação
21. Pressione F5 ou selecione Start do menu Run.
22. Experimente dar Tab entre controles; selecionar, cortar e colar parte do texto, etc.
45
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
É um controle que se assemelha a um Text box. No entanto, ele permite restringir a entrada
de dados do usuário e também formatar a saída dos dados.
Essa ferramenta Masked Edit deverá ser inserida na caixa de feramentas da seguinte forma:
Na opção Components do menu Project selecionar o item Microsoft Masked Edit Control.
46
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Propriedade Descrição
ClipMode Determina se os caracteres de máscara são incluídos ou não
quando operações de Cut/Copy são executadas. Valores
possíveis: 1 = inclui; 2 = não inclui.
Format Formato com que números, data, hora e strings serão mostrados
na Masked Edit.
Mask Determina a máscara de entrada de dados.
MaxLength Tamanho máximo do campo.
PromptChar Caracter utilizado para pedir input ao usuário.
PromptInclude Indica se os caracteres PromptChar serão incluídos na
propriedade Text.
47
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Executando a Aplicação
11. Pressione F5 ou selecione Start do menu Run.
12. Experimente digitar números no nome, letras no telefone e etc.
48
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Frames, check boxes e option buttons possibilitam mostrar ao usuário conjuntos de opções
entre as quais ele pode escolher. O arranjo na tela dos frames e option buttons definem
grupos independentes de opções. A escolha em um grupo não afeta a escolha em outro.
49
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
5.4.1 Frames
Propriedades Descrição
Caption O título do frame.
Name Nome do controle usado no código.
Visible Indica se um frame e seus controles estão visíveis ou não.
Observação : Para colocar controles dentro de um frame, você tem que criar primeiro o
frame; selecioná-lo e, então, criar os controles dentro dele. Ou então, caso os controles
tenham sido criados anteriormente, deve-se recortá-los, selecionar o frame e, dentro deste,
colá-los (Cut e Paste).
Check Boxes são usados, normalmente, para permitir uma ou mais escolhas independentes,
não exclusivas, em relação a outras já efetuadas.
EVENTOS
Click O evento click indica que o usuário fez uma seleção. Ao ocorrer este evento , o
Check Box é marcado/desmarcado conforme o seu valor anterior.
50
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Option Buttons são normalmente utilizados para criar conjuntos de escolhas mutuamente
exclusivas dentro de um contexto, que pode ser a tela, um frame ou um frame dentro de
outro.
Propriedades Descrição
Caption Valor da opção na tela.
Name Nome interno do controle.
Enabled Define se o controle está ativo ou não.
Value Indica se um option button está marcado ou não.
Visible Define se o controle está aparente ou não.
EVENTOS
Click Quando o usuário clica sobre o option button, uma série de acontecimentos
ocorrem : o option button selecionado é marcado, os outros Option Buttons do contexto são
desmarcados e a propriedade value, para cada option button do contexto é atualizada com a
nova seleção.
51
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Suponha que você queira criar uma aplicação onde um texto escrito em um Text Box possa
ser formatado por você :
52
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Text1.FontItalic = False
End If
24. Clique duas vezes sobre CKBSublinhado, uma janela de código deve aparecer.
25. Escreva os seguintes comandos :
If CKBSublinhado.Value = 1 Then
Text1.FontUnderline = True
Else
Text1.FontUnderline = False
End If
Executando a Aplicação
26. Pressione F5 ou selecione Start do menu Run.
27. Experimente apertar os botões e os Check boxes para ver o que acontece.
53
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Propriedade Descrição
Cancel Ativa o botão quando o Esc for pressinado.
Caption Valor do botão que aparece na tela.
Default Ativa botão quando o Enter for pressionado.
Enabled Permite, ou não, o acesso ao botão.
Height Altura do botão.
Left Posição da borda esquerda em relação ao formulário.
Name Nome do controle usado internamente.
Top Posição da borda superior em relação ao formulário.
Width Largura do botão.
EVENTOS
Click Normalmente, significa que o usuário deseja que alguma ação seja tomada. Neste
caso, você deverá escrever o código correspondente.
54
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Determina que, se o usuário pressionar a tecla de Enter, de qualquer ponto da tela, o evento
Click do botão Default ocorrerá. Existe no máximo um botão default por tela.
Determina que se o usuário pressionar a tecla de Esc, de qualquer ponto da tela, o evento
Click do botão, cuja propriedade Cancel estiver com valor True, ocorrerá. Existe no máximo
um botão cancel por tela.
Obs.: No evento Click de botões cujas propriedades Default ou Cancel tenham valor
True, deve existir um comado transferindo o foco para o próprio botão
(nome_botão.setfocus), porque se o click do botão for ativado porque o usuário pressionou
ENTER ou CANCEL, o LostFocus do controle onde o foco estava anteriormente não ocorre.
55
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Suponha que você queira criar uma aplicação onde a hora será informada sempre que você
desejar:
Executando a Aplicação
13. Pressione F5 ou selecione Start do menu Run.
14. Experimente apertar os botões.
56
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Existem quatro tipos de controles de listas, cada um com uma função ligeiramente diferente.
Ambas as listas que caem ( Drop Down Combo Box e Drop Down List Combo Box ) foram
projetadas para economizar o espaço de tela utilizado pelo controle. Usuários somente podem
adicionar ítens a uma lista do tipo Drop-Down Combo Box ou Simple Combo Box, pois os
outros tipos permitem apenas escolha entre os ítens existentes.
Todas os List Boxes e combo boxes apresentarão automaticamente uma barra de rolagem,
caso o tamanho da lista ou combo ultrapasse a sua própria altura ( definida pela propriedade
Height).
Nas páginas seguintes, serão apresentados Combo Boxes e List Boxes mais detalhadamente.
57
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
List Boxes mostram um conjunto de ítens entre os quais o usuário pode escolher um ou mais.
Através de código, você pode adicionar ou remover ítens do list box.
Propriedade Descrição
Columns Permite a exibição de múltiplas colunas em uma única lista.
List Vetor que contém a lista dos ítens da ListBox.
Index Índice do item ,da lista, selecionado.
MultiSelect 0 - Permite selecionar apenas um item por vez.
1 - Permite selecionar mais de um item da lista.
2 - Permite seleção do tipo File Manager do Windows,
usando teclas CTRL e SHIFT.
Name Nome interno do controle.
Sorted Indica se a lista estará em ordem alfabética ou não.
Text Retorna o item selecionado da lista.
O vetor boleano SELECTED() indica quais os ítens selecionados da lista, caso você tenha
escolhido uma lista de seleção múltipla.
EVENTOS
58
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
MÉTODOS
Propriedade Descrição
Name Nome do controle internamente.
Style Tipo da combo :
0 - Drop-Down Combo
1 - Simple Combo
2 - Drop-Down List
Text Texto selecionado.
Height Altura do Combo
EVENTOS
Change O evento Change indica que o conteúdo do controle foi alterado. No caso
de combo boxes, o evento change ocorre toda vez que, a parte editavel do combo á alterada.
Obs.: Os métodos AddItem, RemoveItem e Clear, demonstrados no item anterior sobre listas,
também são válidos para Combo Boxes.
59
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Suponha que você queira criar uma aplicação onde você possa incluir nomes em uma lista,
removê-los e limpar a lista por completo :
Criando a Lista
4. Clique duas vezes sobre a ferramenta List Box da Caixa de Ferramentas.
5. Com o List Box selecionado pressione F4 para ter acesso à lista de propriedades.
6. Nomeie esta lista LSBNomes.
60
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Executando a Aplicação
16. Pressione F5 ou selecione Start do menu Run.
17. Experimente adicionar e retirar nomes da lista.
Suponha que você queira criar uma aplicação que associe nomes de funcionários à cargos e à
departamentos de uma empresa:
OBS: Os cargos e departamentos existentes já estão definidos e não deverão ser alterados por sua
aplicação.
ATENÇÃO: Em uma aplicação real, os Combo Box de Cargo e Departamento deveriam ser
preenchidos a partir de uma arquivo que contivessem estas informações.
61
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
CMBDepartamento.AddItem "Marketing"
CMBDepartamento.AddItem "Sistemas"
CMBDepartamento.AddItem "Suprimentos"
CMBDepartamento.AddItem "Recursos Humanos"
Executando a Aplicação
12. Pressione F5 ou selecione Start do menu Run.
62
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Scroll Bars são utilizados quando se deseja demonstrar a posição corrente em uma escala.
Propriedade Descrição
LargeChange Mudança de valor que ocorrerá quando o usuário clicar sobre
o marcador de posição da barra.
Max Valor máximo da barra.
Min Valor mínimo da barra.
Name Nome interno do controle.
SmallChange Mudança de valor que ocorrerá quando o usuário clicar sobre
as setas da barra.
Value Valor correspondente à posição da barra.
EVENTOS
Change O evento Change indica que o conteúdo do controle foi alterado. No caso
de scroll bars , ocorre quando o usuário rola a barra.
63
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Para exemplificar o uso de um scrollbar, usaremos um text box. À medida que você mexer no
Scrollbar, o valor do Text Box também alterará.
Executando a Aplicação
13. Pressione F5 ou selecione Start do menu Run.
14. Movimente-se pelo scrollbar.
15. Experimente alterar o valor das propriedades Large Change e SmallChange.
5.8 Timer
64
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Timers são utilizados para ativar eventos, periodicamente, em um prazo definido por você.
Um exemplo seria sair de uma tela qualquer, quando o usuário deixasse o computador parado
por um intervalo de tempo.
Propriedade Descrição
Enabled Indica se o timer está ativo.
Interval Intervalo de tempo que o controle será ativado.
Name Nome interno do controle.
Obs.: Para um timer funcionar, a propriedade Enabled deve ter o valor True e a propriedade
Interval deve ser diferente de 0.
EVENTOS
Timer Este evento ocorre a cada intervalo de tempo especificado na propriedade Interval do
controle.
65
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Relembrando a aplicação do relógio, agora vamos utilizar um timer para que a hora seja
atualizada a cada segundo.
Criando o Timer
5. Clique duas vezes sobre a ferramenta Timer da Caixa de Ferramentas.
6. Com o Timer selecionado pressione F4 para ter acesso à lista de propriedades.
7. Nomeie este timer TIMsegundo.
8. Coloque o valor 1000 na propriedade Interval, e False em Enabled.
TIMsegundo.enabled = False
Codificando o Timer
13. Clicar duas vezes sobre TIMSegundo, uma janela de código irá aparecer. Certifique-se que o
evento é Timer.
14. Digitar a seguinte linha de código:
TXBHora.text = Format (Now, "hh:mm:ss")
Executando a Aplicação
15. Pressione F5 ou selecione Start do menu Run.
16. Ligue e desligue o relógio.
17.Pare a execução do programa e experimente alterar o valor do Interval do timer.
66
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Picture Boxes são basicamente utilizados para mostrar gráficos ou figuras. No entanto,
picture boxes também podem conter controles. Desta forma, além de agrupar controles afins,
você pode ter várias versões de uma parte de uma tela, em pictures diferentes , fazendo que
apenas a versão (picture) que lhe convier no momento esteja aparente.
EVENTOS
67
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Propriedade Descrição
AutoRedraw Indica se a pintura da Picture Box será feita automaticamente
ou não
AutoSize Se True, ajusta o tamanho da Picture Box de acordo o
tamanho da figura.
Name Nome interno do controle.
Picture Exibe um Dialog Box para definir uma figura, no formato
BMP, WMF ou ICO, com o qual o Picture Box deve ser
preenchido.
Executando a Aplicação
15. Pressione F5 ou selecione Start do menu Run.
68
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
5.10 Grid
Para inserir a feramenta GRID na caixa de ferramentas devemos selecionar o item Microsoft
FlexGrid Control da opção Components do menu Project
Este controle trabalha com um conjunto de propriedades através das quais é possível
selecionar linhas e colunas ( como células em uma planilha ), escrever dentro delas e copiar
dados para elas. Um grid possui um número inicial de linhas e colunas que não pode ser
menor que o seu número de linhas e colunas fixas. O dados que preenchem um grid são
representados por um texto no qual separa-se colunas por Tabs e linhas por CarriageReturn.
Propriedade Descrição
Rows, Cols Indica o numero de linhas e colunas do grid.
FixedRows, FixedCols Número de linhas e colunas fixas do grid.
Principais Métodos
RemoveItem - Adiciona uma linha e seu conteúdo do grid. A linha a ser retirada é a
especificada pelo índice.
Obs.: Índice em ambos os casos significa o número da linha a ser incluída ou retirada.
Exemplos :
Sub Command1_Click ()
'Determina a célula inicial e a preenche
Grid1.col =0
Grid1.Row =0
Grid1.Text = "Nome"
End Sub
Sub Command2_Click ()
'Seleciona um grupo de células e as preenche
Grid1.SelStartCol = 1
Grid1.SelEndCol = 3
Grid1.SelStartRow = 1
Grid1.SelEndRow = 3
tab = chr(9)
carriage_return = chr(13)
texto = "L1C1" + tab + "L1C2" + carriage_return
texto = texto + "L2C1"+ tab + "L2C2"
Grid1.clip = texto
End Sub
69
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Criando o Grid
6. Clique duas vezes sobre a ferramenta Grid da Caixa de Ferramentas.
7. Com o Grid selecionado pressione F4 para ter acesso à lista de propriedades.
8. Nomeie este grid GRDAgenda.
9. Coloque o valor 0 na propriedade FixedCols, e 1 em FixedRows.
10. Coloque o valor 2 na propriedade Cols, e 2 em Rows.
70
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Executando a Aplicação
17. Pressione F5 ou selecione Start do menu Run.
5.11 Foco
Em Windows, apenas um controle, formulário ou janela pode ter o foco de cada vez. Ter o
foco significa que qualquer ação do usuário recai sobre aquele elemento, seja ele um controle
ou uma janela. O foco pode ser transferido pelo usuário ou pela aplicação.
O Visual Basic possui alguns eventos e métodos para o tratamento de foco. A seguir
detalharemos cada um deles.
EVENTOS
GotFocus Acontece sempre que um controle recebe o foco, ou porque o usuário pressionou
Tab, ou porque ele clicou sobre o controle, ou através de aplicação. Note que o Formulário
somente recebe o evento GotFocus quando não há nenhum controle visível dentro dele.
Lost Focus Acontece em um controle sempre que um outro controle recebe o foco, ou porque
o usuário pressionou Tab, ou porque ele clicou sobre o outro controle, ou através de
aplicação.
MÉTODOS
SetFocus Este método, aplicado a qualquer controle, transforma aquele controle no controle
ativo. O SetFocus em um controle, provoca o LostFocus do controle que possuía o foco
anteriormente e o GotFocus do controle ao qual foi aplicado o método.
Sintaxe : controle.Setfocus
Cuidado !!!! Não utilize nunca o método SetFocus dentro de um evento LostFocus.
Dependendo da lógica de programação, isto pode causar loop infinito !!
71
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Objetivo do módulo
Introduzir os tipos de dados do Visual Basic e suas regras de escopo e durabilidade. Este é o
primeiro, de um conjunto de capítulos, que ensina a programação em Visual Basic.
Tipo Descrição
Integer % Inteiro de 2 bytes
Long & Inteiro de 4 bytes
Single ! Num. Ponto Flutuante de 4 bytes
Double # Num. Ponto Flutuante de 8 bytes
Currency @ Num. Ponto Decimal Fixo de 8 bytes
String $ String de caracteres
Variant Data/Hora, string, num de ponto Flutuante
Obs.: Operações que utilizam o tipo de dado Currency são mais rápidas e exatas do que as que
utilizam o tipo Single e Double.
Você pode declarar um variável de duas maneiras : usando o comando Dim ou então, uma das
duas palavras reservadas - Global ou Static. A declaração de variáveis no Visual Basic é
extremamente importante, pois qualquer variável não declarada é considerada como sendo do
tipo Variant.
Cuidado !!! Em declarações de variáveis compostas, especificar o tipo para cada uma delas.
No exemplo abaixo, apenas a última variável será do tipo Integer, as outras serão do tipo
Variant.
Dim I, J, K as Integer
Declaração Obrigatória de Variáveis
Para que a declaração de variáveis no seu projeto seja obrigatória, colocar Yes no item
Require Variable Declaration nas opções de configuração do ambiente.
72
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Quando você não souber o tamanho de uma string, você poderá declará-la com tamanho
variável. Caso contrário, você deverá declará-lo. Uma string de tamanho fixo jamais terá
valor nulo (NULL).
Ex :
Dim palavra as string
Dim palavra2 as string * 50
Inicialização de Variáveis
O Visual Basic, automaticamente, inicializa todas as variáveis numéricas com zero (0) e
todas as strings, de tamanho fixo, com brancos.
Nomenclatura de Variáveis
Variant é o tipo de dado default do Visual Basic. Uma variável do tipo variant pode conter
qualquer tipo de dado : números, letras ou datas. Não é necessário fazer qualquer tipo de
conversão para atribuir valores destes tipos a um variant; o Visual Basic se encarrega de
fazer a conversão automaticamente.
Para saber o tipo de dado que está dentro de um variant, você pode utilizar as seguintes
funções boleanas do VB : IsNumeric e IsDate.
Para somar variáveis do tipo variant, as mesmas devem conter valores numéricos. Para
concatenar variáveis do tipo variant utilizar o símbolo & para evitar ambigüidade.
Sub Command1_Click ()
Dim a
Dim b
a = 3
b = 5
Print (a & b) 'resulta em 35
Print (a + b) 'resulta em 8
End Sub
Variant tem o valor Empty até que algum valor seja atribuído a ela. Empty é um valor
especial diferente de Null, brancos ou zero. Para verificar se uma variável está Empty,
utilizara função IsEmpty do Visual Basic.
6.4 Constantes
73
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Constantes são entidades do programa cujo valor você necessita apenas saber, sem ter que
atualizar. O Visual Basic mantém um arquivo, o CONSTANT.TXT que contém uma série de
constantes predefinidas.
Este arquivo poderá ser adicionado ao seu projeto.
Para declarar uma constante, utilize a palavra reservada Const dentro do general declarations de
qualquer formulário ou de um módulo de código (*.BAS).
74
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Pode-se definir o escopo como sendo o nível de visibilidade de uma variável dentro de uma
aplicação. Já vimos anteriormente que, uma aplicação Visual Basic é composta de
formulários e módulos de procedimentos. Assim sendo, podemos ter variáveis visíveis,
dentro de :
75
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Ao usar a palavra reservada Static ao invés de Dim dentro de uma rotina de um formulário
(.Frm) ou de um módulo de procedimento (.Bas), você estará trabalhando não com o escopo
de uma variável, mas com sua durabilidade. Declarar uma variável como static dentro de uma
rotina significa dizer que aquela variável não será reinicializada cada vez que a rotina for
chamada (apenas no Load do formulário), no entanto ela só estará visível dentro daquela
rotina. Ou seja, ela terá escopo Local e durabilidade enquanto o formulário estiver ativo.
76
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Além dos tipos de dados oferecidos pelo Visual Basic, você também pode criar estruturas de
dados suas. Um exemplo típico é criar estruturas semelhantes a um registro do seu arquivo,
ou criar variáveis que servirão de padrão para a aplicação ( Ex.: Tipo nome é um string de 50
posições; qualquer nome do seu sistema será declarado como sendo do tipo nome, para que
todas tenham o mesmo tamanho).
Sintaxe :
Type tipo-do-usuário
elemento as string
elemento as string
End Type
Exemplo :
Type Reg_cliente
nome as string *50
telefone as string *11
End Type
77
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Criação de Controles
2. Criar 2 controles do tipo Label com os seguintes valores nas propriedades: Caption=Nome e
Name=LBLNome para um controle e Caption=Telefone e Name=LBLTelefone para o outro
controle.
3. Criar 2 controles do tipo Text Box com os seguintes valores nas propriedades:
Name=TXBNome para um controle e Name=TXBTelefone para o outro controle. Inicializar
com branco a propriedade Text de ambos controles.
4. Criar 2 controles do tipo Command Button com os seguintes valores nas propriedades:
Name=CMDIncluir e Caption=Incluir para um controle e Name=CMDMostrar e
Caption=Mostrar para o outro controle.
78
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
6.7 Vetores
Assim como várias outras linguagens de programação, o Visual Basic também permite a criação
de vetores. Vetores são grupos de variáveis de um mesmo tipo que compartilham um nome.
Cada elemento do vetor é identificado por um índice único.
Sintaxe :
Dim nome_vetor(limite_superior) as tipo_de_dado
Observação Por default o primeiro elemento de um vetor tem índice 0, portanto se você
declarar um vetor com o comando Dim vetor(10) as integer, você terá um vetor de 11
elementos e não de 10. Para evitar problemas prefira utilizar a segunda sintaxe, declarando
Dim vetor(1 to 10) as integer.
O Visual Basic permite a criação de vetores com mais de uma dimensão. Desta forma, você pode
criar vetores de até 60 dimensões (matrizes).
Exemplo :
Dim matriz(9, 9) as single
Dim Matriz (1 to 10, 1 to 10) as single
Vetores Dinâmicos
Em alguns casos, você sentirá a necessidade de utilizar um vetor, mas o tamanho do vetor
somente será definido em runtime. O VB permite que você crie vetores dinâmicos, ou de
tamanho variável. Para isso, o vetor deve ser declarado sem tamanho dentro do general
declarations de um formulário ou módulo.
Exemplo :
'Colocar dentro do general declarations de um formulário ou módulo
Dim Vetor() as string * 25
Feito isto, dentro da rotina onde vai ser definido o tamanho, redimensionar o vetor usando o
comando ReDim.
Exemplo :
Sub Command1_click ()
ReDim Vetor (List1.listcount)
End Sub
Importante: Sempre que você usa o comando ReDim, todos os valores contidos no vetor são
perdidos e o vetor é todo preenchido com o valor NULL. Para aumentar o tamanho de um
vetor sem que seu conteúdo seja perdido, utilizar a palavra chave Preserve.
Exemplo :
79
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Sub Command1_click ()
ReDim Preserve Vetor (List1.listcount)
End Sub
Para demonstrar a declaração de variáveis, criaremos um exemplo onde quatro variáveis serão
declaradas diferentemente :
• VAR_GLB - variável global.
• VAR_FRM - variável a nivel de formulário.
• VAR_TIM - variável estática local.
• VAR_LOC - variável estática local a dois procedimentos diferentes.
Teremos também dois formulários, onde um terá todas as funções de display e mudança de
valores das variáveis e outro terá apenas a função de alterar o valor da variável de nível
global.
Criação de Formulários
2. Nomear o formulário aberto de FRMPrimeiro.
3. Criar outro formulário. Nomeá-lo de FRMSegundo.
4. Criar um módulo de código, ou seja, um .BAS.
80
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Criação de Controles
5. Em FRMPrimeiro, criar três botões. Atribuir os seguintes valores às suas propriedades :
Caption Name
Outro Form CMDOutroForm
Botão 1 CMDBotao1
Botão 2 CMDBotao2
Criação de Variáveis
7. Declarar uma variável global do tipo inteiro com o nome de VAR_GL.
8. Declarar uma variável a nível de formulário no FRMPrimeiro do tipo inteiro com o nome de
VAR_FRM.
9. Declar ar uma variável estática local ao eveo Timer do Timer no FRMPrimeiro do tipo
single com o nome de VAR_TIM.
10. Declarar uma variável estática local ao evento click do CMDBotao1 no FRMPrimeiro do tipo
inteiro com o nome de VAR_LOC.
11. Declarar uma variável estática local ao evento click do CMDBotao2 no FRMPrimeiro do tipo
inteiro com o nome de VAR_LOC.
Escrevendo o código
12. Associar ao evento Timer do Timer no FRMPrimeiro, as seguintes linhas de código :
Var_Tim = Var_Tim + 1
If Var_Tim MOD 2 = 0 Then
Var_Frm = Var_Frm + 1
Endif
13. Associar ao evento Click do CMDBotao1 no FRMPrimeiro, as seguintes linhas de código :
Var_Loc = Var_Loc + 1
Print Var_Loc, Var_Frm, Var_gl
Print
14. Associar ao evento Click do CMDBotao2 no FRMPrimeiro, as seguintes linhas de código :
Var_Loc = Var_Loc - 1
Print Var_Loc, Var_Frm, Var_gl
Print
15. Associar ao evento Click do CMDOutroForm no FRMPrimeiro, a seguinte linha de código:
Form2.Show
16. Associar ao evento Load do FRMSegundo, a seguinte linha de código :
Var_gl = Var_gl + 1
Executando a Aplicação
17. Pressionar F5 ou selecione Start do menu Run.
18. Pressione várias vezes os botões e observe o comportamento das variáveis.
81
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Objetivo
Formato:
If condição Then
bloco de comandos
End If
Existem dois tipos de estrutura condicional do tipo If...Then... . A primeira sintaxe, escrita em
apenas uma linha, deve ser utilizada quando apenas um comando for ser executado como
resultado de uma condição verdadeira. Quando, como resultado de uma condição, um bloco
de comandos tiver que ser executado, torna-se necessária a utilização do End If como
demarcador do final do bloco de comandos.
Os seguintes operadores podem ser usados na composição de condições : =, <>, <, >, <=, >=.
If condição1 Then
Bloco de comandos
Bloco de comandos
Else
Bloco de Comandos
End If
Nesta estrutura permite-se testar várias condições em um único bloco de ifs, e reagir
diferentemente a cada uma das situações. Esta estrutura de comandos possui as seguintes
características :
82
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Formato:
Case expressão
Bloco de comandos
Case expressão
Bloco de comandos
Case Else
bloco de comandos
End Select
Exemplos :
Select case variável
case 1,3,5,7 to 11
comandos 'Entra se variável for igual a 1,3,5,7,8,9,10,11
case 2, 4, 6, IS >=12
comandos 'Entra se variável for igual a 2,4,6,12,13,14,15,...
End Select
83
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
7.3 Do While
Formato:
Do While condição
bloco de comandos
Loop
Do
bloco de comandos
7.4 Do Until
Formato:
Do Until condição
bloco de comandos
Loop
Do
bloco de comandos
Ambas sintaxes acima tem a mesma funcionalidade : executar um bloco de comandos até que
uma condição se torne verdadeira. A diferença entre elas é : a composição do until/loop testa
a condição antes de executar o bloco de comandos. Já a composição do/loop until executa o
bloco de comandos uma vez e depois testa a condição.
84
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Formato:
bloco de comandos
{Exit For}
bloco de comandos
Next contador
Esta estrutura de controle permite a execução de um bloco de comandos por um número fixo
de vezes. O incremento pode ser positivo, negativo e em valores não inteiros. Cuidado para
não criar loops infinitos!!!
O Exit For permite a finalização da execução do For Next a partir daquele ponto. Deve-se ter
cuidado para não desestruturar o programa.
7.6 Go to
Formato:
GoTo label
GoTo linha
Este comando faz com que a execução do programa pule para o label ou linha especificada.
Deve ser usado basicamente em rotinas de tratamento de erro, pois sua utilização
generalizada pode causar desestruturação do programa.
85
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
8.0 Codificando em VB
Objetivo do módulo
Fornecer as ferramentas necessárias para que você possa começar a escrever o código por trás
das interfaces em Visual Basic.
Procedimentos são conjuntos de comandos Visual Basic que podem ser chamados de
unidades lógicas. Existem dois tipos de procedimentos : subrotinas e funções.
Sintaxe :
Sub Nome_da_subrotina()
Bloco de comandos
End Sub
Funções Similar a uma rotina. No entanto, é de um tipo de dados, assim como variáveis. Ao
final de sua execução, retorna um valor ao módulo que fez a chamada.
Sintaxe :
Function nome_função() As tipo_de_dados
Blocos de comandos
nome_função = Valor
End Function
86
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Argumentos
Qualquer procedimento pode receber dados, se tiver sido declarado para tal. Cada argumento
passado deve ter seu equivalente ( do mesmo tipo de dado ) na lista de parâmetros da
subrotina ou função.
87
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
A passagem de argumentos para uma função ou subrotina pode ser feita por Valor ou por
Referência. Na passagem por valor, a subrotina ou função recebe apenas uma cópia do
argumento, sendo assim qualquer alteração no argumento dentro da subrotina/função não terá
efeito no dado real.
O Visual Basic, por default, passa argumentos por referência. Para passar argumentos por
valor, utiliza-se a palavra chave ByVal na lista de parâmetros, ou então coloca-se o
argumento entre parênteses na chamada da subrotina/função.
Observações :
3. Você precisa apenas utilizar a palavra chave ByVal ou então os parênteses extra.
Exemplos :
-- declaração da subrotina --
Sub nome_subrotina ( ByVal parâmetro1 as Integer )
Bloco de comandos
End Sub
-- chamada da subrotina --
nome_subrotina (argumento1)
-- declaração de função --
Function nome_função ( ByVal parâmetro1 as Integer) as Integer
Bloco de comandos
nome_função = valor
End Function
-- chamada de função --
Dim resultado as Integer
Resultado = nome_função((argument1))
88
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Event Procedures
89
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Procedimentos de Eventos somente estão disponíveis dentro do formulário onde eles foram
definidos.
90
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Assim como variáveis, procedimentos gerais também têm escopo. Veja no exemplo abaixo
de onde as funções e subrotinas declaradas poderão ser vistas :
Como você pôde observar no exemplo acima, existem três escopos de rotinas: a nível de
formulário, a nível global e a nível privado em módulos.
Declarada com as palavras reservadas Sub ou Function dentro de um módulo. Podem ser
chamadas de qualquer ponto da aplicação.
Utilizar a palavra reservada Private antes de Sub ou Function dentro de um módulo. Somente
podem ser chamadas de dentro dele.
91
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Função Descrição
Chr Retorna um caracter para o código ANSI informado. Ex.: Chr(13) +
Chr(10) , CarriageReturn e LineFeed.
Format Rotina que retorna um número no formato que você quiser. Ex.:
Format(Now, "dd-mm-yy"), traz a data de hoje no formato especificado.
Lcase Retorna o caracter minúsculo do caracter informado. Ex.: LCase("H"),
retorna "h".
Left Traz os n caracteres mais a esquerda. Ex.: Left("gravador",5), retorna
"grava".
Len Traz o tamanho de um string. Ex.: Len("Mar"), retorna 3.
LTrim Retira espaços à esquerda em um string.
Mid Retorna parte de uma string. Ex.: Mid( "reflorestamento", 3, 8), retorna
"floresta".
Right Traz os n caracteres mais a direita. Ex.: Right("armário",3), retorna "rio".
Rtrim Retira espaços à direita em um string.
Trim Retira espaços à direita e à esquerda em um string.
Ucase Retorna o caracter maiúsculo do caracter informado. Ex.: UCase("g"),
retorna "G".
Val Converte um string de dígitos em um número. Ex.: Val("100"), retorna
100; Val("1345,98") retorna 1345.
Função Descrição
CCur Converte uma expressão caracter para tipo currency.
Cdbl Converte uma expressão caracter para tipo double.
Cint Converte uma expressão caracter para tipo integer.
CLng Converte uma expressão caracter para tipo long.
CSng Converte uma expressão caracter para tipo single.
CStr Converte uma expressão caracter para tipo string.
CVar Converte uma expressão caracter para tipo variant.
OBS.: A função CVAR reconhece o indicador de decimal do Brasil (,). Para capturar um número
de casas decimais, usá-la em conjunção com CDBL, CINT, CLNG, CSNG, dependendo do
tipo de número que desejar armazenar.
92
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
9. DATA MANAGER
Neste capítulo será visto passo-a-passo como construir um banco de dados ACCESS.
Para criar um banco de dados selecione a opcão Visual Data Manager do menu Add-Ins
No Data Manager, escolha a opção New do menu File, no exemplo estamos criando um
Banco de Dados ACCESS da versão 7.0
93
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Dentro da janela Database Window dê um clique com o botão direito do mouse e selecione a
opção New Table do menu de contexto.
94
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Dê um nome para sua tabela e clique no botão Add Field para adicionar um campo à sua
tabela. A seguinte janela aparece:
95
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Propiedades Descrição
Definida as propriedades do novo campo, pressione o botão OK. Repita o mesmo processo
para todos os campos que desejar incluir e pressione o botão Close para finalizar a criação de
novos campos.
Agora vamos criar índices para a tabela. Clique no botão AddIndex. A seguinte janela é
mostrada:
Escolha um nome para o índice e os campos a serem indexados dando em duplo clique sobre
eles (na caixa Avaliable Fields). Especifique se o índice é primário (Primary) e se o campo
aceita repetições (Unique).
Para criar outro índice clique no botão OK e para finalizar a criação de índices clique no
botão Close.
96
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Após criar os campos e índices desejados, você deve confirmar a estrutura dando um clique
no botão Build the Table.
Você pode adicionar novos campos ou alterar algumas das propriedades de uma tabela
existente. Isso é feito clicando com o botão direito do mouse sobre a tabela que você deseja
alterar, em seguida escolha a opção Design do menu de contexto.
97
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Após criado o Banco de Dados você pode inserir, apagar, editar e pesquisar registros em
cada tabela.
Na janela Database Window, clique com o botão direito do mouse sobre a tabela que
deseja trabalhar e selecione a opção Open. A seguinte janela é mostrada:
Para inserir um registro, clique no botão Add e entre com os dados nas caixas referentes aos
campos da tabela. Em seguida clique no botão Update.
Para excluir, primeiro selecione o registro a ser apagado e clique no botão Delete.
Para alterar o valor de algum dado, clique no botão Edit. Nas caixas corespondentes entre
com o novo valor e clique no botão Update.
Com os outros botões você pode impor um critério de ordenação (SORT), fazer uma seleção
dos registros (FILTER), mover diretamente a um certo registro (MOVE) e realizar uma busca
(FIND).
98
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
No código acima foi definido na primeira linha uma variável objeto de banco de dados
(Banco), e a seguir usamos o método OpenDatabase para designar o caminho de nosso banco
de dados.
Após abrir o banco de dados você deve definir um Recordset para ter acesso aos dados
contidos no banco de dados.
10.1 Recordset
É o recurso mais importante relacionado com os objetos de acesso a dados. Há três tipos de
Recordset disponíveis:
Snapshot Uma cópia somente de leitura dos dados de uma ou mais tabelas.
• É a única forma de Recordset que aceita o uso de índices, tordando a pesquisa em uma
tabela muito mais rápida
99
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Para abrir uma tabela, defina um objeto Rcordset e use o método OpenRecordset para acessar
a tabela.
Informe a constante DbOpenTable para identificar o tipo de recordset criado. Veja o código
abaixo:
Set Banco=OpenDatabase(C:\diretorio\banco.mdb”)
Set Tabela=Banco.OpenRecordset(“Clientes”,DbOpenTable)
No código acima é definida a variável objeto Recordset Tabela e atribuido a esta variável a
tabela Clientes do banco de dados Banco.mdb.
Método Ação
100
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
O método Seek somente pode ser utilizado com o recordset do tipo tabela (Table).
Um comando Seek só localiza o primeiro registro que satisfaz aos valores de índice
especificados. Para invocar o método Seek é necessário fazer a chamada ao método usando
operadores de comparação (<, <=, >, >=, =, <>), lembrando que os valores de chaves que
estão sendo comparados devem ter o mesmo tipo de dados dos campos no índice de controle.
No código acima definimos a recordset Tabela do tipo Table e a seguir definimos o índice
ativo Tabela.index = “nome” e invocamos o método Seek usando o operador = com nome a
ser procurado. Note que o índice já deve ter sido criado, o operador deve estar entre aspas e
que deve ser separdo por vírgula do valor a ser localizado.
101
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
Após a consulta realizada na tabela, você pode incluir, excluir, editar o seu conteúdo, para
isso utilizamos as propriedades:
Propriedades Ação
102
Somm@ Ediçoes – Amos Lima ([email protected]) - Visual Basic
txtendereco = tabela.endereco
txttelefone = tabela.telefone
End If
End Sub
Private Sub Form_Load()
Set banco = OpenDatabase("c:\alunos\teste.mdb")
Set tabela = banco.OpenRecordset("teste", dbOpenTable)
End Sub
103