Escolar Documentos
Profissional Documentos
Cultura Documentos
Seb Teo VB
Seb Teo VB
NDICE
1 - CONCEITOS GERAIS
Classes e Objectos
Forms e Controlos
Propriedades
Mtodos
Eventos
2 - O PRIMEIRO EXEMPLO
Ambiente de desenvolvimento
Criar o projecto
Desenhar a interface
8
8
Ajustar as propriedades
Escrever o cdigo
10
11
Gravar o trabalho
11
3 - VARIVEIS E CONSTANTES
13
Tipos de dados
13
Conceito de varivel
13
Declarao de varivel
15
16
Operao de atribuio
16
Constantes
17
Operadores
17
Comentrios
18
19
20
20
22
22
24
26
26
Ciclo Do While
29
29
Ciclo Do Until
Ciclos controlados por sentinela
31
32
Ciclos imbricados
33
35
6 - VECTORES E MATRIZES
Vectores
Declarao de vectores
Processamento de vectores
Pesquisa em vectores
Ordenao de vectores
Vectores de controlos
7 - SUB-ROTINAS
Procedimentos
Passagem de argumentos
Funes
37
37
38
38
40
46
49
49
50
51
52
52
52
54
ii
8 - FUNES PREDEFINIDAS
55
Funes matemticas
55
56
60
Funo InputBox
60
Funo MsgBox
61
63
63
64
9 - CONTROLOS
65
67
67
67
Frames Quadros
68
68
iii
1 - Conceitos Gerais
Programao orientada ao objecto
A programao tradicional baseia-se numa distino clara entre o programa propriamente dito
e os dados que esse programa processa. Nesta ptica, um programa entendido como uma
sequncia de instrues que manipulam os dados que lhe so fornecidos.
Do ponto de vista da programao orientada para objectos, a forma de encarar um programa
substancialmente diferente.
Um programa passa a ser visto como uma simulao de um ou vrios aspectos do mundo real,
pretendendo-se com ele modelizar um conjunto de objectos que interagem com o propsito de
alcanar um dado objectivo.
Assim sendo, o prprio programa estruturado como um conjunto de objectos que interagem
entre si e com o mundo real. Cada objecto do programa uma entidade com caractersticas e
capacidades prprias, contendo dentro de si quer os dados a processar quer os mdulos de
programa que processam esses dados.
Classes e Objectos
Os objectos so normalmente agrupados em classes. Na vida real, um Fiat Punto ou um BMW
podem ser classificados como objectos que pertencem classe automvel. So diferentes,
mas no deixam de partilhar as caractersticas que os definem como automveis. Tambm na
programao por objectos so utilizados objectos que pertencem a classes. Cada objecto
pertencendo a uma mesma classe possui caractersticas comuns a todos os objectos
pertencentes a essa classe.
Pode-se, assim, definir uma classe como a matriz que descreve quais as caractersticas e
capacidades de um dado conjunto de objectos. Em programao, uma classe ser um
conjunto de especificaes que regulam a criao de objectos de um dado tipo.
Conceitos Gerais
Forms e Controlos
Uma aplicao informtica, em ambiente Windows, possui sempre uma ou mais janelas,
mediante as quais se estabelece a interaco com o utilizador.
Conceitos Gerais
Durante a fase de desenvolvimento dessa aplicao em Visual Basic, o nome dado s janelas
Forms.
Em cada janela, ou Form, possvel instalar objectos como botes ou caixas de texto a que
chamamos Controlos e que permitiro interagir com a interface. ainda possvel alterar as
caractersticas (dimensionais ou outras) das Forms bem como configurar os Controlos de
forma a adaptar a interface ao objectivo pretendido com o programa.
As forms pertencem classe Form. Por seu lado os controlos que tenham sido inseridos nas
forms podem ser oriundos de diversas classes. Assim, um boto de comando
(commandButton) pertence classe CommandButton, enquanto uma caixa de texto (textBox)
pertence classe TextBox.
Propriedades
Como na vida real, cada objecto possui caractersticas prprias ou propriedades, que podem
ser quantificadas (por exemplo, as dimenses de um boto de comando ou a cor dum rtulo).
Cada form ou objecto tem associada uma lista de propriedades s quais possvel atribuir
valores que determinam a sua aparncia, localizao e outros detalhes. Pode-se ento dizer
que as propriedades de um objecto definem a forma como ele se apresenta.
Diversos objectos podem partilhar a mesma propriedade. Essa propriedade, no entanto, pode
afectar esses objectos de forma diferente.
Algumas das propriedades mais importantes e que so comuns maior parte dos objectos so
as seguintes:
Propriedade
Efeito
Caption
Name
Left
Top
Height
Width
Font
Visible
Conceitos Gerais
Janela de Propriedades
Mtodos
Um mtodo pode ser visto como uma funo associada a um dado objecto. Essa funo
possibilita efectuar uma determinada aco sobre esse objecto. Tais funes esto disponveis
partida, bastando, pois, saber como as utilizar para obter o efeito requerido.
Dois mtodos comuns maior parte dos objectos e de utilizao frequente so os seguintes:
Move
Este mtodo tem como resultado a deslocao do objecto ou form, bastando para tal,
que lhe seja fornecida a informao de qual a localizao final.
A sua sintaxe : Objecto.Move Left, Top, Width, Height
Objecto representa o objecto ao qual o mtodo Move vai ser aplicado, enquanto Left,
Top, Width e Height so os parmetros a ser fornecidos ao mtodo, ou seja, as
informaes acerca de como efectuar a deslocao. De entre todos os parmetros,
somente o parmetro Left obrigatrio.
SetFocus
Permite definir qual o objecto que est actualmente assinalado. Diz-se, em linguagem
tpica do ambiente Windows, que esse objecto possui o focus, querendo com isso dizer
que ser esse o objecto a ser accionado pela prxima aco do utilizador. Neste
ambiente, ao mesmo tempo, no pode haver mais do que uma janela a possuir o focus
e, dentro dela, s um objecto nas mesmas condies.
A sintaxe deste mtodo : Objecto.SetFocus
Para que o mtodo seja executado, basta associ-lo com Objecto. No h
necessidade de qualquer informao (parmetro) adicional.
4
Conceitos Gerais
Eventos
Por evento entende-se um acontecimento a que um objecto capaz de reagir. A lista de
eventos que um objecto pode reconhecer especfica desse objecto. Um evento pode resultar
de uma aco do utilizador ou decorrer do funcionamento do prprio programa.
Dois dos eventos mais vulgares so o Click (presso simples no objecto com o rato) e o
DoubleClick (dupla presso sobre o objecto).
Quando ocorre um evento que o objecto capaz de reconhecer, uma resposta pode ser
produzida. Essa resposta est exclusivamente dependente de cdigo especificamente escrito
para o efeito pelo programa78 Essa96 rck
2 - O primeiro exemplo
Nesta parte comea-se por apresentar o ambiente de desenvolvimento integrado do Visual
Basic (menu bar, toolbars, toolbox, project explorer window, properties window, form designer e
code editor window).
Depois explica-se como se cria um projecto e detalham-se os passos necessrios construo
de uma aplicao em VB. So eles:
Desenhar a interface
Ajustar as propriedades
Escrever o cdigo
Ambiente de desenvolvimento
O primeiro exemplo
Toolbars
Possibilitam um acesso rpido aos comandos mais frequentemente usados. Basta
clicar uma vez num boto da toolbar para executar a aco associada a esse boto.
Toolbox
Fornece um conjunto de ferramentas usadas para inserir controlos nos forms.
Properties window
Permite modificar a aparncia ou comportamento do form ou controlo seleccionado. As
propriedades so caractersticas dos objectos, tais como tamanho, texto ou cor.
Form designer
a janela de trabalho que serve para desenhar a interface da aplicao com o
utilizador. Inserem-se controlos, grficos e imagens no form para se obter o resultado e
aparncia desejados. Cada form da aplicao tem o seu prprio "form designer".
Criar o projecto
No desenvolvimento de qualquer aplicao em VB comea-se por criar um projecto que reunir
todas as partes necessrias ao funcionamento da aplicao (forms, mdulos, ...).
Para criar um projecto deve-se escolher a opo New Project do menu File e de seguida
seleccionar Standard EXE na janela New Project.
Nota: Quando se corre o Visual Basic pela primeira vez, a janela New Project surge por
defeito.
7
O primeiro exemplo
EXEMPLO
Crie ento um projecto da forma indicada.
Desenhar a interface
O primeiro passo no desenvolvimento de uma aplicao consiste em criar o form que ser a
base da interface dessa aplicao. De seguida desenham-se os controlos necessrios no form
criado.
Os controlos so caixas, botes ou texto desenhados no form para receber ou mostrar
informao.
Para mover um controlo basta clicar com o boto esquerdo do rato sobre o controlo a mover e,
sem largar, efectuar um movimento de arrastamento at chegar posio pretendida.
Para alterar as dimenses selecciona-se o controlo e arrastam-se os handles (8 pequenos
quadrados) em seu redor para dar o tamanho desejado.
EXEMPLO (cont.)
Neste pequeno exemplo vamos usar 3 tipos de controlos:
Controlo
Designao
Descrio
Label (etiqueta)
O primeiro exemplo
Aps ter inserido estes controlos dever obter algo semelhante ao form a seguir
apresentado.
O prximo passo ser o de ajustar as propriedades dos controlos e do prprio form.
Ajustar as propriedades
Todos os objectos que constituem a parte visvel de um programa em Visual Basic tm
propriedades (o prprio form um objecto e tem propriedades).
O primeiro exemplo
EXEMPLO (cont.)
Altere ento as seguintes propriedades:
Objecto
Propriedade
Valor
Form
Caption
Label1
Caption
Graus Celsius:
Text1
Name
txtCelsius
Text
(vazio)
Label2
Caption
Graus Farenheit:
Label3
Name
lblFarenheit
Caption
(vazio)
Name
cmdConverter
Caption
Converter
Command1
Escrever o cdigo
O editor de cdigo - Code Editor - do Visual Basic onde se escrevem as instrues de
resposta s aces do utilizador. Atravs deste editor pode-se rapidamente ver ou editar o
cdigo da aplicao.
Para abrir o editor de cdigo basta fazer duplo-clique no controlo ou form para o qual se
pretende escrever o cdigo.
Editor de cdigo
10
O primeiro exemplo
EXEMPLO (cont.)
Faa duplo-clique no boto Converter, escolha o evento Click e no espao entre as
declaraes "Private Sub cmdConverter_Click()" e "End Sub" escreva a seguinte instruo:
lblFarenheit.Caption = 1.8 * txtCelsius.Text +32
EXEMPLO (cont.)
Corra a aplicao seleccionando a opo Start que se encontra no menu Run, ou
simplesmente premindo a tecla F5.
Para testar a aplicao introduza valores na caixa de texto relativa aos graus Celsius, prima
o boto Converter e confirme o resultado que aparece na caixa de texto dos graus
Farenheit.
Gravar o trabalho
Para guardar o trabalho usa-se a opo Save Project do menu File. O Visual Basic pede ento
para indicar os nomes dos forms e do projecto separadamente, bem como o local onde o
trabalho ficar guardado.
O VB usa as extenses ".frm" para forms e ".vbp" para projectos.
Para efectuar alteraes a um programa gravado bastar abrir o ficheiro do projecto, usando
para o efeito a opo Open Project do menu File.
EXEMPLO (cont.)
Como o nosso pequeno programa tem um nico form, o Visual Basic usar apenas dois
ficheiros para o guardar. Por defeito o VB atribuir os nomes "Form1.frm" e "Project1.vbp"
ao form e projecto, respectivamente. Estes nomes podem no entanto ser alterados no
momento da gravao.
11
O primeiro exemplo
Proceda ento gravao do trabalho. Poder escolher um nome mais apropriado para o
projecto, como por exemplo "ConverteGraus".
12
3 - Variveis e Constantes
Tipos de dados
A informao processada por um programa pode ser de diferente natureza e existir em
diferentes formatos. Genericamente um programa pode utilizar informao numrica e
informao chamada alfanumrica, ou seja texto.
A linguagem Visual Basic suporta diversos tipos de dados, entre os quais:
Tipo
Descrio
Integer (inteiro)
Boolean (booleano)
A partir dos tipos de dados preexistentes ainda possvel criar novos tipos de dados
especificamente adaptados s necessidades do programador.
Conceito de varivel
Uma varivel uma localizao de memria em que a informao pode ser guardada de modo
a ser usada por um programa. Cada varivel caracterizada pelo seu nome e pelo seu tipo, ou
seja, o tipo de dados que pode armazenar.
O contedo de uma varivel pode mudar durante a execuo do programa.
Existem algumas regras governando a escolha do nome duma varivel:
Variveis e Constantes
O tipo da varivel especifica qual o tipo de dados que pode conter. Uma varivel de um
determinado tipo no est preparada para armazenar dados de um tipo diferente. A razo para
este facto que o espao necessrio para armazenar diferentes tipos de dados no o
1
mesmo. Enquanto um inteiro simples pode ser guardado em 2 bytes de memria , para
guardar um nmero real pode-se necessitar de 8 bytes (ou mesmo mais, dependendo da
preciso requerida).
Noo de varivel
Para armazenar nmeros que podem variar entre -32768 e 32767, ou seja 65536 valores diferentes, h necessidade
de dispor de 16 unidades bsicas de informao (bits), ou seja dois bytes (1 byte = 8 bits). De facto, se cada bit apenas
pode representar um valor binrio (0 ou 1), 16 bits podero representar at 216=65536 valores diferentes.
14
Variveis e Constantes
Declarao de varivel
A declarao de variveis o acto pelo qual so criadas. Criar uma varivel envolve dar-lhe um
nome e reservar em memria o espao necessrio para que ela possa guardar o tipo de dados
para o qual est a ser criada.
Nenhuma varivel deve ser utilizada antes de ser criada. A declarao deve, pois, preceder a
utilizao.
Em Visual Basic, existem duas formas de declarao de variveis: explcita e implcita.
A declarao explcita exige
(Dimensionar...Como).
utilizao
da
instruo
especfica
Por exemplo,
Dim Preo As Integer
...cria (declara) uma varivel com o nome Preo e do tipo Integer, ou seja, preparada para
receber dados do tipo inteiro simples.
Pode-se usar a mesma instruo Dim para declarar mais do que uma varivel de uma s vez
desde que se especifique para cada varivel, individualmente, qual o seu tipo.
Por exemplo,
Dim Preo As Integer, Desconto As Single, IVA As Single
...cria a varivel Preo como sendo do tipo Integer e as variveis Desconto e IVA como sendo
do tipo Single.
A declarao implcita resume-se a utilizar pela primeira vez uma varivel sem qualquer
declarao explcita prvia, dando-lhe um nome e atribuindo-lhe um valor. O Visual Basic cria
automaticamente a varivel do tipo correcto.
Esta segunda forma de declarar variveis tem, a despeito da sua simplicidade, um problema
grave: possvel, por distraco, criar uma varivel nova indesejada, quando o que se
pretendia era apenas escrever o nome de uma varivel j existente. Atente-se no exemplo:
Suponha que havia criado uma varivel Distancia mediante a instruo
Dim Distancia As Integer
...e que adiante no programa, por engano, escrevia Distncia ao referir-se varivel em causa.
O Visual Basic no emitir nenhum alerta, j que aceitou tranquilamente Distncia como uma
nova varivel.
A forma mais prudente de lidar com declaraes de variveis , pois, utilizar apenas
declaraes explcitas, e instruir o Visual Basic para no aceitar declaraes implcitas,
mediante a seleco da opo "Require Variable Declaration" no sub-menu Options do menu
Tools.
15
Variveis e Constantes
Tipo
Descrio
Long
Single
Double
Date
Operao de atribuio
A operao de Atribuio permite guardar um dado numa varivel, ou seja, atribuir-lhe um
valor.
A sintaxe utilizada por esta operao a seguinte:
Varivel = Valor
O resultado da operao ser, portanto, o de guardar Valor em Varivel. Valor pode ser um
valor constante ou o contedo de outra varivel. Neste caso, a atribuio consistir na cpia do
contedo de uma varivel para outra do mesmo tipo. Conforme veremos mais frente, pode
ainda ser atribudo a Varivel o resultado de uma expresso ou o valor devolvido por uma
funo.
Trata-se de uma operao destrutiva. Se a varivel contiver j um valor, uma operao
subsequente de atribuio sobre essa varivel, substituir o valor nela contido pelo novo valor.
H ainda que ter em ateno o facto de que no normalmente aconselhvel atribuir um valor
de um dado tipo a uma varivel de tipo diferente. Os resultados podem ser a perda de
informao ou o mau funcionamento do programa.
16
Variveis e Constantes
Constantes
Uma constante consiste num nome que dado a um valor numrico ou a uma cadeia de
caracteres, e que pode ser usado dentro do programa na vez desses valores. Funciona como
uma espcie de sinnimo.
A utilizao de constantes em substituio dos valores que representa justifica-se pelo seguinte
facto: se um dado valor constante for utilizado muitas vezes ao longo dum programa, caso
ocorra a necessidade de o modificar, haver necessidade de corrigir manualmente todas as
ocorrncias desse valor, correndo, alm disso, o risco de se enganar. Se, ao invs, for definida
uma constante com esse valor, bastar modificar essa definio inicial para que tal mudana
automaticamente se repercuta em todas as ocorrncias dessa constante no decurso do
programa.
A sintaxe da definio de constantes a seguinte:
Const nome As tipo = expresso
Por expresso entende-se um valor numrico, uma cadeia de caracteres, ou uma expresso
cujo resultado seja um destes tipos de valores.
Aqui ficam alguns exemplos de declaraes de constantes:
Const Pi As Double = 3.14159265358979
Const Raio As Single = 12.5
Const Permetro As Double = 2 * Pi * Raio
Operadores
A linguagem Visual Basic prev os seguintes operadores, utilizveis em expresses:
Operadores Aritmticos
+
adio
subtraco
multiplicao
diviso inteira
diviso real
MOD
^
Operadores Relacionais
=
igualdade
17
desigualdade
<
menor que
>
maior que
<=
menor ou igual a
>=
maior ou igual a
Variveis e Constantes
Operadores Lgicos
AND
conjuno (e)
OR
disjuno (ou)
NOT
negao (no)
A
0
0
1
1
B
0
1
0
1
A AND B
0
0
0
1
A
0
0
1
1
B
0
1
0
1
A OR B
0
1
1
1
A
0
1
NOT A
1
0
Existe ainda um operador usado para concatenao de strings. Esse operador o &.
Comentrios
Comentrios ao cdigo do programa podem ser inseridos mediante a utilizao da "plica".
Assim, todo o texto escrito a seguir a uma plica, ser considerado como um comentrio e no
como pertencendo a uma instruo.
Exemplo:
' isto um comentrio
18
Variveis e Constantes
Classe de Objecto
Form
Frm
CommandButton
Cmd
Frame
Fra
Horizontal ScrollBar
Hsb
Image
Img
Label
Lbl
List Box
Lst
Menu
Mnu
Option Button
Opt
Picture Box
Pic
Text Box
Txt
Vertical SrcrollBar
Vsb
19
Sintaxe:
NO
If condio Then
SIM
TESTE da
Condio
Aco1
Else
ACO_2
ACO_1
Aco2
End If
Exemplos de condies:
X >= 100
Not encontrado
H casos em que desejvel executar uma sequncia de instrues caso uma dada condio
se verificar, e nada no caso contrrio. Nessa situao deve ser utilizada a seguinte variante da
estrutura de controlo condicional:
Sintaxe:
If condio Then
TESTE da
Condio
SIM
Aco
NO
End If
ACO
Nota: Caso a instruo If...Then seja escrita numa s linha, dispensado o uso do delimitador
End If.
Exemplos de utilizao:
1)
2)
A sintaxe a seguinte:
If condio1 Then
Aco1
ElseIf condio2 Then
Aco2
ElseIf condio3 Then
...
Else
AcoN
End If
instruco 1
Verdadeira (V)
Falsa (F)
Condio_1
V
instruco 2A
Condio_2
V
instruco 2B
instruco 2C
Condio_3
IFs
instruco 2D
instruco 3
Esta estrutura condicional permite a seleco de uma entre vrias alternativas mutuamente
exclusivas. As instrues que se seguem palavra reservada Else (aqui representadas por
"AcoN") sero executadas apenas se nenhuma das condies se tiver verificado.
22
possvel imbricar um qualquer nmero de blocos ElseIf dentro de uma dada estrutura
condicional.
Exemplo:
Private Sub cmdGo_Click()
Dim nota As Single
nota = txtNotas.Text
If (nota < 0) Or (nota > 20) Then
lblSaida.Caption = "Nota Invlida!"
ElseIf nota < 6 Then
lblSaida.Caption = "Mau"
ElseIf nota < 10 Then
lblSaida.Caption = "Medocre"
ElseIf nota < 14 Then
lblSaida.Caption = "Suficiente"
ElseIf nota < 17 Then
lblSaida.Caption = "Bom"
Else
lblSaida.Caption = "Muito Bom"
End If
End Sub
23
Case Else
AcoN
End Select
Pode ser includo um nmero qualquer de clusulas Case numa estrutura Select ... Case e
pode-se indicar mais do que um valor numa clusula Case, desde que separados por vrgulas.
tambm possvel utilizar operadores de comparao (operadores relacionais) para indicar
gamas de valores nas clusulas Case. Para utilizar esses operadores temos que recorrer s
palavras reservadas Is ou To de forma a identificar o tipo de comparao.
Case 1, 2
Case 10 To 20
Tal como na estrutura If Then ElseIf, a seleco da aco a tomar feita de entre vrias
alternativas mutuamente exclusivas. A aco relativa clusula Case Else ser executada
apenas se o valor da varivel a testar no encaixar em nenhuma clusula anterior.
24
Exemplo:
A substituio da estrutura If ... Then ... ElseIf, usada no exemplo atrs apresentado, pela
estrutura Select ... Case poderia ser feita da seguinte forma:
Private Sub cmdGo_Click()
Dim nota As Single
nota = txtNotas.Text
Select Case nota
Case Is < 0
lblSaida.Caption = "Nota Invlida!"
Case Is < 6
lblSaida.Caption = "Mau"
Case Is < 10
lblSaida.Caption = "Medocre"
Case Is < 14
lblSaida.Caption = "Suficiente"
Case Is < 17
lblSaida.Caption = "Bom"
Case 17 To 20
lblSaida.Caption = "Muito Bom"
Case Else
lblSaida.Caption = "Nota Invlida!"
End Select
End Sub
25
InstruoN
Next varivel
27
Exemplos:
1)
2)
3)
determinao do maior divisor de um dado nmero inteiro (sem ser o prprio nmero)
MaxDivisor = 1
For CandidatoADivisor = 2 To Numero \ 2
If Numero Mod CandidatoADivisor = 0 Then MaxDivisor = CandidatoADivisor
Next CandidatoADivisor
28
If MaxDivisor = 1 Then
MaxDivisor = Numero
lblSaida.Caption = Str(Numero) & " nmero primo"
Else
lblSaida.Caption = MaxDivisor
End If
Ciclo Do While
A estrutura For ... To ... Next permite realizar um ciclo controlado por um varivel contadora
que incrementada ou decrementada at atingir um valor final pr-fixado. possvel obter este
efeito usando estruturas de controlo alternativas, como seja a estrutura Do While.
Sintaxe:
Do While condio
[Corpo do Ciclo]
Loop
contador = valor_inicial
Do While contador <= valor_final
' Corpo do Ciclo
contador = contador + 1
Loop
29
Exemplo:
Factorial = 1
contador = 1
Do While contador <= Numero
Factorial = Factorial * contador
contador = contador + 1
Loop
30
Ciclo Do Until
Sintaxe:
Do Until condio
[Corpo do Ciclo]
Loop
Neste caso a condio especificada a condio de termo do ciclo. O ciclo ser executado at
que ("until") a condio de termo seja verdadeira. possvel, assim, transformar um ciclo
Do While em Do Until negando a condio de funcionamento.
Exemplo:
Factorial = 1
contador = 1
Do Until contador > Numero
Factorial = Factorial * contador
contador = contador + 1
Loop
31
Exemplos:
1)
Nota: Neste exemplo, a varivel numero no foi inicializada pelo programador. Quando esta
tarefa no realizada antes da utilizao da varivel, o prprio Visual Basic se
encarrega de a inicializar a zero.
2)
32
Ciclos imbricados
Foi dito anteriormente que o corpo de um ciclo era constitudo pelo conjunto de instrues que
o ciclo ir executar repetidamente. Foi tambm dito que nesse conjunto de instrues se
poderiam incluir qualquer tipo de instrues, mesmo constituindo outras estruturas de controlo
repetitivo. Prosseguindo com os exemplos apresentados na seco anterior, abaixo se pode
ver um exemplo de uma utilizao de um ciclo dentro de outro. Destes ciclos se diz que se
encontram imbricados um dentro do outro.
33
Exemplos:
1)
Este exemplo utiliza apenas ciclos controlados por sentinela. Quando se usa um ciclo
controlado por contador imbricado num outro ciclo controlado por contador, h que ter
o cuidado de criar e utilizar diferentes variveis de controlo para cada ciclo.
2)
...
For i = 1 To Njornadas
For j = 1 To Nequipas
Corpo do ciclo interior
Next j
Next i
...
Neste exemplo, para cada valor da varivel de controlo i (do ciclo exterior), o ciclo
interior executado Nequipas vezes. As instrues contidas no corpo do ciclo interior
sero assim efectuadas um total de Njornadas x Nequipas vezes.
34
Do
[Corpo do Ciclo]
Loop While condio
Exemplo:
Do
ref = Val(InputBox(Nova referncia:, Programa de Stock))
If ref > 0 Then
lstLista.AddItem ref
End If
Loop While ref > 0
O ciclo do exemplo anterior controlado por sentinela (qualquer valor negativo). Mesmo que
um valor negativo seja introduzido em primeiro lugar, o corpo do ciclo ser executado, pelo que
35
ser necessrio prever um teste adicional do valor ref lido para evitar que um valor sentinela
seja adicionado lista.
Do
[Corpo do Ciclo]
Loop Until condio
Exemplo:
Num = Val(InputBox(Digite um n positivo ou 0 p/ acabar, Entrada de dados))
Do
Soma = soma + num
Num = Val(InputBox(Digite um n positivo ou 0 p/ acabar, Entrada de dados))
Loop Until num < 0
Caso o primeiro nmero a ser lido seja um nmero negativo, a condio de termo ser de
imediato verdadeira, mas como o seu teste s ser feito aps a execuo do corpo do ciclo, a
instruo soma = soma + num ser executada uma vez. Nesse caso, seria talvez mais
aconselhvel utilizar uma estrutura com teste no incio, ou adicionar um teste suplementar ao
corpo do ciclo, como no primeiro exemplo.
36
6 - Vectores e Matrizes
Vectores
At agora, temos trabalhado essencialmente com variveis que podemos classificar como
individuais, isto , cada varivel podendo conter ao mesmo tempo apenas um s valor. Como
essas variveis no podem conter simultaneamente mais que um dado, a atribuio de um
novo valor a essa varivel implica a destruio do valor anteriormente nela contido.
Mediante a utilizao de um novo tipo de variveis, as variveis do tipo Array (Vector), passa
a ser possvel armazenar na mesma varivel mltiplos valores desde que sejam do mesmo
tipo. Estamos, portanto, a utilizar agora variveis que se podem classificar como variveis
mltiplas.
var_Simples
12
var_Multipla
13
37
132
90
19
286
44
ndice
Um vector uma lista ordenada de variveis simples do mesmo tipo. Pode tambm ser visto
como um conjunto de variveis simples agrupadas. Todos as variveis membros desse vector
partilham o mesmo nome (o nome do vector). So identificadas individualmente mediante o
valor dum ndice, que determina qual a sua posio dentro do vector.
Os valores do ndice devem obrigatoriamente ser do tipo Integer. O primeiro valor do ndice
zero.
Um elemento de um vector identificado utilizando o nome do vector seguido do valor do
ndice dentro de parntesis:
nome_vector ( ndice )
Exemplos:
var_Multipla(3)
var_Multipla(7)
notas(14)
nomes(0)
Vectores e Matrizes
Declarao de vectores
Como qualquer outra varivel, uma varivel do tipo Array deve tambm ser declarada (criada)
antes de poder ser usada. Para tal, deve ser usada a instruo Dim, que reserva espao em
2
memria suficiente para armazenar o nmero previsto de elementos do vector . Uma das
formas de utilizar a instruo Dim para declarar vectores a seguinte:
Dim nome_vector(num_elementos) As Tipo
Exemplos:
Dim var_Multipla(8) As Integer
Dim notas(30) As Single
Dim nomes(100) As String
Nota: num_elementos no se refere ao valor mximo que a varivel ndice pode assumir (7, no
caso do vector var_Multipla) mas sim ao nmero de elementos do vector (8, neste caso).
Usando esta forma na declarao de vectores, o processo de indicar o limite inferior faz-se de
forma implcita: por defeito assume-se como limite inferior do ndice o valor zero (ou 1 se tal for
especificado mediante a instruo Option Base 1).
Uma forma alternativa de utilizar a instruo Dim para declarar vectores implica a utilizao da
palavra reservada To, permitindo especificar o menor e o maior valor que o ndice pode
assumir:
Dim nome_vector(menorndice To maiorndice) As Tipo
Exemplos:
Dim numeros(100 To 200) As Integer
Dim valores(-100 To 100) As Single
Processamento de vectores
Sendo um vector uma varivel mltipla composta por elementos do mesmo tipo agrupados na
mesma estrutura, a forma mais adequada de executar uma mesma aco sobre parte ou a
totalidade dos seus elementos utilizando uma estrutura de controlo repetitivo ou ciclo.
Adicionalmente, a instruo Dim atribui valores iniciais a todos os elementos do vector (zeros no caso de vectores
38
Vectores e Matrizes
Exemplos:
1) Private Sub cmdGo_Click()
Dim vectorSqr(100) As Double
Dim Maior as Integer
Dim i As Integer
varivel ndice
Este programa permite calcular e apresentar sob a forma de uma tabela as razes quadradas
de todos os nmeros inteiros compreendidos entre 0 e um dado limite superior a especificar
pelo utilizador na TextBox txtMaior (a largura do intervalo no deve exceder 100). Os valores
calculados so armazenados num vector para eventual futura utilizao.
Vectores e Matrizes
Nesta variante possvel especificar tambm o limite inferior do intervalo, para alm de se
demonstrar algumas tcnicas de formatao da sada de dados.
De notar que na primeira verso do programa (exemplo 1) se usou a mesma varivel i para
controlar o ciclo For e para armazenar os valores nos ndices do vector. Tal aconteceu porque
foi possvel estabelecer naquele caso uma correspondncia directa entre os valores da varivel
de controlo do ciclo i e os valores do ndice que controla as posies dos elementos do vector.
Nesta segunda verso tal no era possvel, visto que a varivel de controlo do ciclo iria conter
valores (desde o limite inferior ao limite superior do intervalo) que poderiam no corresponder
s posies do vector em que os resultados iriam ser armazenados.
Em qualquer das variantes apresentadas, o processamento dos elementos do vector consistiu
em operaes de escrita (de atribuio) que modificaram o seu contedo. igualmente
possvel efectuar operaes de leitura sobre todos ou parte dos elementos dum vector. Nesse
caso, como bvio, a varivel do tipo Array dever encontra-se do lado direito da operao de
atribuio:
var = vector(ndice)
Pesquisa em vectores
Vrios mtodos podem ser seguidos para procurar informao armazenada em vectores. O
mtodo mais simples o da pesquisa linear (ou sequencial).
Tal mtodo consiste em posicionarmo-nos no primeiro elemento do vector e comparar o
contedo desse elemento com o valor a procurar. Caso sejam iguais a busca termina e no caso
de no serem iguais, efectua-se a mesma comparao em relao ao contedo do elemento
seguinte e assim sucessivamente at que a busca obtenha sucesso, ou at que o ltimo
elemento do vector seja alcanado.
40
Vectores e Matrizes
vec
49
13
37
132
90
19
286
44
ndice
num
19
Exemplo:
Para verificar se o valor contido na varivel num se encontra armazenado no vector vec,
podemos usar o programa que a seguir se apresenta.
Este programa encontra-se dividido em dois procedimentos, um associado ao boto de
comando Go e o outro ao boto Pesquisa. O primeiro serve para encher o vector vec com
valores que possam posteriormente ser pesquisados. O segundo destina-se a pesquisar dentro
de vec a existncia de um dado nmero inteiro a indicar pelo utilizador.
Repare-se nas duas declaraes iniciais colocadas fora de qualquer procedimento. Diz-se que
estas declaraes so globais j que, pelo facto de se encontrarem na seco General do
programa em vez de inseridas num dado procedimento, so reconhecidas por todos os
procedimentos do programa, e portanto, acessveis de dentro de qualquer deles.
41
Vectores e Matrizes
Const N As Integer = 9
Dim vec(N) As Integer
42
Vectores e Matrizes
Outro mtodo bastante usado para procurar informao armazenada em vectores o mtodo
da pesquisa binria. Trata-se de uma alternativa mais rpida procura sequencial mas exige
que os elementos do vector estejam ordenados (por ordem ascendente ou descendente).
Este mtodo consiste em pesquisar sucessivamente os elementos a meio de subintervalos do
vector, subintervalos esses que vo sendo reduzidos a metade. Comea-se ento por verificar
o elemento a meio do vector. Se no for o valor procurado, ento este s pode estar na metade
inferior ou superior do vector, uma vez que suposto o vector estar ordenado. Assim, a
segunda pesquisa incide apenas sobre metade do vector. Este processo repete-se at se
encontrar o elemento desejado (sucesso) ou determinar que no se encontra no vector
(insucesso). Repare-se que o nmero de elementos a pesquisar vai sendo reduzido
sucessivamente a metade. Da a designao de pesquisa binria e a razo pela qual mais
rpida que a sequencial.
Exemplo 1:
Para verificar se o valor contido na varivel num se encontra armazenado no vector vec
(considerando que este vector se encontra ordenado de forma ascendente) podemos usar o
procedimento seguinte:
43
Vectores e Matrizes
Exemplo 2:
Sucesso na pesquisa do valor 6
Passo 1:
inf
med
sup
-3
-1
10
13
25
=?
6 > med
6
Passo 2: pesquisar subintervalo superior
inf
med
sup
-3
-1
10
13
25
6 < med
=?
6
Passo 3: pesquisar subintervalo inferior
med
inf
sup
1
-3
-1
10
13
25
6 = med
=?
inf
sup
SUCESSO
44
Vectores e Matrizes
Ordenao de vectores
Existem vrios mtodos para ordenar vectores e essa ordenao pode sempre ser feita de
forma ascendente (do menor valor para o maior) ou descendente (do maior para o menor
valor). Um dos mtodos mais simples o da ordenao por seleco.
Este mtodo consiste em posicionarmo-nos no primeiro elemento do vector e comparar o seu
contedo com todos os outros elementos. Sempre que se encontrar um elemento cujo valor
seja menor que o da primeira posio ento os valores so trocados entre si. Quando a
comparao do primeiro elemento do vector com todos os outros termina temos a garantia de
que o valor do primeiro elemento j o menor de todos.
Nesta altura avana-se para o segundo elemento e compara-se o seu contedo com todos os
elementos que lhe seguem no vector (terceiro, quarto, ...) trocando os valores sempre que se
encontre um elemento de menor valor.
Este processo repete-se at se chegar ao fim do vector, altura em que se conclui a ordenao
do vector.
Vector desordenado:
vec
49
13
37
132
90
19
286
44
ndice
vec
13
19
37
44
49
90
132
286
ndice
Exemplo1:
O programa que a seguir se apresenta faz a ordenao do vector de forma ascendente, tal
como se mostrou na figura anterior. O programa encontra-se dividido em dois procedimentos, o
primeiro associado ao boto de comando Go que serve para encher o vector e o segundo ao
boto Ordenar que efectua a ordenao ascendente dos valores introduzidos e que ficaram
guardados no vector vec.
46
Vectores e Matrizes
Const N As Integer = 9
Dim vec(N) As Integer
47
Vectores e Matrizes
Exemplo 2:
Ordenao do vector de forma crescente
Passo 1: ordenar 1 elemento
1
2
3
10
5
1
5
Menor que
4
7
Sim
Troca
10 ?
1
5
2
10
3
1
10
4
7
1
Menor que
5
Sim
Troca
1
1
2
10
3
5
4
7
1
1
2
5
3
10
4
7
10
7
7
Menor que
1
4
7
5
Menor que
Sim
Troca
10 ?
1
1
2
5
3
10
4
7
7
Menor que
5
10
4
7
Sim
7
Menor que
10 ?
Troca
1
10
48
Vectores e Matrizes
ndice_coluna
0
Pontos
1
2
3
4
ndice_linha
Os elementos de uma matriz so identificados utilizando o nome da matriz seguido dos ndices,
linha e coluna, entre parntesis:
nome_matriz (ndice_linha, ndice_coluna)
Exemplos:
Coord(2, 0)
coordenada X do 3 ponto
notas(1, 3)
nomes(0, 0)
Declarao de matrizes
Tal como na declarao de vectores, a declarao de matrizes pode ser feita indicando apenas
o nmero de elementos de cada dimenso (nmero de linhas e colunas), ou usando a palavra
reservada To, permitindo especificar o menor e o maior valor que os ndices de cada dimenso
podero assumir.
49
Vectores e Matrizes
Exemplos:
Dim Coord(5, 3) As Single
Dim Coord(1 To 5, 1 To 3) As Single
Processamento de matrizes
Nas matrizes, tal como nos vectores, a forma mais adequada de executar uma mesma aco
sobre parte ou a totalidade dos seus elementos utilizando duas estruturas de controlo
repetitivo: uma para processar as linhas e outra para as colunas da matriz.
Exemplo:
Private Sub cmdCriarMatriz_Click()
Dim Matriz(100, 100) As Integer
Dim Linhas As Integer
Dim Colunas As Integer
Dim i As Integer
Dim j As Integer
Dim Texto As String
lstTabela.Clear
Linhas = Val(txtLinhas.Text)
Colunas = Val(txtColunas.Text)
For i = 0 To Linhas - 1
Texto = ""
For j = 0 To Colunas - 1
Matriz(i, j) = i + j
Texto = Texto & Format(Matriz(i, j), "@@ ")
Next j
lstTabela.AddItem Texto
Next i
End Sub
Este programa apresenta uma matriz em que cada elemento achado somando os ndices que
o identificam. As dimenses da matriz a ser criada so especificadas pelo utilizador e os
valores calculados so armazenados numa matriz para eventual futura utilizao.
50
Vectores e Matrizes
De notar que neste programa se usaram duas variveis: i e j, para controlar os ciclos de
repetio e armazenar os valores achados na respectiva matriz. A varivel i percorre todas as
linhas e para cada linha usada a varivel j para percorrer as colunas.
Vectores de controlos
possvel criar Arrays de Controlos, isto , conjuntos de objectos de controlo do mesmo tipo,
agrupados sob o mesmo nome e identificveis atravs do valor de um ndice (contido na
propriedade Index de cada elemento do vector de controlos). Usando estes vectores, torna-se
possvel dar a um programa a capacidade de criar de forma dinmica um dado conjunto de
objectos do mesmo tipo, sem ter que especificar previamente o seu nmero, ou de modificar
em bloco propriedades desses controlos durante a execuo do programa.
Os elementos desses Arrays de Controlo podem ser introduzidos manualmente, por exemplo,
duplicando um controlo preexistente, mediante a sequncia de cpia e insero
(Ctrl-C + Ctrl-V), ou usando a instruo Load durante a execuo do programa.
No exemplo seguinte, o objecto txtBox original foi criado manualmente e foi dado o valor de
zero sua propriedade Index. O programa encarregou-se de criar os restantes elementos do
vector de controlos, no nmero especificado pelo utilizador.
Exemplo:
Private Sub cmdGo_Click()
Dim n As Integer
Dim i As Integer
n = Val(txtInput.Text)
txtBox(0).Visible = True
txtBox(0).Text = "TxtBox 0"
For i = 1 To n - 1
Load txtBox(i)
txtBox(i).Top = 1000 + i * 500
txtBox(i).Visible = True
txtBox(i).Text = "TxtBox" & Str(i)
Next i
End Sub
51
7 - Sub-rotinas
Procedimentos
No Visual Basic existem procedimentos que so executados em resposta s aces do
utilizador, como por exemplo quando o utilizador prime um boto (Click). Esses procedimentos
so conhecidos por "event procedures" - procedimentos de evento.
No entanto, existem outros procedimentos que no esto directamente associados a qualquer
evento e que para serem executados tm que ser explicitamente invocados. Estes so
procedimentos mais gerais - general procedures.
A principal razo para se usar este tipo de procedimentos tem a ver com o facto de, por vezes,
diferentes procedimentos de evento necessitarem de executar o mesmo conjunto de aces
(instrues). Nestas situaes o ideal colocar esse conjunto de aces num procedimento
para evitar a duplicao de cdigo e tornar a aplicao mais fcil de manter.
A sintaxe para declarar um procedimento a seguinte:
Sub NomeProcedimento (ListaArgumentos)
Instrues
End Sub
Passagem de argumentos
Nos procedimentos, os argumentos podem ser passados de duas maneiras: por referncia ou
por valor.
Quando uma varivel passada por referncia quaisquer alteraes feitas ao contedo dessa
varivel dentro do procedimento far-se-o reflectir na varivel usada na chamada ao
procedimento.
Quando no se pretende que uma determinada varivel seja devolvida alterada esta ter de
ser passada ao procedimento por valor. Para isso necessrio usar a palavra ByVal na lista
de argumentos quando o procedimento for declarado.
Sub-rotinas
Exemplos:
1) Private Sub Command1_Click()
Dim Custo As Integer
Dim Desconto As Single
Custo = 1000
Desconto = 0.2
CalcularDesconto Custo, Desconto
Print Custo
End Sub
Sub CalcularDescontos(C As Integer, D As Single)
C = C * (1 - D)
Print C
End Sub
Produz o resultado:
800
800
800
1000
53
Sub-rotinas
Funes
O Visual Basic tal como qualquer outra linguagem de programao inclui um vasto conjunto de
funes predefinidas. Para alm destas funes o VB permite definir outras funes usando
para o efeito a sintaxe seguinte:
Function NomeFuno (ListaArgumentos) As Tipo
Instrues
End Function
As funes distinguem-se dos procedimentos porque devolvem um valor. Sendo assim, e tal
como nas variveis, as funes tambm tm um tipo de dados que ser o tipo do valor a
retornar.
O valor, normalmente resultante de algumas operaes e/ou clculos, devolvido por
atribuio a uma "varivel" com o mesmo nome da funo.
Exemplo:
Function Par(Valor As Integer) As Boolean
If Valor Mod 2 = 0 Then
Par = True
Else
Par = False
End If
End Function
54
8 - Funes predefinidas
Funes matemticas
Abs()
Num1 = Abs(13.5)
Num2 = Abs(-13.5)
Num1 e Num2 contm o mesmo valor, 13.5
Exp()
Num = Exp(1)
Num contm o valor 2.71828 (e)
Log()
Sqr()
Num = Sqr(25)
Num contm o valor 5
Int()
Num = Int(12.565)
Num contm o valor 12
Funes predefinidas
Num1 = Int(-9.5)
Num2 = Fix(-9.5)
Num1 contm o valor 10 enquanto Num2 contm -9.
Cos()
Sin()
Tan()
Num1 = Val(123)
Num2 = Val(12 3)
Num3 = Val(12 e 3)
Num1 e Num2 contm o mesmo valor, 123
Num3 contm o valor 12
Str()
Num1 = Str(123)
Num2 = Str(-123)
Num1 contm a string 123 e Num2 contm a string -123
56
Funes predefinidas
Nome = ISEP
Comp = Len(Nome)
Comp contm o valor 4
InStr()
Sintaxe:
InStr ( IncioPesquisa, String1, String2, Opo )
Em que:
IncioPesquisa a posio na String1 em que se inicia a pesquisa.
String1 a string onde a pesquisa se efectuar.
String2 a string a ser procurada em String1.
Opo um valor numrico que especifica se a busca sensvel
distino entre maisculas e minsculas: 0 - faz distino entre
maisculas e minsculas (valor por defeito); 1 - no faz distino.
Nota: IncioPesquisa e Opo so parmetros opcionais, no
entanto, IncioPesquisa obrigatrio se Opo tiver sido
especificado.
57
Funes predefinidas
LCase()
Left()
Right()
Mid()
Sintaxe:
Mid ( String, Incio, Comprimento )
Em que:
String representa a string a ser tratada.
Incio a posio do primeiro caracter a ser retornado.
58
Funes predefinidas
LTrim()
Texto = LTrim(
RTrim()
Texto = RTrim(
Trim()
Texto = Trim(
Chr()
Texto = Chr(65)
Texto contm a string A
59
Funes predefinidas
Num1 = Asc(A)
Num2 = Asc(Amarelo)
Num1 e Num2 contm o valor, 65
Verif1 = IsNumeric(4475)
Verif2 = IsNumeric(4479 Codex)
Verif1 contm o valor True
Verif2 contm o valor False
Date
Time
Timer
Funo InputBox
Esta funo permite apresentar uma mensagem ao utilizador, recolhendo ao mesmo tempo
uma string contendo a sua resposta. Assim, ao contrrio da funo MsgBox (ver a seguir), esta
funo produz um resultado do tipo String e no do tipo Integer.
Funes predefinidas
Esta funo cria um objecto composto, uma Input Box, que consiste numa caixa de texto e
num label dentro de uma pequena janela.
A sintaxe da funo InputBox a seguinte:
Varivel = InputBox ( Mensagem, Ttulo, String_de_Defeito, xpos, ypos )
...em que:
Mensagem
Ttulo
String_de_Defeito
xpos e ypos
Funo MsgBox
A funo MsgBox permite criar caixas de dilogo temporrio vulgarmente designadas por
Caixas de Mensagem, contendo um pedao de texto, um ou mais botes de comando e,
opcionalmente, um cone ilustrativo da finalidade da caixa de mensagem.
Como o prprio nome indica, a utilidade destas caixas de mensagem consiste em permitir que
o programa transmita alguma informao ao utilizador de forma sucinta.
Caractersticas
Ttulo
Funes predefinidas
O valor para o parmetro Caractersticas obtm-se pela soma de cada um dos seguintes
componentes:
Botes
cone
0 OK
1 OK, Cancel
16 Mensagem Crtica
256 2 Boto
32 Pergunta
512 3 Boto
48 Aviso
4 Yes, No
64 Informao
Nenhum
1 Boto
5 Retry, Cancel
Exemplo:
Para obter as caixas de mensagem apresentadas atrs, os valores a utilizar para o parmetro
Caractersticas seriam os seguintes:
0 + 64 + 0 = 64
A funo MsgBox devolve um valor que ser guardado em Varivel, indicando qual o boto
premido, segundo a tabela:
Valor
Boto Premido
OK
Cancel
Abort
Retry
Ignore
Yes
No
Nota: O valor 2 ser devolvido caso o boto Cancel seja premido ou caso a tecla Escape seja
carregada
62
Funes predefinidas
63
Funes predefinidas
Os formatos padro so especificados atravs dos seus nomes sempre dentro de aspas. Os
formatos padro que podem ser utilizados so:
Nome do Formato
Descrio
General Number
Fixed
Standard
Percent
Scientific
Currency
&
<
>
64
Funes predefinidas
Exemplos:
O que pedido
O que mostrado
3256.30
3256.30
3,256.30
3,256.30
0.13
.1250
014.3
OL
Os nmeros produzidos pela funo Rnd so valores reais. Caso se pretenda obter valores
inteiros, haver que usar uma das seguintes tcnicas:
Usar a funo Int para converter o valor real obtido no seu equivalente inteiro,
eliminando a parte decimal.
65
Funes predefinidas
Exemplo:
Private Sub cmdDado_Click()
Dim al As Single
Randomize Timer
al = Rnd * 6 + 1
Label6.Caption = Int(al)
End Sub
66
9 - Controlos
Option Buttons Botes de Opo
Estes objectos permitem ao utilizador efectuar escolhas entre diversas alternativas.
So compostos pelo boto propriamente dito (de forma circular) e um pequeno texto que o
acompanha, especificado pela propriedade Caption do objecto.
Controlos
Possuem tambm uma propriedade Value que, neste caso, pode apresentar os seguintes
valores:
0 - no activada
1 - activada
2 - no disponvel
O texto a inserir junto de cada caixa de verificao deve ser especificado mediante a
propriedade Caption.
Frames Quadros
Tais objectos destinam-se a agrupar outros objectos (controlos). So usados muitas
vezes para organizar um dado conjunto de botes de opo (Option Buttons), tornandoos independentes de outros botes de opo eventualmente existentes na mesma form. Sem
as Frames isto no era possvel porque se os Option Buttons fossem todos colocados sobre o
Form ento s teramos um grupo de opes de excluso mtua.
importante criar o quadro antes de a inserir os controlos. Se o controlo for criado antes do
quadro, no possvel apenas desloc-lo para dentro do quadro uma vez este criado.
Quando se insere um objecto dentro do quadro, esse quadro passa a constituir o contentor do
objecto. Quer isto dizer que a sua localizao passa a ser definida no em relao form mas
em relao ao quadro que o contem.
Outra utilidade dos quadros servir de moldura a um dado conjunto de controlos, de modo a
melhorar a aparncia e a organizao da form em que esto inseridos, agrupando os diversos
controlos de acordo com as suas funcionalidades.
68
Controlos
A introduo dos elementos na lista pode ser feita enquanto se desenham os controlos na
form, usando para o efeito a propriedade List, ou durante a execuo do programa.
Os elementos da lista esto guardados numa estrutura de dados acessvel atravs da
propriedade List(n) que simula um array de strings. Assim, o primeiro elemento encontra-se em
List(0), o segundo elemento em List(1) e assim sucessivamente.
69
Controlos
Propriedade
Descrio
Text
ListCount
Sorted
Columns
MultiSelect
elementos
simultaneamente,
Selected
SelCount
70