Escolar Documentos
Profissional Documentos
Cultura Documentos
Pág. 1 de 70
Microsoft Visual Basic
Objectivos gerais
Pág. 2 de 70
Microsoft Visual Basic
9 No caso de não possuir os conhecimentos necessários de algoritmia, deve concentrar o seu estudo
na unidade respectiva, pois estes são determinantes no sucesso de toda aprendizagem da
programação de computadores;
9 Dominar o ambiente do Visual Basic não apresenta normalmente dificuldades no entanto, para
resolver problemas pontuais, pode recorrer ao manual que acompanha a linguagem ou às ajudas
"on-line" (Help);
9 Senão possuir experiência numa outra linguagem de programação, é aconselhável que comece o
seu estudo por uma linguagem mais simples, por exemplo, o Pascal.
Pág. 3 de 70
Microsoft Visual Basic
CONTEÚDOS
1. Introdução ............................................................................................................................................ 7
Pág. 4 de 70
Microsoft Visual Basic
6. Menus ................................................................................................................................................... 54
6.1. Criação de um menu em tempo de desenvolvimento
Pág. 5 de 70
Microsoft Visual Basic
9. Ficheiros .............................................................................................................................................. 60
9.1. Ficheiros sequenciais
9.1.1. Abertura de um ficheiro sequencial
9.1.2. Fechar um ficheiro
9.1.3. Leitura em ficheiros sequenciais
9.1.4. Escrita para um ficheiro sequencial
9.1.5. Leitura de um ficheiro como uma sequência de bytes
Pág. 6 de 70
Microsoft Visual Basic
O Visual Basic é uma linguagem de programação adequada aos sistemas operativos com elevadas
potencialidades gráficas da Microsoft (Windows 3.x, Windows 9x/ME e Windows NT/2000/XP), permitindo o
desenvolvimento de aplicações 16 bits e 32 bits, conforme a plataforma de desenvolvimento escolhida.
Estes ambientes, requerem aplicações estruturalmente diferentes das desenvolvidas
"tradicionalmente" e que, consequentemente, apresentam diferenças a vários níveis.
Ao contrário das aplicações "procedurais" (tradicionais), em que o fluxo da aplicação segue por um
caminho definido, executando procedimentos de acordo com as necessidades, as aplicações orientadas a
eventos (aplicações do Visual Basic), executam porções de código de acordo com eventos produzidos pelo
utilizador ou pelo sistema. Logo, a ordem de execução do código depende dos eventos produzidos, que, por
sua vez, dependem do que o utilizador faz. Como não se pode prever o que o utilizador irá fazer, o código
deverá considerar todas as situações, ou quando não o fizer, deverá pelo menos indisponibilizar as
operações susceptíveis de colidirem com a normal execução do programa. Por exemplo, não permitir que o
utilizador entre numa determinada opção do menu ou pressione determinado botão, quando a execução
dessas tarefas não faz sentido ou provoca erro.
Janelas múltiplas
Uma aplicação com alguma complexidade em Visual Basic utiliza várias janelas interdependentes.
Ora, isto traz implicações ao nível do desenvolvimento (estruturação da aplicação) e posterior controle da
execução da aplicação
Pág. 7 de 70
Microsoft Visual Basic
Resumindo: a utilização deste tipo linguagens trouxe um enorme acrescento em termos de produtividade e
qualidade do produto desenvolvido, provocando, simultaneamente, um corte radical com a
estrutura clássica de uma aplicação.
Pág. 8 de 70
Microsoft Visual Basic
2. Ambiente de desenvolvimento
Caixa de
Ferramentas Menu e barra de Form
ferramentas Projecto
Propriedades
Pág. 9 de 70
Microsoft Visual Basic
A janela dos menus e barra de ferramentas (Fig. 1) permite efectuar, entre outras, as seguintes
operações:
9 Criar/guardar ficheiros e impressão (File);
9 Editar (Edit);
9 Visualizar ou não componentes do ambiente de desenvolvimento (View);
9 Inserir componentes ao projecto (Project);
9 Compilar, depurar e executar (Run);
9 Seleccionar ferramentas, configurar opções e invocar o editor de menus (Tools);
9 Abrir programas externos, nomeadamente para gerir bases de dados e relatórios (Add-Ins);
9 Utilizar a ajuda (Help).
O Visual Basic contem ferramentas que são usadas para desenhar controlos nos forms. Cada
ferramenta da ToolBox representa um controlo:
OLE
Pág. 10 de 70
Microsoft Visual Basic
A programação em Visual Basic assenta em alguns conceitos fundamentais, que devem ser
entendidos, para que se possa ter sucesso na utilização desta ferramenta de desenvolvimento. Os
conceitos fundamentais do VB são: projecto, form, controlo módulo, objecto, propriedade, evento e método.
Durante o desenvolvimento de uma aplicação em Visual Basic, às várias janelas (windows) que
constituem a aplicação damos o nome de forms.
Nos forms (formulários), iremos incluir os controlos que vão permitir implementar as funcionalidades
requeridas. Por exemplo: etiqueta (controlo destinado a mostrar texto), caixa de texto (controlo destinado à
introdução de texto), botões de comando, etc.
Exemplo: Form
Pág. 11 de 70
Microsoft Visual Basic
Fig. 3 - Form de uma aplicação Visual Basic para a implementação de uma calculadora
Um form inclui, para além das suas componentes visuais (controlos que permitem construir o
interface), o código que lhe está associado. É possível visualizar a programação escolhendo a opção View
Code na janela do projecto. (Existem outras formas de visualizar o código associado ao form sendo esta
apenas uma das possíveis.)
3.3. Controlos
Os controlos podem ser incorporados nos forms mediante a selecção das ferramentas respectivas,
disponíveis na barra de ferramentas (Fig. 2).
Os controlos para além de conferirem às aplicações desenvolvidas em Visual Basic um grande
apelo visual, aumentam também a produtividade, pois permitem um desenho simplificado do interface da
aplicação).
3.4. Propriedades
Todos os controlos e mesmo os forms possuem características, por exemplo, largura e altura,
nome, cor, etc. A estas características dá-se o nome de propriedades.
Em tempo de desenvolvimento (quando se procede ao desenho dos forms, elaboração dos
programas, etc.), definimos os valores iniciais das propriedades, quer como consequência das operações
de desenho (por exemplo, quando arrastamos uma caixa de texto para uma determinada posição com o
rato, alteramos as suas propriedades Left e Top), quer através da alteração directa dos valores das
propriedades na janela respectiva.
Em termos de execução, os valores iniciais das propriedades podem geralmente ser alterados
através de instruções. No entanto, existem propriedades cujo valor não pode ser alterado em tempo de
execução. Por exemplo, o nome de um form (propriedade Name) não pode ser alterado durante a execução
do programa.
Existem também propriedades cujo valor só pode ser alterado em tempo de execução.
A alteração do valor de uma propriedade, em tempo de execução, é feita utilizando a seguinte
sintaxe:
em que:
9 ob jec to é o nome do controlo ou form respectivo;
Pág. 12 de 70
Microsoft Visual Basic
3.5. Eventos
O interface com o utilizador numa aplicação Visual Basic é constituída por objectos: forms e
controlos que são usados para os utilizadores visualizarem e introduzirem informação. Cada um destes
objectos, dependendo do seu tipo, reconhece acções desencadeadas pelo utilizador ou pelo decurso da
própria aplicação. Por exemplo, acções do utilizador como: clicar num botão, abrir um form, digitar o
conteúdo de um campo, são reconhecidas pelos objectos respectivos. A estas acções dá-se o nome de
eventos.
Quando um evento ocorre, é executado o código escrito pelo programador na subrotina associada a
esse evento. Por exemplo: quando o botão de comando (Command1) recebe um clique do rato é executado
o código incluído na subrotina que lhe está associada (Private Sub Command1 Click()). A este tipo de
subrotinas, dá-se o nome de event procedures.
Exemplo:
Pág. 13 de 70
Microsoft Visual Basic
Resumindo: O desenvolvimento de uma aplicação em Visual Basic consiste pois: no desenho dos forms,
ajuste das propriedades dos forms e dos controlos neles incluídos e na elaboração do código
(de acordo com as acções que a aplicação terá que tomar, mediante os eventos a controlar).
Para que a programação seja clara, eficiente e estruturada convém que se utilizem
subrotinas e funções, sempre que tal se justifique. As subrotinas e funções devem ser incluídas
em módulos
Pág. 14 de 70
Microsoft Visual Basic
4. Fundamentos de Programação
O Visual Basic, ao contrário de outras linguagens (por exemplo, o Pascal), não obriga à declaração
prévia e explicita das variáveis usadas. No entanto, e dependendo da situação essa declaração é mais ou
menos importante, para além de ser boa prática de programação.
A instruçao adequada à declaração de uma variável é a instrução Dim, seguindo-se o nome da
variável e o tipo de dados que a variável irá conter:
9 nome da variável tem de ser único para variáveis diferentes com o mesmo âmbito. Se as variáveis
tiverem âmbitos diferentes, podem existir variáveis diferentes com o mesmo nome.
Pág. 15 de 70
Microsoft Visual Basic
Long (inteiro longo) 4 bytes -2 147 483 648 a 2 147 483 647
-1,79769313486232E308 a
Double (vírgula flutuante –4,94065645841247E-324 (negativos) e
8 bytes
precisão dupla) 4,94065645841247E-324 a
1,79769313486232E308 (positivos)
Exemplo:
Pág. 16 de 70
Microsoft Visual Basic
Para variáveis numéricas, a escolha do tipo de dados adequado à variável deve ter em conta o
intervalo de valores que o tipo suporta. Se for atribuído à variável um valor fora da gama de valores
permitida para o tipo escolhido, podemos obter resultados inesperados.
Como já se disse, a declaração das variáveis e do respectivo tipo não é obrigatória. No entanto, se
a declaração não for explicita podemos obter igualmente resultados inesperados.
Para obrigar a que num determinado form ou módulo as declarações de variáveis tenham de ser
feitas de uma forma explicita, coloca-se a instrução Option Explicit na secção de declarações respectiva.
Para o tipo de dados String podemos ainda definir um comprimento fixo, da forma:
S t r in g* < t am a n ho >
Exemplo:
D i m n o m e A s S tr i n g* 4 0
Esta forma de declaração de strings assume particular importância para a declaração de campos de
texto, em ficheiros.
Como as strings de comprimento fixo são preenchidas com espaços até ao seu comprimento
máximo, é útil a utilização das funções Trim e RTrim que permitem retirar esses espaços.
O tipo de dados Boolean é adequado a valores lógicos: True (verdadeiro) ou False (falso).
Exemplo:
Pág. 17 de 70
Microsoft Visual Basic
Uma variável do tipo Object usa 4 bytes e refere-se a objectos da própria aplicação ou doutra (por
exemplo: o clipboard). Para fazer atribuições a variáveis declaradas como objecto usa-se a instrução Set.
Converte uma
Função de Conversão
expressão para o tipo
CBool Boolean
CByte Byte
CCur Currency
CDate Date
CDbl Double
CInt Integer
CLng Long
CSng Single
CStr String
CVar Variant
CVErr Error
Pág. 18 de 70
Microsoft Visual Basic
Os arrays, também conhecidos por vectores e matrizes, são um conjunto de variáveis do mesmo
tipo de dados referenciadas por um índice, ou por vários, conforme tenham uma ou mais dimensões.
Aos arrays unidimensionais dá-se normalmente o nome de vectores e aos bidimensionais dá-se o
nome de matrizes.
Exemplo:
A referência a cada elemento do vector é feita da forma: v(0) ,v(1) ,v(2),..., v(9).
No Visual Basic, por defeito, o primeiro elemento do vector tem o índice 0 (zero). No entanto,
podemos alterar o valor de defeito para 1, definindo Option Base 1 na secção de declarações de um
módulo.
Outra forma de especificar o intervalo de índices dos elementos de um vector é declara-los da
forma:
Dim v (1 To 10 ) As Integer
Dim v1 (100 To 200 ) As Boolean
... declara o vector de inteiros v com índices entre 1 e 10, e o vector v1 com índices entre 100 e 200.
Pág. 19 de 70
Microsoft Visual Basic
As variáveis e arrays podem ser declarados usando alternativamente à instrução Dim, as instruções
Public e Private. Iremos analisar quais as diferenças decorrentes da utilização de Dim, Private e Public mais
para a frente neste manual.
Algumas vezes, pode não se conhecer com exactidão a dimensão de um array. Assim, é importante
que exista a possibilidade de alterar a dimensão do array durante a execução da aplicação. Para esse
efeito, existe a instrução Redim que, para além de resolver o problema de arrays cuja dimensão não se
conhece à partida, torna a gestão de memória mais eficiente. Caso contrário, teríamos que declarar um
array do tamanho máximo possível, desperdiçando memória.
Um array de dimensão dinâmica declara-se da forma:
Dim v ()
... e, quando for conveniente num procedimento, dimensiona-se o vector para o número de elementos
pretendidos.
Exemplo:
R e D i m v (x )
Atenção: ao contrário da instrução Dim, a instrução ReDim é uma instrução executável em run time, não
podendo ser incluída numa das secções de declarações (nem tal faria sentido).
Quando se altera a dimensão de um array dinâmico o seu conteúdo é perdido. Para que tal não
aconteça e necessário incluir a palavra Preserve na instrução ReDim.
Exemplo:
R e D i m P r ese r v e v (x )
Pág. 20 de 70
Microsoft Visual Basic
... desta forma, o vector não é inicializado sendo o seu conteúdo perdido.
Nos arrays multidimensionais, somente a última dimensão pode ser alterada quando se usa a
palavra Preserve.
... o número de colunas (ultima dimensão) da matriz m foi alterada para mais um elemento.
As funções LBound e UBound fornecem, respectivamente, o limite inferior e superior dos índices
das dimensões fornecidas como parâmetros.
Para que a programação seja clara, devem ser utilizadas constantes. As constantes são usadas
quando pretendemos usar um nome significativo que represente um determinado valor constante.
Uma constante, como o nome indica, não pode alterar o seu valor no decurso do programa. A
utilização de constantes não desperdiça memória, visto que é utilizado pelo compilador um método
semelhante ao de busca e substituição, substituindo as constantes pelos seus valores literais.
A sintaxe da declaração de constantes é a seguinte:
Por exemplo:
C on s t N L inh a s=4 0
O Visual Basic permite criar novos tipos de dados recorrendo aos tipos de dados existentes.
A declaração de tipos de dados definidos pelo utilizador só pode ser feita na secção de declarações
de um módulo.
Pág. 21 de 70
Microsoft Visual Basic
Exemplo:
Typ e f ic ha al un o
n u m A s In teg e r
nome As String*40
idade As Integer
En d Typ e
A declaração de variáveis usando tipos definidos pelo utilizador segue o mesmo formato das
declarações de variáveis de tipos intrínsecos.
Exemplo:
D i m a lu n o A s f ic h a al un o
A referência a cada um dos elementos individuais que constituem a variável é feita da forma:
Exemplo:
aluno. num=101
Podem ser declarados igualmente arrays tendo por base tipos de dados definidos pelo utilizador, da
forma:
D i m v a lu n o s ( 1 0 ) A s f ic h a al un o
Pág. 22 de 70
Microsoft Visual Basic
Como já se disse, a forma usual de declarar variáveis é utilizando a instrução Dim. No entanto, para
fins específicos, usamos as instruções Private, Public e Static.
As variáveis declaradas em procedimentos são locais aos procedimentos em que são declaradas.
Logo, são apenas "reconhecidas" dentro do procedimento em que foram declaradas.
A declaração de variáveis dentro de procedimentos é feita utilizando as instruções Dim e Static. Por
exemplo:
Dim x As Integer
ou
S t a t ic x A s I n t e g e r
A diferença entre estas duas formas de declaração reside no tempo de vida da variável, isto é,
enquanto que da primeira forma a variável desaparece da memória após a execução do procedimento (ou
dito de outra forma, só existe em memória enquanto o procedimento está a ser executado); da segunda
forma, embora continue a ser visível apenas dentro do procedimento, reside na memória enquanto a
aplicação estiver em execução. A vantagem desta última situação reside no facto da variável manter o
último valor entre execuções do procedimento.
Por defeito, uma variável declarada ao nível do módulo é "visível" em todos os procedimentos
desse módulo, mas não nos outros módulos da aplicação. Para declarar variáveis de nível de módulo
podem devem ser usadas as instruções Public ou Private, na secção de declarações (topo do módulo). Por
exemplo:
P ub l ic x As I n t eg e r
ou...
Pág. 23 de 70
Microsoft Visual Basic
P r iva t e y As In t e g e r
Ao declaramos uma variável como pública (Public) num dos módulos, esta torna-se disponível em
todos os procedimentos da aplicação (incluindo procedimentos em forms ou módulos distintos).
Num módulo, as instruções Dim e Private podem ser usadas alternativamente, permitindo declarar
variáveis privadas ao módulo em questão. Não é possível declarar variáveis públicas em procedimentos.
Considere a seguinte aplicação com 2 forms (form1 e form2), 2 módulos (Module1 e Module2) e 12
variáveis X1, X2, ... , X12, do tipo inteiro, declaradas em diferentes forms, módulos e procedimentos da
aplicação.
Form1:
( D ec la r a t io n s – D ec l a ra ç õ es )
Dim X1 As Integer
...
Private Sub A()
Dim X2 as Doub le
…
En d Sub
P r iva t e S ub B ( )
Dim X3 As Integer
...
En d Sub
Form2:
( D ec l a r a t io n s - D ec l a raçõ e s )
P ublic X4 As In teger
P r iva t e X5 A s I n teg e r
...
Private Sub C()
Dim X6 As Boolean
…
En d Sub
Pág. 24 de 70
Microsoft Visual Basic
Module1:
( D ec l a r a t io n s - D ec l a raçõ e s )
Dim X7 As Integer
P r iva t e X8 A s I n teg e r
P ublic X9 As In teger
...
Sub D()
Dim X10 As Integer
S t a t ic X 1 1 A s I n teg e r
…
En d Sub
Module2:
( D ec l a r a t io n s - D ec l a raçõ e s )
...
S ub E ( )
Static X12 A s B oolean
…
En d Sub
Pág. 25 de 70
Microsoft Visual Basic
Como se pode verificar através do exemplo anterior, a instrução Private pode em algumas
circunstâncias ser alternativa à instrução Dim. Nestes casos, é aconselhável a utilização da instrução
Private pelo contraste evidente com a instrução Public.
4.7. Operadores
Exemplos:
n u m=10
nome=”Luis Campos Santos”
... atribui o valor 10 à variável numérica num e “Luis Campos Santos” à variável do tipo string nome.
Operador Significado
+ Adição
- Subtracção
* Multiplicação
^ Exponenciação
\ Divisão de inteiros
/ Divisão
Mod Resto da divisão
Exemplos:
Pág. 26 de 70
Microsoft Visual Basic
Exemplos:
9 Concatenação de uma variável do tipo string com uma literal do mesmo tipo:
S1 =”L isbo a”
S2 =S1 & “, 10 de Fev ereiro de 1997 ”
9 Concatenação de uma variável do tipo string com uma string, um número e uma variável numérica:
S1 =”L isbo a”
Ano=1997
S2 =S1 & “, “ & 10 & “ de Fev er eiro d e “ & Ano
Para a concatenação de strings (variáveis ou literais) com outras strings, pode ser usado
alternativamente o operador +.
Operador Significado
= Igual
<> Diferente
< Menor
Pág. 27 de 70
Microsoft Visual Basic
> Maior
Operador Significado
Not Negação
And E lógico
Or Ou lógico
Xor Ou lógico exclusivo
Eqv Equivalência
Imp Implicação
A precedência dos operadores determina quais as operações que, numa expressão, serão
executadas em primeiro lugar. A não observância das regras de precedência dos operadores aquando da
construção de expressões, pode conduzir a resultados inesperados.
Pág. 28 de 70
Microsoft Visual Basic
9 +e–
O sinal de parêntesis altera a precedência dos operadores, sendo realizadas em primeiro lugar as
operações entre parêntesis.
4.8.1. Instruções
4.8.2. Funções
Pág. 29 de 70
Microsoft Visual Basic
4.8.3. Métodos
Print Imprime
As estruturas de controlo determinam o fluxo da aplicação durante a sua execução. Nas estruturas
de controlo incluem-se as estruturas de decisão e ciclos (estruturas de repetição).
4.9.1.1. If...Then…
Sintaxe:
I f <con d iç ão > Th en
< i n s tr uçõ e s >
En d I f
Pág. 30 de 70
Microsoft Visual Basic
A condição é normalmente uma comparação, que após ser avaliada assume o valor True ou False
conforme a condição seja verdadeira ou falsa, respectivamente. Pode também ser um valor numérico que,
se for igual a 0 (zero), a condição é considerada falsa; para outro qualquer valor, a condição é considerada
verdadeira.
Exemplos:
I f i da d e >1 8 t h en a d u l to= T r ue
... se a variável numérica idade for maior do que 18, à variável lógica adulto é atribuído o valor True.
I f idade>18 Then
a d u l t o =T rue
ms gb ox “É u m a d ul to”
En d I f
... se a variável numérica idade for maior do que 18, à variável lógica adulto é atribuído o valor True e é
mostrada uma caixa de diálogo com a mensagem “É um adulto”.
Sintaxe:
I f <con d iç ão1 > Th en <in s truç ão1 > E l se < ins tru çã o2>
... se a condição1 for verdadeira executa a instrução1; se for falsa, executa a instrução2.
... neste caso, as condição1, condição2, ... são avaliadas até ser encontrada uma condição verdadeira,
sendo executado o bloco de instruções respectivo. Se nenhuma das condição é verdadeira, é executado o
Pág. 31 de 70
Microsoft Visual Basic
Exemplo:
I f idade>18 Then
a d u l t o =T rue
E lseif idade> 13 then
a d o l e sc en t e= T r ue
E ls e
C r ianca = Tru e
En d I f
... se a idade for maior do que 18, à variável adulto é atribuído o valor True; se for maior do que 13, à
variável adolescente é atribuído o valor True; nos outros casos, é atribuído o valor True à variável criança.
A instrução Select... Case... é uma alternativa à instrução If... Then... ElseIf..., para a execução
selectiva de um bloco de instruções a partir de blocos de instruções múltiplos, tomando a selecção mais
eficiente e legível.
Sintaxe:
S e l ec t C a s e < e x p r e s sã o _ t es t e >
[ C a s e < l is ta _ d e_v al o r es_ 1 >
[ <b l o c o _ d e_ in s t ruç õ e s_1 >] ]
[ C a s e < l is ta _ d e_v al o r es_ 2 >
[ <b l o c o _ d e_ in s t ruç õ e s_2 >] ]
. . .
[ C as e El s e
[<b loc o_de_ in s truç ões_n > ]]
En d Selec t
Se a lista_de_valores tiver mais que um valor, os valores devem ser separados por vírgulas. Cada
bloco_de_instruções pode ter zero ou mais instruções, e só será executado o primeiro deles, quando
existirem vários Cases que satisfaçam a expressão_teste. A cláusula Case Else é opcional, e só será
executado o bloco de instruções que lhe está associado, quando nenhum dos Cases satisfizer a
Pág. 32 de 70
Microsoft Visual Basic
expressão_teste.
Exemplo:
S e l ec t C a s e e s t a do_ c iv i l
C a se 1
M s gBox “Solteiro ”
C a se 2
M s gBo x “ C a s a do ”
C a se E l s e
M s gBox “ Ou t r o es t a do c iv i l”
En d Selec t
... com base na variável estado_civil mostra-se o estado civil correspondente. Se o estado civil for diferente
de 1 ou de 2, emite a mensagem “Outro estado civil”.
Os ciclos, como o nome indica, permitem executar repetitivamente uma ou mais linhas de código.
Sintaxe:
F o r <co n t a d o r > = < iníc io> T o < fim> [S tep <inc r em ento > ]
< i n s tr uçõ e s >
N e x t [< c o n t a d o r > ]
Os argumentos início, fim e incremento são numéricos, tendo que ser o início inferior ou igual ao fim,
se o incremento for positivo. Se o incremento for negativo, o início tem que ser superior ou igual ao fim. Nos
restantes casos, o ciclo nunca é executado.
Por defeito, o incremento é 1.
Pág. 33 de 70
Microsoft Visual Basic
Exemplo:
For i=1 to 10
P r in t “O v al or da v a r iáv el i é”; i
Next
D o Wh i le <co nd iç ão >
< i n s tr uçõ e s > Testa antes
(Enquanto)
Lo op
Se a condição for falsa quando o ciclo é executado pela primeira vez, as instruções que lhe estão
associadas nunca são executadas. Se a condição for verdadeira, as instruções são executadas seguindo-
se, novamente, o teste à condição. O processo repete-se sucessivamente até à condição ser falsa, que
termina a execução do ciclo.
A sintaxe para a execução repetitiva de um bloco de instruções, enquanto a condição for verdadeira
(True), com teste da condição no fim, é:
Do
< i n s tr uçõ e s > Testa depois
(Enquanto)
Lo op While <co ndiç ão>
Pág. 34 de 70
Microsoft Visual Basic
forma como se testa a condição. Isto é, enquanto que nos dois casos anteriores, a execução do ciclo
terminava quando a condição fosse falsa (executar enquanto condição verdadeira), os 2 tipos que se
seguem, terminam a sua execução quando a condição for verdadeira (executar até condição verdadeira).
Sintaxe:
Os procedimentos nas aplicações Visual Basic são usualmente criadas nos módulos, mas também
podem ser criadas nos forms. Um procedimento é constituído por um cabeçalho e pelo código respectivo.
Pág. 35 de 70
Microsoft Visual Basic
Parte Descrição
Por defeito, e se nada for declarado explicitamente, as subrotinas são públicas (Public).
Pág. 36 de 70
Microsoft Visual Basic
Consideremos o exemplo:
Pág. 37 de 70
Microsoft Visual Basic
Quando se inicia um programa o Visual Basic reserva memória para as variáveis globais e, à
medida que os procedimentos vão sendo chamados, as variáveis locais vão sendo criadas e destruídas
quando termina a execução do procedimento. Se um procedimento for chamado novamente, as variáveis
são recriadas.
Em algumas situações é útil que o valor armazenado numa variável local não seja perdido, quando
a execução do procedimento termina.
A declaração de variáveis do tipo Static resolve este problema.
Exemplo:
... como a variável contador está declarada como Static, esta é incrementada sempre que o procedimento é
invocado, não perdendo o valor entre execuções.
Pág. 38 de 70
Microsoft Visual Basic
Uma aplicação em Visual Basic é constituída por objectos. Os objectos podem ser do Visual Basic
(por exemplo: controlos, forms, objectos de acesso a dados, etc.) ou objectos de aplicações externas. Pode-
se inclusive criar e adicionar objectos com propriedades e métodos próprios. Existem também fabricantes
que fornecem objectos que podem ser incorporados em aplicações Visual Basic para complementar as
funcionalidades disponíveis de base.
Um objecto é uma combinação de código e dados que é tratada como uma unidade e que constitui
uma peça da aplicação. A aplicação em si também é considerada pelo Visual Basic como sendo um
objecto.
Um objecto tem, como já se disse, associadas propriedades, eventos e métodos.
Existem objectos com propriedades comuns. Por exemplo: os objectos Label e CommandButton
têm em comum a propriedade Caption, cuja função é idêntica.
Iremos de seguida analisar os objectos, propriedades e métodos mais utilizados. Nos casos em que
existem propriedades comuns, será apenas abordado o objectivo dessa propriedade num deles.
5.1.1. Form
Um Form é uma janela ou caixa de diálogo que faz parte do interface de uma aplicação.
Propriedades
AutoRedraw - Se o seu valor for True, redesenha a form sempre que a ele se volta, após ter sido
sobreposto por outra janela. Se for False, a aplicação deve chamar um procedimento para
efectuar essa operação.
BackColor - Retoma ou define a cor de fundo. Esta cor pode ser especificada utilizando a paleta de cores ou
as funções QBCoIor ou RGBColor.
QB Color(<co r >)
Pág. 39 de 70
Microsoft Visual Basic
Exemplo:
Form1. B a c k C o l o r =Q b C o l o r (1 )
Os argumentos <vermelho>, <verde> e <azul>, cujo valor varia entre 0 e 255, representam a
componente da cor em cada uma das cores básicas.
Exemplo:
Form1.BackColor=RGBColor(255,0,0 )
Pág. 40 de 70
Microsoft Visual Basic
BorderStyle - Configura a linha de contorno do form. O tipo de linha de contorno pode ser um dos seguintes:
ControlBox - Activa ou desactiva os comandos de controlo da janela conforme seja True ou False,
respectivamente.
Enabled - Num form, quando False, provoca que os eventos de teclado e de rato não tenham efeito.
Height, Width - Determinam a altura e a largura do form. Por defeito, estão em Twips uma unidade que é
1/20 de ponto ou 1/1440 de polegada.
Icon - Nome do ficheiro com a extensão .ico (ícone) que representa o form quando este está minimizado.
Quando se cria um executável para a aplicação, o ícone do form inicial é utilizado por defeito, para o
executável.
Name - Nome do form no código do programa. Não pode ser alterado em tempo de execução (run time).
Pág. 41 de 70
Microsoft Visual Basic
Top, Left - Posição do canto superior esquerdo do form, relativamente ao canto do monitor.
Visible - Toma o form visível ou invisível, conforme o seu valor seja True ou False, respectivamente.
WindowState - Determina se a janela é exibida no estado normal (valor 0), minimizada (valor 1) ou
maximizada (valor 2).
Eventos
Procedimentos e métodos
Exemplo:
F o r m1 . C l s
LoadPicture – Permite carregar uma imagem para a propriedade Picture de um form em tempo de
desenvolvimento. Sintaxe:
LoadPic ture(<imagem>)
Exemplo:
Não sendo especificado uma imagem (LoadPicture ()) a função devolve uma imagem em branco.
Pág. 42 de 70
Microsoft Visual Basic
Exemplo:
5.1.2. Controlos
Os controlos são objectos que servem para construir o interface com o utilizador e que podem ser
encontrados na ToolBox. A configuração dos controlos disponíveis na ToolBox é feita na opção do menu
Tools; Custom Controls.
Propriedades
Eventos
Métodos e procedimentos
À semelhança do objecto form, a função LoadPicture é usada para configurar, em run time, a
propriedade Picture.
5.1.2.2. Label
Propriedades
AutoSize – Quando é True, Label é automaticamente dimensionada de acordo com o espaço necessário
para conter o texto especificado pela propriedade Caption.
Pág. 43 de 70
Microsoft Visual Basic
BorderStyle - 0 (zero) para que não tenha linha de contorno ou 1 para linha de contorno simples.
Enabled - É usualmente True. Se for False, a Label não reconhece qualquer evento.
Eventos
5.1.2.3. TextBox
Propriedades
MaxLength - Se for 0 (zero) indica que a TextBox poderá ter tantos caracteres quantos o utilizador desejar.
Caso contrário, o número especificado será o número de caracteres permitido.
MuItiLine - Normalmente esta propriedade assume o valor False permitindo que o utilizador introduza
apenas uma só linha de texto. Caso seja True, o utilizador poderá introduzir mais do que na
linha texto (dando Enter para mudar de linha).
PasswordChar - Quando se pretende que os caracteres introduzidos na TextBox não fiquem visíveis,
podemos incluir nesta propriedade um caracter que será exibido tantas vezes quantos os
caracteres entrados pelo utilizador. Obviamente que os caracteres entrados não são
substituídos pelo PasswordChar para efeitos de processamento, destinando-se apenas a
visualização.
ScrollBars - Pode ser configurada para: 0 (sem barras de deslocamento), 1 (apenas barra de deslocamento
horizontal), 2 (barra de deslocamento vertical) ou 3 (barras de deslocamento horizontal e
vertical).
Text - Contém o texto digitado pelo utilizador. Permite, também, alterar o texto exibido.
Pág. 44 de 70
Microsoft Visual Basic
Eventos
Change - É desencadeado pela alteração do texto pelo utilizador, ou pelo processamento efectuado.
LostFocus - É desencadeado quando se muda de objecto corrente, ou seja, quando se passa, por exemplo,
de Text1 para Text2.
Métodos
SetFocus - Muda o focus para um determinado objecto tomando esse o objecto corrente (não é apenas
utilizado nas TextBoxes). Sintaxe:
Exemplo:
T e x t1 . S e t Fo c u s
Propriedades
Cancel - Esta propriedade é suportada apenas pelos botões de comando. Quando a propriedade Cancel é
True, ao pressionar a tecla Esc, obtém-se o mesmo efeito que clicar no botão. No mesmo form,
apenas um botão de comando pode ter esta propriedade com o valor True.
Default - Esta propriedade, à semelhança da propriedade Cancel, é apenas suportada por botões de
comando. Quando True, ao pressionar a tecla Enter, obtém-se o mesmo efeito que clicar no
botão. No mesmo form, apenas um botão de comando poderá ter esta propriedade com o valor
True.
Pág. 45 de 70
Microsoft Visual Basic
Value - Indica o estado de uma caixa de verificação ou botão de opção. Num OptionButton, indica se está
accionado ou não. Numa CheckBox pode assumir o valor 0, 1 ou 2. O valor 0 (zero) indica que a
caixa de verificação não está assinalada; 1 indica que está assinalada e 2 que a caixa está
desactivada.
Eventos
Procedimento e métodos
Com a excepção do método SetFocus, nenhum do métodos até agora apresentados se aplica a
este tipo de objectos.
5.1.2.5. Frame
Propriedades
A propriedade Name identifica a Frame na aplicação, Caption define o titulo e Enabled quando é
False desactiva todos os objectos nela incluídos.
Eventos
5.1.2.6. ListBox
Pág. 46 de 70
Microsoft Visual Basic
As ListBoxes permitem a selecção de um item a partir de uma lista fornecida. Embora seja possível
definir a lista em tempo de desenvolvimento é mais usual a utilização do método AddItem para adicionar
itens a uma ListBox.
Propriedades
Columns - Quando o seu valor é 0 (zero), os itens são exibidos numa única coluna. Caso o valor seja outro,
os itens da lista serão dispostos em múltiplas colunas.
List - Contem todos os itens armazenados na lista. Pode-se aceder a um elemento individual na lista,
utilizando a sintaxe:
... em que objecto é uma ListBox e <índice> é o índice do item a que se pretende aceder. Por exemplo:
L i s t1 .L i s t (2)
... acede ao terceiro item da ListBox List1. É o terceiro elemento porque os índices das ListBoxes começam
em 0 (zero).
ListIndex - Fornece o índice do último elemento seleccionado. O valor 0 (zero) corresponde ao primeiro
elemento e -1 corresponde a nenhum elemento seleccionado.
Valor Descrição
Pág. 47 de 70
Microsoft Visual Basic
Devolve True se o item relativo ao <índice> estiver seleccionado, e False, no caso contrário.
Métodos
Adiciona ao objecto o item no <índice>. O <índice> é opcional e normalmente não é utilizado, pois
para adicionar no fim da lista, não é necessário incluír o <índice>.
5.1.2.7. ComboBox
Uma ComboBox (caixa combinada) é a mistura de uma TextBox (caixa de texto) com uma ListBox
Pág. 48 de 70
Microsoft Visual Basic
(caixa de lista).
Propriedades
Style - Determina o tipo da caixa combinada e o comportamento da sua parte de lista, podendo assumir os
valores 0, 1, ou 2.
Valor Descrição
Métodos
Os métodos descritos para as ListBoxes podem ser utilizados, igualmente, nas ComboBoxes.
Propriedades
Max - Esta propriedade pode ser configurada para um valor inteiro (entre –32768 e 32767) que determina,
quando o elevador está no extremo direito (barra de deslocamento horizontal) ou na posição inferior
(barra de deslocamento vertical), o valor máximo da propriedade Value.
Pág. 49 de 70
Microsoft Visual Basic
Min - Semelhante à propriedade anterior, só que fornece o valor mínimo da propriedade Value (extremo
esquerdo para a barra de deslocamento horizontal ou posição inferior para a barra de deslocamento
vertical).
Value - Esta propriedade contém um número representando a posição actual do elevador na barra de
deslocamento. Se através de uma instrução, em tempo de execução, alterarmos o valor da
propriedade Value, o elevador tomará a posição que corresponde ao valor atribuído a esta
propriedade.
5.1.2.9. Timer
Propriedades
Eventos
Timer - O evento Timer é gerado em intervalos regulares de tempo definidos pela propriedade Interval.
Os objectos Line (linha) e Shape (forma) são, como o nome indica, uma das maneiras de incluir
linhas e formas no interface da aplicação.
Pág. 50 de 70
Microsoft Visual Basic
Propriedades
BorderColor – Esta propriedade determina a cor de contorno do objecto (ou no caso do objecto Line, a cor
da linha).
BorderStyle – Controla como a linha ou o contorno da forma é traçado. Pode assumir uma das seguintes
configurações:
Valor Descrição
0 Transparente
1 Sólido
2 Tracejado
3 Ponteado
4 Traço – Ponto
5 Traço – Ponto – Ponto
6 Interior Sólido
Valor Descrição
0 Sólido
1 Transparente
2 Linhas horizontais
3 Linhas verticais
4 Diagonal para cima
5 Diagonal para baixo
6 Cruzado
7 Cruzado diagonal
Pág. 51 de 70
Microsoft Visual Basic
Propriedades
Drive - Aplica-se apenas a caixas de lista de unidades e contém o drive actualmente seleccionado.
FileName - Aplica-se apenas a caixas de lista de arquivos e contém o nome do arquivo actualmente
seleccionado.
List, ListIndex - Aplicam-se somente às caixas de lista de arquivos e comportam-se de forma semelhante à
descrita para as ListBoxes.
Path - Nas caixas de lista de arquivos e de directórios, esta propriedade contém o caminho actual. Não se
aplica às caixas de lista de unidades.
Pattern - Contém uma string que determina quais os arquivos exibidos. Suporta caracteres * e ?.
Eventos
Change - É reconhecido somente pelas caixas de lista de unidades e de directórios, e é disparado quando o
utilizador ou uma instrução modificam a selecção na caixa.
PathChange – Aplica-se apenas à caixa de lista de arquivos. Este evento ocorre quando o caminho ou uma
instrução modificam as propriedades Path ou FileName. Este evento permite-nos actualizar
o conteúdo da caixa.
Quando fazemos a cópia do controlo, o Visual Basic pergunta se desejamos criar um vector de
objectos. Se a resposta for afirmativa, será criado um vector de controlos, por exemplo: Label1(0),
Label1(1), etc. Desta forma, os objectos criados serão referenciados por um nome, no caso, Label1 e um
índice (0,1,...).
Esta forma de criar objectos, destina-se a simplificar o código associado a um conjunto de objectos
que, para os mesmos eventos, têm comportamentos análogos.
No seguinte exemplo as Labels, ao sofrerem o evento Click, tornam-se invisíveis.
Pág. 52 de 70
Microsoft Visual Basic
Pág. 53 de 70
Microsoft Visual Basic
6. Menus
Os menus são usualmente um dos componentes de uma aplicação desenvolvida em Visual Basic.
Os menus podem ser criados em tempo de desenvolvimento utilizando o editor que o Visual Basic dispõe
para o efeito, ou em tempo de execução.
Nos menus do Visual Basic pode-se encontrar o editor de menus em Tools; Menu Editor, ou no
No campo Caption, digitamos o titulo de cada uma das opções. Para que uma letra da palavra fique
disponível para acesso via teclado, digitamos o caracter & antes dessa letra. O caracter “-“ permite criar
uma linha de separação entre as opções do menu.
No campo Name digitamos o nome interno das opções. Utiliza-se o campo Index quando se
pretende que a opção seja um elemento de um vector.
No exemplo (fig. 4), utilizou-se principal(0) e principal(1) para referenciar as opções Ficheiro e
Editar, respectivamente. Para as opções encadeadas sob Ficheiro utilizou-se ficheiro(0), ficheiro(1), ...,
ficheiro(4), e para as opções encadeadas sob Editar utilizou-se editar(0), editar(1), etc..
Pág. 54 de 70
Microsoft Visual Basic
P r iva t e S ub e d i ta r _ c l ic k ( in d ex A s I n t e g e r )
S e l ec t C a s e i n d ex
C a se 0
‘ Opç ão c or ta r
...
...
En d Sub
Caso contrário, teríamos uma subrotina por opção aumentando a complexidade do código da
aplicação.
Checked, Enabled e Visible permitem, respectivamente, que a opção fique marcada com um visto,
disponível/indisponível e visível/invisível.
Shortcut permite definir um atalho para a opção (conjunto de teclas para aceder à opção de uma
forma rápida via teclado).
Pág. 55 de 70
Microsoft Visual Basic
Os menus pop-up são menus de contexto que aparecem normalmente em cima do form quando
pressionamos o botão direito do rato sobre um objecto. Para invocar um menu pop-up, utiliza-se a sintaxe:
[ ob j ec to. ]Pop upM en u < no me> [,fl a gs [,x [,y [, <co man do_n egr ito >] ]] ]
Exemplo:
... quando o utilizador clica sobre o form utilizando o botão direito do rato surge como pop-up menu o menu
ficheiro. Alternativamente ao evento MouseUp, poderia ter sido usado o evento MouseDown obtendo-se o
mesmo efeito.
Muitas vezes pretende-se aceder a um menu pop-up que não se quer disponível na menu bar. Para
esse efeito, elabora-se o menu usando o editor e torna-se invisível a sua opção de topo.
Pág. 56 de 70
Microsoft Visual Basic
7. Eventos do rato
Button - Indica qual o botão do rato foi pressionado: 1 - esquerdo, 2 - direito e 4 - meio. Se o rato estiver
configurado para 2 botões, obviamente que o botão do meio não poderá ser testado.
Shift - Este parâmetro representa o estado das teclas SHIFT, CTRL e ALT: 1 - SHIFT está a ser
pressionado, 2 - CTRL está a ser pressionado e 4 - ALT está a ser pressionado.
As aplicações desenvolvidas em Visual Basic suportam uma funcionalidade conhecida por Drag &
Drop, comum nas aplicações Windows. Esta funcionalidade consiste em pegar num objecto e deslocá-lo
para outro sitio, com recurso ao rato.
Para que esta funcionalidade fique disponível é necessário que a propriedade DropMode
(normalmente uma PictureBox ou Image) do objecto de origem esteja configurada para 1.
Quando o DropMode é 1 o controlo não recebe os eventos Click e MouseDown, acompanhando a
posição do rato até o utilizador o soltar. Quando o utilizador solta o objecto de origem, o objecto de destino
recebe o evento DragDrop. Adicionalmente, são enviados para quaisquer objectos sobre os quais passa o
objecto origem o evento DragOver.
A propriedade DragIcon contém o ícone visível quando se arrasta o objecto de origem.
Pág. 57 de 70
Microsoft Visual Basic
8. Tratamento de erros
Quando ocorre um erro durante a execução, o Visual Basic exibe uma caixa de diálogo com a
mensagem correspondente ao erro, abortando a execução do programa. Alternativamente, podemos
capturar e efectuar o tratamento do erro fazendo com que a que a aplicação retome a sua execução de uma
forma controlada.
Para a captura e tratamento de erros, incluem-se as instruções respectivas da seguinte forma:
S ub <n o m e>
[ < i n s t r uç õ es > ]
...
On Er ro r Go to E rr os ‘ In ib e a c ap tur a d e erro s p a ss an do o
[<instruções >] ‘ contro lo para a etiqueta Erro s
...
On Er ro r Go to 0 ‘ D esac tiv a a c ap tu ra de er ros
Ex itSub
E rr os:
’ Codificaç ão para o tratamen to de erros
[ < i n s t r uç õ es > ]
...
En d Sub
On Error Goto Erros - Se ocorrer um erro nas instruções seguintes a esta instrução o controlo será
transferido para o código de tratamento de erros (etiqueta Erros).
Err - Devolve um inteiro indicando o tipo de erro. Os erros estão devidamente tabelados no Help do Visual
Basic.
Error erro - Devolve o erro para ser tratado pelo Visual Basic. Devemos incluir a instrução Error Err para os
erros não testados, por forma a que o Visual Basic os trate.
Resume Next – Retorna a execução do programa, executando a instrução imediatamente seguinte à que
causou o erro.
Pág. 58 de 70
Microsoft Visual Basic
Pág. 59 de 70
Microsoft Visual Basic
9. Ficheiros
Os ficheiros são uma forma de guardar dados em disco, disquete, etc. O Visual Basic permite a
utilização de ficheiros de várias formas, conforme a natureza do ficheiro e o objectivo da sua utilização.
Um ficheiro de acesso sequencial não é mais que uma sequência de bytes (cada byte corresponde
a um caracter), em que são utilizados os caracteres CR (carriage return) e LF (linefeed) para separar as
várias linhas que o constituem.
Exemplo:
...
O Carriage Return (CR) corresponde ao caracter 13, e o Line Feed (LF) ao caracter 10.
Sintaxe:
{InputIOutput|Append} - Abre o ficheiro para leitura (Input), escrita (Output) ou acrescentar informação
(Append).
<número_ficheiro> - Um número que identifica o ficheiro entre 1 e 511. Pode-se utilizar a função FreeFile
para obter o próximo número disponível.
Exemplo:
Pág. 60 de 70
Microsoft Visual Basic
Sintaxe:
Close [#]<número_ficheiro>
Sintaxe:
Exemplo:
… abre o ficheiro “TESTE” para leitura e imprime, uma a uma, todas as suas linhas na janela Debug.
Sintaxe:
Pág. 61 de 70
Microsoft Visual Basic
Exemplo:
... escreve (em duas linhas) no ficheiro “TESTE”: “Isto é um teste de escrita para um ficheiro sequencial”.
Sintaxe:
Lê para uma string o <número> de caracteres especificado, incluindo os caracteres de fim de Iinha,
a partir do ficheiro identificado por <número_ficheiro>.
Exemplo:
... abre o ficheiro “TESTE” para leitura e imprime, um a um, todos os seus caracteres na janela Debug
(incluindo CR e LF).
A função LOF(<número_ficheiro>) retorna o número de bytes que o ficheiro contém.
Pág. 62 de 70
Microsoft Visual Basic
Ao contrário dos ficheiros sequenciais, os ficheiros de acesso aleatório permitem o acesso directo
(aleatório, sem ordem predeterminada) a cada um dos registos que o constituem. Isto é possível porque são
constituídos por registos de comprimento fixo.
Sintaxe:
Exemplo:
Typ e r e g i s to al un o
n u m A s In teg e r
nome As String*40
En d Typ e
... abre o ficheiro de alunos “ALUNOS.DAT”. Cada registo é constituído pelo número do aluno (campo num)
e nome, num total de 42 bytes (2 para o campo inteiro num e 40 para o campo nome). O objectivo da função
Len é, precisamente, determinar o comprimento em bytes do registo.
Pág. 63 de 70
Microsoft Visual Basic
As instruções Get e Put são usadas, respectivamente, para a leitura e escrita em ficheiros de
acesso aleatório.
Sintaxe:
G et # <n ú mer o_f ic h eiro> , [ <n úmero_ r egis to> ], <v ar iáv el>
P u t # <n úmer o_f ic h eiro> , [ <n úmero_ r egis to> ], <v ar iáv el>
A instrução Get lê, a partir do ficheiro identificado por <número_ficheiro>, o registo <número_registo>
para <variável>.
A instrução Put faz a operação inversa.
Em ambos os casos, quando não é especificado o número de registo, é assumido o próximo.
Exemplo:
Type registoaluno
num As Integer
nome As String*40
End Type
... escreve no ficheiro “ALUNOS.DAT” 5 registos com os números 1, 2, ...,5 e nomes “Nome 1”, “Nome 2”,
..., “Nome 5”.
Pág. 64 de 70
Microsoft Visual Basic
Embora em Visual Basic o interface seja normalmente construído com recurso a controlos, também
são suportados métodos gráficos que, em tempo de execução, permitem tarefas como impressão de texto,
desenho de linhas e círculos, modificação de cores, etc.
Quando um form é sobreposto, o Windows gera um evento Paint para que o interface do form seja
recriado. O mesmo processo ocorre quando se minimiza uma janela e, posteriormente, se procede à sua
restauração.
Quando a propriedade AutoRedraw é True, o Visual Basic trata da recomposição da imagem. Como
o Visual Basic faz uma cópia do form para recompor a imagem, esta facilidade obriga ao dispêndio de
grandes quantidades de memória.
11.2. Coordenadas
O Visual Basic oferece um sistema de coordenadas por defeito que especifica as localizações dos
objectos num Form, PictureBox ou Printer. Nesse sistema, o canto superior esquerdo do form (ou de outro
dos objectos possíveis) tem as coordenadas (0,0), e os valores crescem à medida que se movimenta para a
direita ao longo do eixo horizontal, e para baixo ao longo do eixo vertical. As propriedades Top e Left de um
objecto indicam o seu deslocamento a partir do ponto de origem (0,0).
As propriedades Top e Left, assim como as propriedades Width (largura) e Height (altura), estão em
Twips.
Caso seja mais confortável trabalhar com outras unidades de medida, pode-se modificar a
propriedade ScaIeMode do form, para que este adopte outra unidade para o sistema de coordenadas.
Para além das escalas dos eixos horizontal e vertical, podemos também definir um ponto de origem
diferente do canto superior esquerdo. Essa posição é definida pelas propriedades ScaleLeft e ScaleTop,
que por defeito são 0 (zero).
Pág. 65 de 70
Microsoft Visual Basic
Configura as coordenadas do canto superior esquerdo (x1, y1) e do canto inferior direito (x2, y2) do
objecto.
O método Scale sem parâmetros faz com que a escala de medida seja configurada para Twips, e
reconfigura a origem das coordenadas para o canto superior esquerdo do objecto, com coordenadas (0,0).
Sintaxe:
[ ob j ec to ].Po int(x,y )
Retorna o código da cor RGB para o pixel localizado nas coordenadas (x, y).
Sintaxe:
Configura um ponto com uma dada <cor>. A palavra Step é opcional, e permite especificar coordenadas
relativamente à última posição gráfica dada pelas propriedades CurrentX e CurrentY.
Sintaxe:
Permite traçar linhas ou rectângulos entre as coordenadas (x1, y1) e (x2, y2). A palavra Step é
opcional e permite utilizar coordenadas relativas. O parâmetro B é opcional e permite, quando incluído,
desenhar uma caixa (Box). O parâmetro F, permite preencher a caixa.
Pág. 66 de 70
Microsoft Visual Basic
Um programa de Visual Basic pode escrever directamente para a impressora (objecto Printer),
usando os métodos Print, Line, Circle, etc.
O método Scale pode ser usado para configurar a escala utilizada.
O método NewPage permite iniciar uma nova página e o método EndDoc para encerrar a tarefa de
impressão.
Pode-se consultar a propriedade Page do objecto Printer para recuperar o número de pagina actual.
Pág. 67 de 70
Microsoft Visual Basic
O Visual Basic permite aceder a diversos tipos de Bases de Dados, nomeadamente: Access,
FoxPro, DBase e Paradox. O acesso a B.D. pode ser efectuado de duas formas: através do controlo Data
ou por programação. Embora o acesso por programação ofereça mais potencialidades, será abordado
neste manual apenas o acesso através do controlo Data, dada a sua simplicidade.
13.1. Data
Propriedades
Os controlos CheckBox, PictureBox, Label, TextBox e outros, podem ser associados a campos da
tabela ou query usando o controlo Data respectivo.
Os campos lógicos podem ser exibidos em CheckBoxes, os campos com imagens podem ser
exibidos em PictureBoxes e ImageBoxes, e os campos alfanuméricos podem ser exibidos em TextBoxes.
A propriedade DataSource de cada controlo liga-o ao controlo Data respectivo.
A propriedade, DataField identifica o nome do campo (da tabela ou query) ao qual o controlo está
associado.
As alterações efectuadas (nos controlos associados aos campos) modificam automaticamente os
dados na tabela ou query.
Métodos
Refresh - A Base de Dados é aberta para uso ou fechada e reaberta (se já estiver aberta).
Pág. 68 de 70
Microsoft Visual Basic
Delete - O registo actual é eliminado. Este método deve ser seguido de um dos métodos Move, pois o
registo actual desaparece.
A propriedade BOF (Begining-Of-File) é True quando o registo actual está posicionado antes do
inicio dos dados. Isto costuma acontecer quando o primeiro registo é excluído.
A propriedade EOF (End-Of-File) é True quando o registo actual está posicionado além do final dos
dados.
Se qualquer uma das propriedades anteriores for True, o registo actual será inválido.
Se as duas forem True, não existe qualquer registo no conjunto de registos.
Pág. 69 de 70
Microsoft Visual Basic
Pág. 70 de 70