You are on page 1of 142

FUNES

Este captulo concentra-se no estudo de um lote variado de funes do Visual


Basic, imprescindveis no desenvolvimento de uma aplicao informtica.
Agruparemos as diversas funes em categorias, tais como matemticas, de
dilogo, de texto, de data e hora e de converso e verificao entre tipos de
dados.

4.1

MICROSOFT VISUALBASIC

A grande maioria das funes intrnsecas da linguagem encontra-se


definida na namespace Microsoft. VisualBasic. Para que no seja necessrio referir o
caminho completo at uma funo, podemos instruir o compilador a aceder aos
elementos de programao definidos nessa namespace atravs de uma instruo
imports (ver exemlo na figura 4.1). Esta indicao deve ser feita no topo dos
mdulos de programao (se estivermos num mdulo de formulrio, dever
surgir acima da instruo Public Class; caso estejamos a programar num mdulo
geral, dever constar imediatamente antes da instruo Module).
Erts Microsaft.

O Csharp
{ 1 Sqlserver
+{ }
(1 W1n32
FIGURA

4.1

Importao de uma namespace

EXEMPLO

Imagine que uma funo fictcia X (sem argumentos) se encontrava


definida na namespace supracitada. Se no procedesse importao da namespace,
apenas poderia referir a funo da seguinte forma:
Microsoft .VisualBasic .X

()

FCA

Edttora de Informtica

148

VISUAL BASIC

2010

CURSO COMPLETO

Se escrever a instruo Imports Microsoft. VisualBasic no topo do mdulo,


escrevendo
poder passar a referir a funo X de uma forma mais cmoda,
simplesmente o seu nome:
XC)

instruo de
Os exemplos apresentados nos prximos tpicos no referem a
o cdigo
todo
que
ria para
importao, mas lembre-se de que a instruo Irnports necess
seja correctamente executado.

FUNES DE DILOGO

4.2

o
Estas funes so utilizadas para obter e trocar informaes entre
utilizador e a aplicao.

FUNO MSGBOX

4.2.1

vo
Apresenta no ecr uma caixa de mensagem padro de sistema operati
com o cone e botes especificados.
ARGuMENTos (MsGBox)
DEscRIo

NOME

PR0MPT

BurroNs

TrrLE

Corresponde ao texto que constitui a


mensagem a ser apresentada na caixa de
dilogo. O comprimento mximo do texto
de, aproximadamente, 1024 caracteres e
depende da largura ocupada pelos mesmos.
Expresso numrica, resultado da soma de
vrias constantes intrnsecas do Visual Basic
que dita a apresentao da prpria caixa no
ecr como, por exemplo, os cones e botes a
serem apresentados. Se nao for especificado,
o valor utilizado ser igual a zero, o que
significa que nenhum cone apresentado e a
caixa contm apenas o boto 0K.
.

Texto da barra de ttulo da caixa de dilogo.


TABELA

FCA

Editora de Informtica

4.1

OBRIGATRIO?

TIPO

Sim.

Texto.

Nao.

Numenco.

No.

Texto.

Argumentos da funo MsgBox

FuNEs

149

EXEMPLO (ARGUMENTO PROMPT)


MsgBox(Texto do argumento Prompt.)

RESULTADO
WindowsApplicati..
Texto do argumento Prompt,

FIGuR.A 4.2

O argumento Prompt da funo MsgBox (exemplo)

As constantes utilizadas para a escolha do cone so as indicadas na


tabela 4.2.
CoNsTANTE

TABELA

4.2

VALOR

MsGBoxSnLE. CRrncAL

16

MsGB0xSrvLE. QuEsTION

32

M5GB0xSrYLE. ExcMMATI0N

48

MsGBoxSnLE.INFORMAUON

64

Constantes utilizadas para a escolha do cone (argumento Buttons)

Em mdulos de programao, tanto pode usar os nomes das constantes como os


seus valores.

A aparncia das caixas que utifizam as diferentes constantes pode ser


visualizada na figura 4.3.
WindowsAppIicati..
Critical

WindowsppIicatL
Question

[oK

FIGURA 4.3

WindowsApphcati..

1.)

\CIamation

Inorination

LZJ

Diferentes cones da funo MsgBox

As imagens referentes aos diversos cones de apresentao esto dependentes do


sistema operativo da mquina em que o programa executado.

Em relao ao nmero e tipo de botes, possvel utilizar-se as


constantes indicadas na tabela 4.3.
FCA

Editora de Informtica

i50

VISUAL BAsIc 2010

CURSO COMPLETO

CONSTANTE

VALOR

DEscRIO

MSGBOXS7YLE. OKONLY

Apenas o boto 0K.

MsGB0xSTYLE. OKCANcEL

0K e Cancel.

MsGBOXSnLE.AORTRETRYIGNORE

Abort, Retry e Ignore.

MsGB0xSTYLE. YEsN0CAvcEL

Yes, No e Cancel.

MsGB0xSTYLE. YEsN0

Yes e No.

MSGBOXSnLE.RETRYCANCEL

Retry e Cancel.

TABEL4 4.3

Constantes utilizadas na configurao dos botes (argumento Buttons)

A aparncia das caixas que utilizam as diferentes constantes referidas na


tabela anterior pode ser consultada na figura 4.4.
WindowsApplkati.

WindowsAppiction 1

OkCancel

OkOnIy

[E.:J
WindowsApplication 1

WindowsApp(ication 1
AbortRetrylgnore

C:.:DL_i.

Cancel

ignore

WindowsApplic4tion 1 Ii

WindowsApplication
PetryCricei

VesNo
Ves

FIGURA 4.4

jo

Retry

Diferentes botes da funo MsgBox

O idioma utilizado na apresentao do texto atribudo a cada um dos botes


tambm depende da plataforma em que o programa executado.
Por predefinio, o boto seleccionado sempre o primeiro. possvel
alterar essa situao, mediante aquilo que pretendido (para predefinir um dos
botes, utilize as constantes indicadas na tabela 4.4).

FCA

Editora de Informtica

.1

FUNES p151
CONSTANTE

VALOR

DESCRIO

MSGB0xSTYLE. DErAuLTBuTT0N1

O primeiro boto predefinido.

MSGBOXSTYLE. DEFAULTBuTT0N2

256

O segundo boto predefinido.

MsGB0xSnLE.DEFAULTBuTr0N3

512

O terceiro boto predefinido.

TABELA 4.4

Constantes utilizadas na predefinio dos botes (argumento Buttons)

A tabela 4.5 apresenta outras constantes que tambm so utifizadas no


argumento Buttons.
CONSTANTE

VALOR

MsGBoxSnLE.APPUc.4U0NMODAL

MsGBoxSnLE. SYsTEMM0DAL

4096

MSGB0xSTYLE. !4SGBOXSETFOREGRDUND

65536

MSGB0xSTYLE. MsGB0xRIGHT

524288

MsGB0xSTYLE. MSGBOxRTLREADI!vG

1048576

TABELA

4.5

DEscRIo

A aplicao actual fica em suspenso at


que o utilizador responda caixa.
Todas as aplicaes ficam em suspenso
at que o utilizador responda caixa.
A caixa de dilogo aparece em primeiro
plano.
O texto alinhado direita.
O texto apresentado da direita para a
esquerda, seguindo as regras de leitura
do rabe e hebraico.

Outras constantes utilizadas no argumento Buttons

EXEMPLO (urIuzAo DO NOME DE UMA CONSTANTE NO ARGUMENTO BuTroNs)

MsgBox(Critical, MsgBoxStyle.Critical)

RESULTADO
4
WindowsAppIkati..i4
Critical

zi
FIGURA

4.5

Utilizao do nome de uma constante (MsgBoxSt-yle.Critical)

EXEMPLO (uriuzio DO VALOR DE UMA CONSTANTE NO ARGUMENTO BUTrONS)

MsgBox ( Information,

64)

FCA

Editora de Informtica

152

VISUAL BAsIc

2010

CURSO CoMPLETo

REsuLTADo
WindowsApp1icati..U0
InFormation

EEE
FIGurA 4.6

Utilizao do valor de uma constante (MsgBoxShjle.Information)

EXEMPLO (coNFIGUR.O DOS BOTES)


MsgBoxStyle.OkCancel)

MsgBox(Argumento Buttons com dois botes.,

RESULTADO
WindowsApilkation
Aigumento Guttons com dois botes.
0K

FIGURA 4.7

Cancel

Dois botes numa MsgBox (MsgBoxStyle.OkCancel)

EXEMPLO (COMBINAO fcoNE + BOTES)


MsgBox(Pretende guardar as alteraes?, MsgBoxStyle.YesNo

MsgBoxStyle Question)
.

RESULTADO
WindowsAppIication
Pretende guardai as altei aes?

L
FIGURA 4.8

Combinao cone (MsgBoxstyle.Question)

botes (MsgBoxStyleYesNo)

EXEMPLO (PREDEFINIO DE BOTES)


MsgBox(2. boto seleccionado.,

MsgboxStyle.OkCancel

MsgBoxStyle DefaultButton2)
.

FCA

Editora de Informtica

______

FUNES

153

RESULTADO

WindowsApplkation 1
2,0

boto seleccionado,

[K

FIGURA

4.9

ii

Cancel

Predefinio do 2. boto (MsgBoxStyle.DefaultButton2)

EXEMPLO (ARGUMENTO TrTLE)

MsgBox(Bom dia!,

O,

Ttulo)

RESULTADO

Titulo
Bom di&

FIGURA 4.10

O argumento Titie da funo MsgBox (exemplo)

REToRNo DA FUNO MsGBox

funo MsgBox retoma valores numricos que representam o cdigo do


boto escolhido pelo utilizador como resposta (tabela 4.6).
A

CONSTANTE

VALOR

MsGB0xRE5uLT. 0K

MsGB0xREsuLT. CANcEL

MSGB0xRE5uLT.AB0RT

MsGBOxREsuLT. R&RY

MsGB0xRE5uLT. IGNORE

MSGB0xREsuLT. YE5

MsGB0xREsuLT.No

TABELA 4.6

Valores retornados pela funo MsgBox

EXEMPLO (REToRNo DA FUNO MsGBox)


Dim resposta as MsgBoxResult
resposta = MsgBox(Fechar a aplicao?,
MsgBoxStyle YesNo)

MsgBoxStyle.Question

FCA

Editora de Informtica

i54

VISUAL BASIC

2010

CURSO CoMPLETo

MsgBox(Escolheu o boto com o cdigo


MsgBoxStyle. Information)

& resposta,

ANLIsE

A primeira instruo armazena na varivel resposta um valor inteiro


correspondente ao boto seleccionado pelo utilizador; a segunda instruo
informa-o acerca da escolha efectuada. Desta forma, o contedo das ltimas
caixas est dependente da escolha do utilizador (veja-se a figura 4.11).

FIGURA 4.11

Valores retornados pela funo MsgBox (exemplo)

FUNO INPUTBOX

4.2.2

Apresenta no ecr uma caixa de mensagem padro de sistema operativo


que serve para recolher informaes do utilizador na forma de texto.
ARGUMENTOS
NOME

DESCRIO

OBRIGATRIO?

Tiro

PR0MPT

Mensagem a ser apresentada na caixa.


Representa o texto da barra de ttulo da
janela. O texto predefinido igual ao
nome do projecto em execuo.
Define o texto a surgir automaticamente
na caixa de mtroduao.

Sim.

Texto.

No.

Texto.

Nao.

Texto.

TrrLE

DEFAULTRESPONSE

FCA

Editora de Informtica

FUNES

DESCRIO

NOME

Expresso numrica que especifica, em


medidas de ecr (tzvips), a distncia
horizontal entre a extremidade esquerda
da caixa de dialogo e o limite esquerdo do
ecr. Se este argumento for omitido, a
caixa centrada horizontalmente.
Especifica a distncia vertical entre o topo
da caixa de dilogo e o topo do ecr. Se
este argumento for omitido, a caixa e
centrada na vertical.

XPos

YPos

.,

..

TABELA 4.7

11:1

OBRIGATRIO?

TIpo

Nao.

Numenco.

Nao.

Numenco.

Argumentos da funo InputBox

RETORNO DA FUNO

A funo InputBox devolve um valor do tipo String correspondente ao


texto digitado na caixa de introduo.
ExEMPLo (FuNo INPUTBOX)
Dim utilizador As String
utilizador

InputBox(Digite o seu nome,

Funo InputBox,

Annimo)
MsgBox(Bem vindo utilizador
Retorno da funo InputBox)

& utilizador,

REsuLTADO
Funao nputHox
Die o seu nome

Retorno da funao Inpiit..

Lancei
Bem vindo utilizador Annimo

1
FIGu 4.12

Utilizao da funo InputBox (exemplo)

ANLIsE

A listagem anterior permite mostrar uma caixa de introduo com o texto


Annimo escrito por predefinio. A resposta do utilizador a esta caixa
armazenada na varivel utilizador e posteriormente apresentada numa MsgBox.
FCA

Editora de Informtica

______

VISUAL BAsIc

2010

CURSO CoMPLETo

Para confirmao do texto introduzido, o utilizador pode pressionar a tecla


<Enter> ou fazer dique no boto 0K. Caso o utilizador cancele a introduo, o valor
retornado ser uma cadeia de caracteres de comprimento zero ().

4.3

FUNES DE TEXTO
So utilizadas em operaes que envolvam cadeias de caracteres.

4.3.1

FUNO LEN
Permite contar o nmero de caracteres presentes numa cadeia de texto.
Obviamente, os espaos tambm so includos no processo de contagem.
ARGUMENTo NICO (ExPREssI0N)

a cadeia de caracteres a ser avaliada.


REToRNO DA FUNO

Um nmero inteiro correspondente ao nmero de caracteres da cadeia


especificada.
EXEMPLO
Dim texto As String

Visual Basic

Dim comprimento As Integer


comprimento

Len(texto)

MsgBox(texto &
Funo Len)

possui

& comprimento &

caracteres.,

RESULTADO

Funo Len
Visual Basic possui 12 caactees,

FIGURA

FCA Editora de Informtica

4.13

Funo Len (exemplo)

FUNES

ANLISE

Algumas funes possuem mais do que um modo de utilizao. No caso


da funo Len, esto previstas 16 variaes, em que basicamente o que difere o
5 modo o que se aplica contagem
tipo de dados usado no argumento. O l
de
caracteres em expresses do tipo String (para mudar o modo, faa dique sobre as
zonas para o efeito, como assinalado na figura 4.14).
Len(I
lSoH6 V Len(Expressjon As Obect) s Inteer
Fieturris an integer containlng eithei the number o characteis na string or the nominal number
o bytes
required to store a variable.
bores5ion. Any vaids(-r,g expresson ar vanbk ,eme. JtEptesnn of pe i3&mct Me Len
ftjnc&on
retorn Me 5/te as ti wbe w,ttetj t Me f/e b Me F,/e.Put &ec&n,

FIGURA

4.14 Diferentes modos de utilizao de funes

Enquanto preenche a lista de argumentos, pode tambm utilizar as teclas


cursoras (para cima e para baixo) para alternar entre modos.

4.3.2

FUNES LCASE E UCASE

Procedem converso de todas as letras da cadeia de caracteres em


minsculas e maisculas, respectivamente.
ARGUMENTO NICO OBRIGATRIO (VALuE)

a cadeia de caracteres a ser convertida.


REToRNo DAS FUNES

As funes LCase e UCase devolvem cadeias de caracteres que so o

resultado da converso de todas as letras maisculas de uma cadeia de caracteres


para minsculas ou vice-versa.
ExEMPLo

Deciaro de varves
Dim minsculas,

malsculas As String

Utilizao das es
minsculas

LCase(TlVisual Basic)

majsculas

UCase(Visual Basic)

FCA

Editora de Informtica

i58

VISUAL BASIc

ApreSetD D

2010

CURSO COMPLETO

es.J2cD

MsgBox(minsculas,

Funo LCaseIT)

MsgBox(maisculas,

Funo UCase)

REsULTADo

Funao

Fuiicao

VISUAL OASIC

visual basic

::
FIGURA

4.15

Funes LCase e Ucase (exemplo)

FUNO SPACE

4.3.3

Devolve um nmero especificado de espaos.


ARGUMENTO NICO OBRIGATRIO (NUMBER)

o nmero de espaos pretendido.


REToRNo DA FUNO

Uma cadeia alfarLumrica de caracteres contendo n espaos em branco.


ExEMPLO
Dim nome,

espaos As String

espaos

Space (7)

nome

Ana

R2irn

& espaos

& Silva Retcma Ane

FUNES LTRIM, RTRIM E TRIM

4.3.4

Removem todos os espaos que se encontram no incio, no final ou na


totalidade da cadeia de caracteres especificada.
ARGUMENTO NICO OBRIGATRIO

(SIR)

a cadeia de caracteres a modificar.

FCA

Editora de InformUca

FUNES

1591

RETORNO DAS FUNES

Cadeias a1f numricas de caracteres.


EXEMPLO
esp_esq

LTrim (

VB

fl)

RetD me VB

esp_dir

RTrim(IT

VB

Retorna

todos esp

4.3.5

Trim

VB

li)

VB

Retorna VB

FUNES ASC E CHR

Devolvem o cdigo ASCII do primeiro carcter de uma cadeia de


caracteres e o carcter correspondente ao cdigo ASCII especificado.
A tabela de cdigos ASCII

encontra-se em anexo.

ARGUMENTOS
NOME

DEscRIO

STR.ING
(S EM Asc)

Carcter do qual se pretende obter o cdigo

CHARCODE
(S EM CHR)

OBRIGATRIO?

TIPO

ASC11.

Sim.

Texto.

Cdigo ASCII utilizado para retomar o


carcter correspondente.

Sim.

Numrico.

TABELA

4.8

Argumentos das funes Asc e Chr

REToRNO DAS FUNES

A funo Asc devolve um nmero correspondente ao cdigo ASCII e a


funo Chr um carcter.
ExEMPLo
Dim cdigo As Integer
cdigo

Asc (A)

Retorna 65

Do ingls Arnerican Standard Cade for Information Interchange (Cdigo Padro Americano para o
Intercmbio de Informao); um conjunto de cdigos para o computador representar nmeros, letras,
pontuao e outros caracteres. Surgiu em 1961, pela mo do inventor Robert W. Bemer, cujo objectivo era obter
um padro no qual cada carcter fosse manipulado sob a forma de cdigo binrio, tendo como base inicial todas
as combinaes possveis de 8 bits.

FCA

Editora de Informtica

______

Tece VISUAL BAsIc 2010

CURSO COMPLETO

cdigo

Asc(a) en 97

cdigo

Asc (Ana)

Dim

:-

65

carcter As String

carcter

Chr(65) ReDa

carcter

Chr(97)

etora a

MUDANA DE LINHA NUMA MsGB0xATRIWs DA FUNO CHR

A funo Chr bastante utilizada em conjunto com funes de caixas de


dilogo, especialmente quando pretendemos uma mudana de linha.
EXEMPLO
MsgBox(l. linha & Chr(13)

&

linha,

Funo Chr)

RESULTADO
Furiao
1IInha
2,Iinh

FIGuRA 4.16

Mudana de linha em caixas de dilogo atravs da funo Chr

FUNES LEFT, RIGHT E MIO

4.3.6

Obtm o nmero especificado de caracteres a partir das partes esquerda,


direita ou central de um texto original.
ARGuMENTos

NOME

DEscRIo

OBRIGATRIo?

Tiro

STR

Cadeia de caracteres a ser truncada.

Sim.

Texto.

START

Define a posio do primeiro carcter

(s EM Mio)

Sim.

Numrico.

a ser devolvido.

LENGTH

Nmero de caracteres a obter.

Sim (em Left e Right).


No (em Mid).

Numrico.

TABEL.A 4.9

FCA

Editora de Informtica

Argumentos das funes Left, Right e Mid

FuNEs

161

Se no especificar o argumento Length na funo Mid, a cadeia obtida at ao


ltimo carcter.
RETORNO DAS FUNES

Uma cadeia alfanumrica de caracteres que resulta da truncagem.


EXEMPLO
Dim esquerda,
esquerda
direita
meio

direita, meio As String

Microsoft.VisualBasic.Left(Visual Basic,
Microsoft.VisualBasic.Right

(Visual Basic,

Microsoft.VisualBasic.Mid(Visual Basic,

MsgBox(esquerda,
MsgBox(direita,
MsgBox(meio,

3,

4)

4)

Funo Left)

5)

Funo Right)

Funo Mid)

No cdigo anterior, fez-se referncia explcita iiarnespace Microsft.VisiialBasic,


porque existem funes cujo propsito diferente, mas que possuem o mesmo nome.
Essas funes encontram-se definidas noutra naniespace
Wi;idozLs.For,ns
que a
responsvel por implementar todas as funcionalidades relacionadas com os formulrios.
Em projectos do tipo Windows Forms Application, esta uma iainspace considerada
primria, pelo que o editor acede preferencialmente s funes nela definidas.

RESULTADO

FunoRi..IE41Si

Furio
Visua

FIGur& 4.17

4.3.7

asic

Ftinao
sual

Exemplo de utilizao das ftmes Left, Right e Mid

FUNO INSTR

utilizada para localizar uma poro de texto ou um carcter numa


cadeia de caracteres.

FCA

Editora de Informtica

VIsUAL BAsIc

2010

CURSO CoMPLETo

ARGuMErrros

DEScRIo
Posio inicial do processo de pesquisa (1
se omisso).
Cadeia de caracteres completa.
Cadeia de caracteres a encontrar.
Um dos mtodos de comparao descritos
na tabela 4.11.

NOME
START

STRING1

STPJNG2
COMPARE

TABELA 4.10

OBRIGATRIO?

TiPo

No.

Numrico.

Sim.

Texto.

Sim.

Texto.

No.

CompareMethod.

Argumentos da funo InStr

O argumento Compare especifica a forma como as cadeias de caracteres


so comparadas ( possvel utilizar-se as constantes indicadas na tabela 4.11).
DESCRIO

VALOR

CONSTANTE

COMPAREME-rI-IOD.BINARY

O (predefinido)

COMPAREMETHOD. TExT

TABELA 4.11

Trata-se de um mtodo case-sensitive (o compilador


sensvel a letras maisculas e minsculas aquando
da comparao entre cadeias de caracteres).
Trata-se de um mtodo case-insensitive (o compilador
no sensvel a letras maisculas e minsculas na
comparao entre cadeias de caracteres).

Constantes utilizadas no argumento Compare da funo InStr

REToRNo DA FUNO

Um nmero correspondente posio do primeiro carcter pertencente


sequncia encontrada. Esta funo retoma O, caso no tenha sido verificada
qualquer ocorrncia (match).
ExEMPLO
Dim posio As Integer
posio

InStr(l,

Visual Basic,

V)

et 1

posio

InStr(7,

Visual Basic,

a)

tD

posio

InStr(l,

Visual Basic,

H)

RtcrO

posio

InStr(Visual Basic,

posio

InStr(lO,

posio

InStr(l,

VBT,

b, CompareMethod.Binary) :c O

posio

InStr(l,

VB,

b,

FCA

Ba)

Visual Basic,

2DrEz E

a)

:c

CompareMethod.Text)

Editora de Inrormtica

FuNEs

4.3.8

163

FUNO REPLACE

utilizada para localizar uma poro de texto e substitui-la por outra.


ARGUMENTOS
NOME

DEscRIO

OBRIGATRIO?

TIPO

ExPREssI0N

Cadeia de caracteres completa.

Sim.

Texto.

F.rND

Texto a ser substitudo.

Sim.

Texto.

REPLAcEMENT

Texto de substituio.

Sim.

Texto.

Nao.

Numerico.

No.

Numrico.

Nao.

Com pareMethod.

Posio inicial no processo de


substituio (1 se omisso). Todos os
caracteres a esquerda da posiao
especificada sero truncados.
Nmero de substituies a ser levado a
cabo (-1 se omisso, o que significa que
todas as ocorrncias encontradas no
argumento Find sero substitudas pela
especificada em Replacement).
Um dos mtodos de comparao
descritos na tabela 4.11.

START

C0uNT

COMPARE

TABELA 4.12

Argumentos da funo Replace

REToRNo DA FUNO

Uma cadeia alfanumrica de caracteres com as substituies definidas.


ExEMPLo
Dim textol As String

Visual Basic

Dim texto2 As String


texto2

Replace(textol,

?IjIT,

texto2

Replace(textol,

?j,

texto2

Replace(textol,

texto2

Replace(textol,

texto2

Replace(textol,

texto2

Replace(textol,

texto2

Replace(textol,

v,

1,
Tili,

)
11
y

y,

5)

Rr

y,

3,

O)

y,

TTyII,

W)

3,

1)
2)

si

e:: ;vs.. s
Re:oes 3:

e:o /sa Esc


D5

FCA Editora de Informtica

VISUAL BAsrc 2010

4.4

FUNES MATEMTICAS

CURSO CoMPLETO

So utilizadas em expresses e clculos que envolvem valores numricos.


Estas funes encontram-se definidas na naniespace Systenz.Math, pelo que dever
proceder sua importao atravs de uma instruo lmports.

FUNO SIGN

4.4.1

Indica se um dado valor numrico

positivo, negativo ou nulo.

ARGUMENTO NICO OBRIGATRIO (VALUE)


Qualquer valor numrico.
REToRNO DA FUNO

O (para nulos), -1 (para negativos) ou 1 (para positivos).


EXEMPLO
Dum positivo, negativo, nulo As Integer
positivo
nulo

Sign(8.9)

Re:o 1

Sign(O) Ret:r: O

negativo

4.4.2

Sign(-8.9)

Retcrna -1

FUNO ABS
Determina o valor absoluto (mdulo) do nmero especificado.
ARGuMENTo NICO OBRIGATRIO (VALUE)
Qualquer valor numrico (positivo, nulo ou negativo).
REToRNO DA FUNO
Um nmero real superior ou igual a zero.
EXEMPLO

Dim abs_positivo,
abs_positivo
abs nulo
FCA

abs nulo,

Abs (34)

Retorna 34

Abs(O) Retorna O

Editora de Informtica

abs negativo As Integer

FUNES

abs_negativo

165

Abs(-34) Re:oa3L

FU NO ROUND

44.3

Arredonda valores decimais num nmero especificado de casas decimais.


ARGUMENTOS
DESCRIO

OBRIGATRIO?

TIPO

VALUE

Expresso numrica a ser arredondada.

Sim.

Numrico.

DIGrrs

Nmero de casas decimais pretendidas.

No.

Numrico.

NOME

TABELA 4.13

Argumentos da funo Round

Se no se especificar o argumento Digits, obter-se- um valor arredondado para o


inteiro mais prximo.
RETORNO DA FUNO

Um valor numrico arredondado.


ExEMPLo
Dim valor As Double
valor

Round

valor

Round (-9.8,

valor

Round (9.8,

O) :cna 10

valor

Round (9.4,

O) ReDa9

valor

Round (9.5,

O) Retcra 10

valor

Round (8.5,

O)

(3.14,

1) :D 3.1
O)

Retcr-I

ReD S

Quando o valor possui exactamente cinco dcimas e so especificadas zero casas


decimais, arredondado para o inteiro par mais prximo.

4.4.4

FUNES INT E FIX

Permitem obter a parte inteira de um nmero. A diferena entre Int e Fix


reside no facto de, no caso de o nmero ser negativo, Int devolve o primeiro

FCA

Editora de Informtica

166

VIsuAL BAsIc

2010

CURSO CoMPLETo

inteiro negativo menor ou igual, enquanto Fix devolve o primeiro inteiro positivo
superior ou igual ao nmero especificado.
ARGUMENTo NICO OBRIGATRIO (NuMBER)

o niimero a ser convertido para inteiro.


REToRNo DA FUNO

Nmeros inteiros.
EXEMPLO
resultado

Int(12.4) Retorna 12

resultado

Int(12.5) Retorna 12

resultado

Int(12.6) Reto-na 12

resultado

Fix(12.4) Retorna 12

resultado

Fix(12.5) Retorna 12

resultado

Fix(12.6) Retorna 12

resultado

Int(-12.4) Retorna -13

resultado

Int(-12.5) Retorna -13

resultado

Int(-12.6) etorna-1

resultado

Fix(-12.4) Retoa-12

resultado

Fix(-12.6) Retorna -12

resultado

Fix(-12.6) Retorna -12

FUNO SQRT

4.4.5

Calcula a raiz quadrada de um nmero.


ARGUMENTO NICO OBRIGATRIO

(D)

Valor superior ou igual a zero envolvido no clculo da raiz quadrada.


REToRNo DA FUNO

Um nmero correspondente a uma raiz quadrada.


EXEMPLO
raiz_quadrada
FCA

Editora de

Sqrt (4)

Informtica

Retorna 2

FUNES

4.4.6

167

FU NQ LOG
Calcula o logaritmo natural de um nmero.
ARGUMENTO NICO OBRIGATRIO

(D)

Valor superior ou igual a zero envolvido no clculo do logaritmo.


RETORNO DA FUNO

Um nmero resultado do clculo logartmico.


ExEMPLO
logaritmo

Log(l) RetD O

logaritmo

Log(l.7)

4.4.7

Retcme D.530E2S3

FUNES RND E RANDOMIZE


Geram nmeros aleatrios.
FRMULA AUXILIAR

(Limsup

Limint

1)

Rnd()

Liminf

Em que Lim_sup e Lim_inf representam os limites mximo e o mnimo


no intervalo de nmeros aleatrios a obter. Para que o processador no gere os
nmeros aleatrios sempre a partir do mesmo ponto, dever-se- recorrer
funo Randomize (no possui qualquer argumento) imediatamente antes da
instruo onde simulada a expresso de aleatoriedade.
Faa uso
nmeros inteiros.

da

funo Roiiiid aplicada frmula anterior para obter apenas

EXEMPLO
Randomize
expresso

()
=

(49

1)

Rnd()

Dim aleatrio As Integer


aleatrio

Round(expresso)

ANLIsE

Com as instrues anteriores, obtm-se um nmero inteiro entre 6 e 49.


FCA

Editora de Informtica

168

VIsuAL BAsrc 2010

CURSO CoMPLETo

FUNES SIN, COS, TAN E ATAN

4.4.8

Calculam

o seno,

co-seno, tangente e arco-tangente

do ngulo

especificado.
ARGUMENTO NICO OBRIGATRIO

(D)

Expresso numrica que representa um ngulo em radianos.


RETORNo DAS FUNES

Nmeros representativos das extenses trigonomfricas supracitadas.


ExEMPLo
seno

coseno

Sin(2) Retorna D.9092974


Cos(2) Retoa-0.416::45S

tangente

Tan(5) Re:oma 3.380515

arcotangente

Atan(5) Retorna 1.373401

FUNES DE DATA E HORA

4.5

So utilizadas quando lidamos com expresses cujos contedos podem


representar datas e/ou horas.

FUNES TODAY, TIMEOFDAY E NOW

4.5.1

Devolvem a data (funo Today), a hora (funo TimeOfDay), ou a data e a


hora em simultneo (funo Now), actualmente definidas no sistema operativo.
Estas funes no tm argumentos.
REToRNo DAS FUNES

Datas.
ExEMPLo
data actual

Today() Retorna. oor exempo, 02/27/20iD

hora actual

TimeOfflay() Rezvrra,

agora

FCA

Now()

RetDra,

Editora de Informtica

DD

xeofc. I4:5:21

xoo, #0227/2010 14:54:21

FUNES

4.5.2

169

FUNES DAY, WEEKDAY, MONTH, YEAR, HOUR, MINUTE E SECOND

Retomam valores numricos que representam o dia do ms, o dia da


semana, o ms, o ano, as horas, os mirLutos e os segundos da data ou hora
especificadas.
ARGUMENTOS
NOME

DESCRIO

Representam a data e/ou hora a


utilizar a fim de retirar cada
uma das informaes.
Corresponde a uma constante
que define o primeiro dia da
semana. Por predefinio
utilizado o 1 dia da semana que
estiver definido no seu sistema
(tabela 4.15).

DATE VALUE

DAYOFWEEK

(S

EM WEEKDAY)

TABELA 4.14

OBRIGATRIO?

TIPO

Sim.

Data.

Nao.

FzrstDayOfWeek.

Argumentos das funes Day, WeekDay, Month, Year, Hour, Minute e Second

As constantes utilizadas para fazer referncia a dias da semana


encontram-se dispostas na tabela 4.15.
CONSTANTE

VALOR

CORRESPONDE A...

FIRsTDAYOFWEEK.SuNDAY

Domingo.

FIRsTDAYOFWEEK. M0NDAY

Segunda-feira.

FIRsTDAYOFWEEK. TuE5DAY

Tera-feira.

FIRSTDAYOFWEEK. WED,vEsoAv

Quarta-feira.

FIRsTDAYOFWEEK. THURsDAY

Quinta-feira.

FIRSTDAYOFWEEK. FRIDAY

Sexta-feira.

FIRSTDAYOFWEEK.SATURDAY

Sbado.

TABELA 4.15

Constantes utilizadas no argumento DayOfWeek

REToRNO DAS FUNES

Valores numricos correspondentes aos dias, meses, anos, horas, minutos


e segundos da data/hora especificadas.
EXEMPLO
agora

dia

Day(agora)

#05/21/2001 08:32:12 AI4ff AtribuDdedat8ehOra

Retorna 21
FCA

Editora de Informtica

VISUAL BAsrc

2010

CURSO CoMPLETo

Retorna 5

ms

Month(agora)

ano

Year(agora) Retorna 2001

horas

Hour (agora)

minutos

Minute(agora) Re:oa32

segundos

Retorna 8

Second(agora) Retoma 12

Dim dia_da_semana As Integer


FirstoayOfWeek.Sunday) Retorna 2

dia_da_semana

WeekDay(agora,

dia da_semana

Weekoay(agora, FirstDayOfWeek.Monday) Retorna 1

FUNO WEEKDAYNAME

4.5.3

Permite obter o nome do dia da semana especificado.


ARGUMENTOS
NOME

DEscRIo

OBRIGATRIO?

TIPO

WEEKDAY

Dia da semana dei a 7.


Valor lgico que abrevia, ou no, o
texto retomado (False, se omisso).
Define o primeiro dia da semana

Sim.

Numrico.

No.

Lgico.

No.

FirstDayOfWeek.

ABBREVIATE
DAYOFWEEK

(consulte a tabela 4.15).

TABELA 4.16

Argumentos da funo WeekDayName

REToRNo DA FUNO

Uma cadeia alfanumrica de caracteres correspondente ao nome do dia


da semana (abreviado com trs letras caso o argumento Abbreviate tenha sido
definido com o valor True).
EXEMPLO
dia

WeekDayName (2,

FirstDayOfWeek. Sunday) Retorna segunda-ere

dia

WeekDayName(2,

FirstDayOfWeek.Tuesday) Retornaquarta-eira

dia

WeekDayName(1,

FirstDayOfWeek.Tuesday)

dia

WeekDayName(5,

FirstDayOfWeek.Saturday) Retornaquarta-f&ra

dia

WeekDayName(2, True,

Retorratera-eira

FirstDayOfWeek.Sunday) Retornaseg

A expresso do retorno est dependente do idioma do sistema operativo.


FCA

Editora de Informtica

FUNES

4.5.4

17f

FUNO MONTHNAME
Permite fazer corresponder a um nmero de um ms o seu nome.
ARGUMENTOS

NOME

DEscRI0

OBRIGATRIO?

TIPO

M0NTH

Ms dei a 12.
Valor lgico que abrevia, ou no, o texto
correspondente ao nome do ms (considerado
False, se omisso).

Sim.

Numrico.

No.

Lgico.

ABBREVrATE

TABELA

4.17 Argumentos da funo MonthName

RETORNO DA FUNO

Uma cadeia alfanumrica de caracteres correspondente ao nome do ms


especificado (abreviado com trs letras caso o argumento Abbreviate tenha sido
definido com o valor True).
ExEMPLo
ms

MonthName(12) Retcma Dezembro

ms

MonthName (5, True) Retorna 1a

Tal como

acontece

na

funo WeekDnyName,

o idioma do

retorno conferido pelo

sistema operativo.

4.5.5

FUNO DATESERIAL
Permite obter uma data por especificao do dia, ms e ano.
ARGuMENTos
NOME

REPRESENTA O...

OBRIGATRIO?

TIPO

YEAR

Ano.

Sim.

Numrico.

MONTH

Ms.

Sim.

Numrico.

DAY

Dia.

Sim.

Numrico.

TABELA 4.18

Argumentos da funo DateSerial

REToRNo DA FUNO

Uma data baseada nas trs partes descritas na tabela 4.18.


FCA

Editora de Informtica

P72.

VISUAL BAsIc

2010

CURSO CoMPLETo

EXEMPLO

data_completa

]JateSerial(1970,

2,

4) etce2/4J197D

FUNO DATEDIFF

4.5.6

Calcula a diferena entre duas datas/horas no intervalo especificado.


ARGUMENTos
DESCRIO

NOME

OBfUGATRI0?

Tiro

Sim.

Datelnterval.

Representa o intervalo de tempo


utilizado no clculo da diferena

INTER VAL

entre as datas (tabela 4.20).


DATEi

Corresponde data de incio.

Sim.

Data.

DATE 2

Corresponde data de fim.

Sim.

Data.

DAYOFWEEK

Consulte a tabela 4.15.

No.

FirstDayOfWeek.

No.

FirstWeekOjYear.

WEEKOFYEAR

Designa uma constante intrnseca que


define a primeira semana do ano a ter
em conta. Por exemplo, se for
atribuda a constante Janl, significa
que a semana onde ocorre o dia 1 de
Janeiro assumida (tabela 4.21); caso
no especifique um valor, sero
levadas em conta as definies

actuais de sistema operativo.


TABELA 4.19

Argumentos da funo DateDzff

possvel utilizar as constantes da tabela 4.20 no argumento Interval.


CONSTANTE

BASE DE CLCULO

DATEINTERvAL. YEAR

Anos.

DATEINTERvAL. QuARTER

Trimestres.

DATEINTERVAL. MONTH

Meses.

DATEINTERvAL. DAY

Dias.

DATEINTERvAL. WEEK

Semanas.

DATEINTERvAL. HOUR

Horas.

DATEINTER VAL. MINUTE

Minutos.

DATEINTERvAL. SEc0ND

Segundos.

TABELA 4.20

FCA

Valores utilizados no argumento Interval da funo DateDff

Edftora de Informtica

i7

FuNEs

Em relao ao argumento WeekOjYear, pode utilizar uma das constantes


indicadas na tabela 4.21.
VALOR

A PRIMEIRA SEMANA ASSUMIDA A QUE...

FFRsTWEEKOFYEAR.JAN1

Ocorre no dia 1 de Janeiro (predefirilo).

FIRSTWEEKOFYEAR. FrRsTF0uRDAYS

Possui pelo menos 4 dias

FIR5TWEEKOFYEAR. FrR5TFuLLWEEK

Corresponde a uma semana completa (7 dias).

TABELA

4.21

do

novo ano.

Constantes utilizadas no argumento WeekOfYear da

funo

DateD

REToRNo DA FUNO

Um nmero inteiro correspondente diferena encontrada.


EXEMPLO
data 1

#05/08/2001#

data_2

#06/27/2001#

dif

DateDiff(Datelnterval.Day,

dif

DateDiff(Datelnterval.Month,

4.5.7

datal,

data_2)

datal,

RtDr5C

data_2)

::

FUNO DATEADD
Adiciona dias, meses, anos e outras unidades de tempo a uma data.
ARGuMENTos

NOME

DESCRIO

INTER VAL

Unidade de tempo que se pretende

OBRIGATRIo?

TIPo

Sim.

Intervalo.

NuMBER

utilizar (consulte a tabela 4.20).


Quantidade a ser adicionada.

Sim.

Data.

DATEVALuE

Data a sofrer alteraes.

Sim.

Data.

TABELA

4.22

Argumentos da

funo

DateAdd

REToRNo DA FUNO

Uma data superior especificada.


EXEMPLO
dtl

DateAdd(Datelnterval.Day,

1,

#5/8/1975#)

2::a
FCA

,75#

Editora de Informtica

..

174

VISUAL BASIc

2010

CURSO COMPLETO

DateAdd(Datelnterval.Month,

dt2
dt3

DateAdd(Datelntervai.Year,

3,
2,

#5/8/1975#) ReDrra #8/8/197S#


#5/8/i975#)

ReDrna 5/8/1977

FUNES DE CONVERSO ENTRE TIPOS DE DADOS


So as funes cuja categoria a mais simples de identificar, pois os seus
nomes comeam sempre pela letra C, seguida do prefixo que identifica o tipo de
dados para o qual estamos a converter determinada expresso. Estas funes so
particularmente teis quando o programador pretende armazenar numa varivel
wn contedo que dever obrigatoriamente corresponder a um tipo de dados
especfico. Estas funes so utilizadas apenas em operaes que envolvam
variveis no declaradas ou do tipo VariantType, isto porque, para variveis
explicitamente definidas, a prpria linguagem encarrega-se da autoconverso em
operaes de atribuio.

4.5.8

ARGUMENTO NICO E OBRIGATRIO (ExPREssI0N)

Expresso ou valor a converter.


RETORNO DAS FUNES

Voltil, dependendo da funo utilizada.


EXEMPLO
Dim valor As Long

valor

1200 .3 AutocDrwersc; erreaondamento

Dim vari, var2

Deca-ao de v hves sem tipo definido VeiartType)

vari

CByte (valor) Erro; veor no suportado

var2

CInt (12.7)

Vaior ameiondedo para irtero I3)

vari

Vai(187)

Valor c:va

vari

Vai ( 187sj fhsj f ) Valor ccnvertdo para inteiro IE

vari

Vai (sgshg56

1)

oc para :nteiro (187

Sem erro, mas retorna O

Short),
Outras funes de converso so CSByte (para SByte), CShort (para
Long),
(para
C(JShort (para UShort), CUInt (para Ulnteger), CULng (para LJLorig), CLng
CStr ou
CDec (para Decimal), CSng (para Singie), CDb1 (para Doubie), CChar para Char,
te o
conver
Vai
funo
A
ToString (para String), CBool (para Booleati) e CDate (para Date).
valor numrico associado a uma cadeia alfanumrica de caracteres.
FCA

Editora de Informtica

FUNES

4.5.9

175

FUNES DE VERIFICAO DE TIPOS DE DADOS

frequente o programador verificar, em qualquer ponto,

qual o tipo de
informao obtida atravs de determinada expresso. Para tal, deve recorrer a
este conjunto de funes. Aps avaliao do argumento, estas funes devolvem
valores booleanos mediante a expresso possa, ou no, ser convertida e
representada no tipo de informao pretendido.
ExEMPLO
Dim teste As Boolean
teste

IsNumeric(12)

teste

IsNumeric(aaa)

RetonaT
Re:crr F&se

Dim tipo As String Ce r cDrter urr flome ie ur tpD


tipo

Outras ftines

4.6

teste.GetType() .ToString() Rezoa Svst.BDoea

de verificao so IsArray, IsDate e IsObject.

OUTRAS FUNES

Este tpico apresenta a sintaxe e alguns exemplos de outras funes que


no se enquadram em nenhuma das categorias anteriores.

4.6.1

FUNES LBOUND E UBOUND (FUNES DE ARRAY)


Obtm os limites inferior e superior de um array, respectivamente.
ARGuMENTos

NOME

DESCRIO

OBRIGATRIO?

TIPO

ARRAY

Nome da varivel do tipo array.


Nmero identificador da dimenso a ser
avaliada (1 se omisso).

Sim.

Array.

Nao.

Numerico.

RANK

TABELA

4.23

Argumentos das funes LBound e LlBound

Utilize 1 para a primeira dimenso, 2 para a segunda, e assim sucessivamente.

RETORNo DAS FUNES

Nmeros inteiros que representam um dos limites do array.

FCA

Editora de Informtica

_________
176

VISUAL BAsIc

2010

CURSO CoMPLETo

EXEMPLO
Dim matriz(12,

4 :::s

4) 12 rs

um

LBound(matriz,

1)

um

UBound(matriz,

1)

er D
Retca :2

FUNO FQRMAT (FUNO DE FORMATAO)


A funo Format utilizada em operaes de formatao de valores que
podem representar nmeros, datas e valores monetrios e percentuais.

4.6.2

ARGuMENTos
NoME
ExPRE5sI0N

DESCRIO

OBRIGATRIO?

TIPo

Expresso de qualquer tipo a ser

Sim.

Variant.

No.

Texto.

formatada.

.
45
Mscara de formatao

SrLE

TABELA 4.24

Argumentos da funo Format

REToRNo DA FUNO

Cadeia de caracteres resultado da aplicao da mscara de formatao.


EXEMPLO
num

Format(12.5, 0.000)

Format(#1-2-75#,

hoje
taxa

Format(0.17,

Reci2,5OD

udd/MMWI/yyfl)

0.0%)

Retoma1?.O%

A simbologia utilizada na criao de mscaras de formatao encontra-se


descrita em anexo.

EXERCCIOS RESOLVIDOS

4.7

Este ponto apresenta alguns exemplos de utilizao de diversas funes


definidas no Visual Basic.

Conjunto de simbolos com significado especial, utilizados na formatao de valores.


FCA

Editora de Informtica

FUNES

4.7.1

177

CONTADOR DE PALAVRAS

Um procedimento deve, recorrendo funo InputBox, ler do teclado uma


frase ao gosto do utilizador e apresentar, numa MsgBox, o nmero de palavras
presentes.
RESOLUO

1)

Crie um novo projecto do tipo Windows Forms Application com o


nome Contador;

2)

Programe o evento Load do formulrio predefinido com as instrues


que se seguem:

Private Sub Forml_Load(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles Mysase.Load
Dim frase As String

.ve

entrada

Dim num_palavras As Integer Vav& da


Dim comprimento As Integer C

DD

:cta

caaeia

Dim posio As Integer :s :e caca :Edc:e

eco !-a da -asa


frase

InputBox(Escreva uma frase ao seu gosto...)

Deter-comprimento

rme :c:a de cac:as


Len(frase)

as o zadcr:a-ra escrto a
eum
1
If comprimento
&:

O Then

>

scrv a :

num_palavras

pa: de:rar D n- er tcta de


For posio

as:s

1 To comprimento

If Mid(f rase,
num_palavras

posio, 1) = 1
Then
= num_palavras
1

Next
End If

FCA

Editora de Informtica

178

VISUAL BASIC

2010

CURSO CoMPLETo

& num_palavras &


MsgBox(A sua frase contm
1.
1
)
e.Information
MsgBoxStyl
palavra(s)
End

Sub

TEsTE

1) Execute o programa;
2) Na caixa de introduo, escreva uma frase ao seu gosto (ver sugesto
dada na figura 4.18);
WindowsApplicationl

Esuev. uma tase ao seu gosto...


Cancel

O Visual Basic uma linguagem de programao fcil de aprender.

FIGUR.A 4.18

Programa Contador de palavras

recolha de dados

3) Faa dique em 0K;


4) Surgir urna MsgBox, apresentando o nmero de palavras (comparar
com a apresentada na figura 4.19);
WindowsApplication
A sua frase contrn 11 palavra(s).

FIGuFA 4.19

Programa Contador de palavras

apresentao de resultado

5) Faa dique em 0K para finalizar o programa.

NUMERAO ROMANA

4.7.2

Crie um programa capaz de ler, de uma InputBox, um nmero


compreendido entre 1 e 99 (em numerao rabe) e devolver o respectivo
nmero em numerao romana numa MsgBox.
FCA

Editora de Informtica

___Li

FUNES
RESOLUO

1)

Crie um novo projecto do tipo Windows Fonns Application com o


nome Romana;

2)

Programe o evento Load do formulrio predefinido com as instrues


que se seguem:

Private Sub FormlLoad(ByVal sender As System.Object,


Byval e As System.EventArgs) Handles MyBase.Load
Dim nmero
nmero

InputBox(Introduza um nmero de 1 a 99:)

It Not IsNumeric(nmero)
MsgBox(Erro!

Then

MsqBoxStyle.Critical)

Exit Sub
End If
If CLng(nmero)
MsgBox(Errol

<

1 Or CLng(nmero)

>

99 Then

MsgBoxStyle.Critical)

Exit Sub
End If

nmero

CInt (nmero)

Dim nmero_str As String


nmero str

Format(nmero,

Dim unidades,
dezenas
unidades

00)

dezenas As Integer

CInt(Microsoft.VisualBasic.Left(nmerostr,

=
=

1))

CInt (Microsoft .VisualBasic.Right (nmero str,

Dim romano,

romanol,

1))

romano2 As String

Select Case dezenas


Case 1

romanol

Case 2

romanol

XX

TI2OCXII

Case 3
romanol

FCA

Editora de Informtica

VISUAL BASIc

2010

CURSO COMPLETO

Case 4
romanol

XL

LX

LXX

LXXX

XC

Case 5
romanol
Case E
romanol
Case 7
romanol
Case 8
romanol
Case 9
romanol

End Select
Select Case unidades
Case 1
rornano2

II

III

IV

VI

VII

VIII

Case 2
rornano2
Case 3
romano2
Case 4
romano2
Case 5
romano2
Case E
romano2
Case 7
romano2
Case 8
romano2

FCA

Editora de Informtica

FUNES

181

Case 9
romano2
End

ITIXIT

Select

romano

romanol & romano2

MsgBox romano, MsgBoxStyle. Information,


Nmero romano de & nmero
End Sub

ANLISE

O algoritmo mais simples para converter de numerao rabe para


numerao romana :
Encontrar o nmero de dezenas e unidades por decomposio
alfanumrica (da a formatao personalizada para que fossem
mostrados zeros sem significado at obter um total de dois dgitos);
Recorrendo ao uso de operaes de seleco, fazendo corresponder a
cada parte a representao romana respectiva;
Concatenar as duas partes romanas (dezenas e unidades).
TEsTE

Ao executar o procedimento e escrever, por exemplo, 78 na InputBox, o


programa mostrar o respectivo valor em numerao romana (figura 4.20).
Nmero romano 4..
cxxviii

LJ
FIGURA 4.20

4.7.3

Programa Numerao romana (resultado)

OVERFLOW

Crie um programa que apresente, numa MsgBox, o maior nmero inteiro


que possvel armazenar numa varivel do tipo Integer.

FCA

Editora de InforrntIca

i82

VISUAL BAsIc

2010 CuRso CoMPLETo

REsoLuo (SEM VERIFICAO DE ERRO)

Quando tentamos armazenar um valor no suportado por determinado


tipo de dados, ocorre um erro em tempo de execuo designado por sobrecarga
ou overflow.
Declarando uma varivel do tipo Integer e recorrendo a um ciclo infinito
do tipo Do While True, que termina, logicamente, quando ocorre a operao ilegal
supracitada, possvel determinar em que valor ocorreu a excepo. Assim:
1) Crie um novo projecto do tipo Windows Forms Application com o
nome Overflow;
2) Programe o evento Load do formulrio predefinido do seguinte modo:
Private Sub Forml_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handies MyBase.Load
Dim nmero As Integer
Do While True
nmero

nmero

Loop
End Sub

3) Execute o projecto (dever ocorrer o erro apresentado na figura 4.21);


j OverflowEicception was unhandled

or resulted in ri overfiom.

Aithrietic cper

Troubleshootirnj tips:
Ge ereraI hep For this excepelon.

Searc.h for more HeIp Onhne.

Actions:
Viem
Ccpy e .ceptor detail to the cIpboard

FIGURA

4.21

Erro resultante de um overflow

4) Termine por completo a execuo do programa.


RESOLUO (coM CONTROLO DE ERRO)

O programador dever proceder a uma manuteno de erros inteligente e


eficaz, fazendo com que os seus aplicativos no deixem de funcionar. O controlo
FCA

Editora de Informtica

FuNEs

183

de erros feito, na maior parte das vezes, recorrendo-se ao uso de blocos Try...
Catch... End Try. Assim, propomos a alterao do procedimento anterior, de
forma a incluir esta verificao de erro:
Private Sub Forml_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handies MyBase.Load
Dim nmero As Integer
Try
Do While True
nmero

nmero

Loop
Catch
MsgBox(ltimo valor suportado:

1?

& nmero,

MsgBoxStyle Exclamation)
.

End Try
End Sub

ANUsE
Ao utilizar o bloco Try... Catch... End Try, o compilador fica atento a
qualquer erro que ocorra numa instruo que se situe entre Try e Catch. Caso
ocorra um erro em tempo de execuo, o programa ignora as instrues
seguintes, passando imediatamente para o bloco de instrues que estiverem
entre Catch e End Try.
TESTE

Com as alteraes efectuadas ao cdigo-fonte, o programa deixou de ficar


suspenso; em vez disso, apresenta uma mensagem (figura 4.22) descrevendo o
limite mximo suportado pelo tipo de dados Integer.
WindowsApplication 1

ltimo valor suportado: 2147463647

[EEJ
FIGURA 4.22

O programa Overflow em execuo

FCA

Editora de Informtica

184

VISUAL BAsIc 2010

CURSO CoMPLETO

REsoLuo (COM INFORMAO ADICIONAL ACERCA DO ERRO)

Para se obter informaes adicionais acerca do tipo de excepo que


ocorre, recorre-se a objectos do tipo Exception (ver indicao no cdigo que se
segue).
Private Sub FormlLoad(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handies MyBase.Load
Dim nmero As Integer
Try
Do While True
nmero

nmero

Loop
Catch ex As Exception

MsgBox(ex.Message)

.4

End Try
End Sub
ANLISE

O programa emite a mensagem de erro standard (propriedade Message do


objecto Exception) e no termina abruptamente (figura 4.23).
WindowsApplkation 1
Arithmeti: operation resulted in n oerFIo.

FIGURA 4.23

Apresentao da propriedade Message do objecto Exception

RESUMO
Em Visual Basic, os argumentos das funes so separados por vrgulas e
includos entre parnteses curvos.
As funes intrnsecas da linguagem encontram-se na sua grande maioria
definidas na

namespace MICROS OFT. Vis UALBAS1C.

Para que no seja necessrio referir o caminho completo at uma funo,


podemos instruir o compilador a aceder aos elementos de programao definidos
numa namespace atravs de uma instruo IMPOR TS.
FCA

Edftora de Informtica

FUNES

185

A funo Ms G B ox apresenta no ecr uma caixa de mensagem padro de sistema


operativo com o Icone e botes especificados.
A funo INP UTB ox apresenta no ecr uma caixa de mensagem padro de
sistema operativo que serve para recolher informaes do utilizador na forma de
texto.
A funo LEN permite contar o nmero de caracteres presentes numa cadeia de
texto.
As funes LCA5E e LJCAsE procedem converso de todas as letras da cadeia
de caracteres em minsculas e maisculas, respectivamente.
As funes L E F T, RI G HT e MID obtm o nmero especificado de caracteres a
partir das partes esquerda, direita ou centro de um texto original.
A funo SPAcE devolve um nmero especificado de espaos e as funes
L TRIM, R TRIM e TRIM removem todos os espaos que se encontram no incio,

no final ou na totalidade da cadeia de caracteres especificada.


As funes As c e CHR devolvem o cdigo ASCII do primeiro carcter de uma
cadeia de caracteres e o carcter correspondente ao cdigo ASCII especificado,
respectivamente.
A funo INS TR utilizada para localizar uma poro de texto ou um carcter
numa cadeia de caracteres. A funo REPLACE, para alm de localizar uma
poro de texto, substitui-a por outra.
A funo A B s determina o valor absoluto (mdulo) do nmero especificado e a
funo S IGN indica se um dado valor numrico positivo, negativo ou nulo.
R o UND arredonda valores decimais num nmero especificado de casas decimais
e as funes INT e Fix permitem obter a parte inteira de um nmero.

A Funo S Q R T calcula a raiz quadrada de um nmero.


A funo Lo G calcula o logaritmo natural de um nmero.
As funes RND e RANDOMIzE permitem gerar nmeros aleatrios.
As funes SIN, Cos, TAN e ATAN calculam o seno, co-seno, tangente e arco-tangente do ngulo especificado, respectivamente.
As funes T0DAY, TIMEOFDAY e Now devolvem a data, hora e a data e a
hora em simultneo do sistema operativo, respectivamente.
As funes DAy, WEEKDAY, M0NTH, YEAR, HOUR, MINUTE e SEc0ND

retomam valores numricos que representam o dia do ms, o dia da semana, o


ms, o ano, as horas, os minutos e os segundos da data ou hora especificadas.
FCA

Edftora de Informtica

i86

VISUAL BAsIc

2010

CURSO CoMPLETo

WEEKDAYNAME e M0NTHNAME permitem obter os nomes dos dias da

semana e dos meses especificados.


A funo DATEDIFF calcula a diferena entre duas datas/horas no intervalo
especificado, e a funo DA TEA DD adiciona dias, meses, anos e outras unidades
de tempo a uma determinada data.
A funo DATESERIAL obtm uma data por especificao do dia, ms e ano.
Os nomes das funes que permitem efectuar a CONVERSO ENTRE TIPOS DE
DADOS comeam sempre pela letra C, seguida do prefixo que identifica o tipo
de dados para o qual estamos a converter determinada expresso.
As funes de VERIFICAO DE TIPO DE DADOS permitem determinar em
qualquer ponto de execuo de um programa qual o tipo de informao de
determinada expresso.
As funes LB0UND e
respectivamente.

IJB0LIND

obtm os limites inferior e superior de um array,

F0RMAT utilizada em operaes de formatao de valores que podem

representar nmeros, datas e valores monetrios e percentuais.


O controlo de erros em Visual Basic feito recorrendo-se ao uso de blocos
TRY... CATcH... END TRY.

PERGUNTAS DE REVISO

1) Qual(is) a(s) funo(es) que retorna(m) a data e/ou hora do sistema


operativo?

FCA

ci

Date.

ci

Time.

ci

TimeOfDay.

ci

Today.

Now.

ci

Day.

ci

SystemDate.

ci

SystemDateTime.

Editora de Informtica

FUNES

2)

Microsoft. VisualBasic.Mid( FCA

2, 3) retorna:

Um erro.
ci

FC.

ci

u
ci

3)

4)

Uma cadeia alfanumrica de caracteres de comprimento zero.

Microsoft.VisualBasic.Left(198, 1) retorna:
ci

Uma cadeia de caracteres.

ci

Um erro.

ci

Um valor numrico.

ci

O valor lgico False.

#1O-12-2005#

1 devolve:

ci

#1O-132OO5#.

ci

#11-12-2005#.

ci

Um erro.

ci

Nenhuma das respostas indicadas est correcta.

5) Qual a funo que permite obter o limite inferior de um array?


ci

Bound.

ci

lJBound.

ci

LBound.

ci

CBound.

FCA

Editora de Informtica

188

VISUAL SASIC

2010

CURSO COMPLETo

6) LCase (V) & UCase(ISUAL) retorna:


ci

VISUAL.

ci

visual:.

ci

Visual.

ci

Um erro.

ci

Nenhuma das afirmaes anteriores est correcta.

7) Exception :
ci

Uma propriedade.

ci

Um mtodo.

ci

Um evento.

ci

Um objecto.

ci

Umtipodedados.

ci

Nenhuma das afirmaes est correcta.

8) A funo Atan encontra-se definida na namespace:


ci

Sys tem. VisualBasic.

ci

System.Microsoft.

ci

System.Math.

ci

Miscrosoft. VisualBasic.

9) Len(SpaceClO)) retorna:

FCA

cl

o.

ci

1.

ci

lo.

ci

Um erro.

Editora de Informtica

FUNES

189

10) Num bloco Try... Catch... End Try, quando ocorre um erro, o programa
dirige-se para:

ExERccIos
1)

A instruo situada imediatamente antes do Catch.

A instruo situada imediatamente depois do Catch.

A instruo situada imediatamente antes do End Try.

A instruo situada imediatamente depois do End Try.

PROPOSTOS

Crie uma funo capaz de receber um nmero inteiro compreendido


entre 1 e 999 e de o apresentar por extenso (por exemplo, 532
quinhentos e trinta e dois);

2) Um programa deve, recorrendo funo InputBox, ler do teclado dois


valores numricos inteiros, separados por vrgulas, correspondentes
ao dividendo e divisor de uma diviso, O resultado desta diviso
dever ser arredondado para o inteiro mais prximo e devolvido para
o ecr numa MsgBox;
3)

Crie uma funo que receba uma cadeia alfanumrica de caracteres


correspondente a um nmero romano compreendido entre 1 e 999 e
converta-o para numerao rabe;

4)

Incorpore um boto de comando num formulrio responsvel por


apresentar o site da FCA (www.fca.pt);

Utilize a funo SIielI e consulte o sistema de ajuda online para obter informaes
acerca dos seus argumentos.
5)

Crie um projecto do tipo consola capaz de receber do teclado a data


de nascimento de um indivduo e apresentar a idade;

6)

Implemente uma nova funcionalidade no projecto desenvolvido na


alnea anterior de forma que este apresente tambm o nmero de dias
vividos pelo indivduo em questo;

FCA

Editora de Informtica

190

VISUAL BASIc 2010

CURSO CoMPLETo

7)

Crie um programa capaz de ler um nmero de telefone nacional


numa InputBox e de apresentar, numa MsgBox, a informao ao
utilizador se o nmero que introduziu , ou no, vlido. Considere
nove dgitos e as redes actualmente implementadas;

8)

Faa com que o programa anterior informe o utilizador acerca da


rede de comunicaes (Fixa, TMN, Vodafone ou Optimus) qual
corresponde o nmero introduzido;

9)

Gere uma chave de totoloto completa numa MsgBox com o auxlio


das funes Rnd e Randomize. Os nmeros no podem ser repetidos;

10) Qual a maior data que pode ser representada num computador com o
sistema operativo Windows? Provoque o overflow do tipo de dados
Date.

FCA

Editora de Informtica

UsABILIDADE

Neste captulo iremos focar os princpios do desenho de interfaces grficas com


base em reas do conhecimento que esto por detrs das Cincias da
Computao, nomeadamente a Fisiologia, a Psicologia, a Semitica e a
Comunicao (visual, sonora e escrita). Comearemos por abordar os principais
conceitos envolvidos na interaco homem-computador e terminaremos o
captulo aptos a idealizar 46
ofront-end de aplicaes Windows com caractersticas
intuitivas, consistentes, objectivas, funcionais e assertivas, proporcionando um
encontro real entre as expectativas de usabilidade e a aprovao dos utilizadores
finais.

5.1

INTERFACES

Com a introduo dos computadores de uso geral nas sociedades


modernas, os meios de comunicao homem-homem e as formas de interaco
homem-computador (IHC) que hoje conhecemos experimentaram uma evolu
o
grandiosa que superaram, em larga escala, o que em tempos o ser human
o
imaginava constituir pura fico cientfica. Como objecto de estudo principal, a
IHC uma rea do conhecimento que visa compreender a anlise das relaes
entre dois intervenientes: o ser humano (como utilizador) e o computador (como
um conjunto de componentes de software e de hardware). A ligao entre estes
dois agentes possibilitada atravs daquilo que se designa de interface, cuja
morfologia pode ir da mais simples linha de comandos aos mais comple
xos
ambientes grficos proporcionados pelos diversos sistemas operativos da famlia
Microsoft Windows.

Parte do software que mterage directamente com o utilizador (por exemplo,


visualizao do
contedo de uma base de dados e escrita de uma mensagem de e-niail); em
oposio, back-end refere-se aos
processos que os utilizadores no vem, tais como a introduo efectiva de
um novo registo numa base de
dados e o envio de um e-mali.

FCA

Editora de Informtica

192

VISUAL BASIC

2010

CURSO CoMPLETo

INTERFACE ELECTROMECNICA
At ao final da II Guerra Mundial, os computadores funcionavam base
controlar
da electromecnica e a forma que ns, seres humanos, tnhamos de os
na
era atravs de alavancas, manivelas e painis de fios rudimentares, mas que
poca eram o apogeu da tecnologia. O objectivo era processar e armazenar dados
a um
em cartes atravs de perfurao; simplificando, um furo correspondia
ra
47 foi pionei nesta
IBM
nimero e dois furos representavam uma letra. A
tecnologia.
5.1.1

INTERFACE DE LINHA DE COMANDOS


Com o avano tecnolgico em exponencial crescimento na rea da
o
electrnica digital, surge, na dcada de 60, o computador tal e qual como
das
vemos nos dias de hoje; esta imagem deve-se em grande parte inveno
el
duas maravilhas modernas da IHC o monitor e o teclado. Passou a ser possv
de
enviar comandos sob a forma de texto a partir do dispositivo de sada
de
informao (o teclado) e obter resultados por intermdio do dispositivo
ce
entrada de informao (o monitor). nesta altura que eclode a interfa
de
contempornea mais elementar a consola, que veio permitir a solicitao
tador
compu
operaes atravs de comunicao textual numa linguagem que o
consegue reconhecer. Dependendo do sistema operativo e do conjunto de tarefas
o
possveis de executar, os comandos so normalmente numerosos e compostos,
de
s
que implica que o utilizador os decore ou constantemente recorra s pgina
ajuda utilizao dos mesmos. Apesar de esta interface ter vindo a cair em
iente
desuso em funo do aparecimento de outros tipos de interfaces visualu
mais atractivas e de utilizao mais intuitiva, ainda bastante utilizada no ensino
da microcomputao e revela-se ideal para a execuo de tarefas simples e/ou
que requerem menores recursos econmicos e logsticos.

5.1.2

INTERFACE GRFICA

5.1.3

O rato foi inventado pelo norte-americano Douglas Engelbart, em 1968, e


veio facilitar (e incentivar) a utilizao de softzvares que ultrapassavam os limites

Informtica e fundada
International Business Machines; empresa norte-americana ligada
corporativamente em 1911.

FCA

Editora de Informtica

UsABILIDADE

193

da comunicao textual, como os que proporcionavam o acesso a menus que


cobriam um vasto conjunto de funcionalidades. Passou a ser possvel interagir
com o computador numa ptica point-and-click, em que cada zona do ecr ficou
apta a reconhecer a posio actual do cursor e o boto (ou botes) pressionado(s)
pelo utilizador e, mediante a avaliao desta ocorrncia, ser executada uma tarefa
especfica. Actualmente, quase todos os sistemas operativos oferecem o acesso a
uma interface grfica, todas muito semelhantes, e que essencialmente formam
uma combinao de janelas, cones, botes e menus de opes, entre outros
elementos comuns. Naturalmente, iremos focar este tipo de interfaces, j que o
mesmo concebe o carto-de-visita dos sistemas operativos Windows e dos
aplicativos que neles assentam.
5.1.4

INTERFACE WEB

A World Wide Web trouxe consigo um novo conceito no que conceme


forma como as sociedades modernas comunicam entre si e partilham as
informaes e servios. Apresenta uma interface simples, intuitiva, detm um
elevado nvel de interactivade e quase tudo pode ser executado em tempo real.
Tendo vindo a desempenhar um papel fulcral no processo de globalizao, este
tipo de interface tem caminhado ao lado (e na mesma direco) das interfaces
grficas, j que se baseia nos mesmos princpios e apresenta um conceito de
utilizao bastante idntico. A grande diferena prende-se sobretudo com os
sentimentos de autonomia e de liberdade. Independentemente da plataforma, do
sistema operativo e do software responsvel pelo acesso s pginas web (vulgo
brozvser), o resultado da apresentao dos contedos visualizado de modo
praticamente igual. Para alm da homogeneidade conseguida em termos de
imagem e da versatilidade em termos de utilizao, no podemos omitir a
importncia do relativo anonimato; hoje em dia, possvel usufruir de um
servio e adquirir bens com uma desejvel privacidade, segurana e comodidade.
Nos ltimos anos foram introduzidas tecnologias capazes de expandir as
flmcionalidades da Web, tais como scripts desenvolvidos em Java, Visual Basic,
Perl e PHP, e que vieram presentear os websites com o to desejado factor
dinmico e operacional, nomeadamente no que diz respeito ao acesso a diversos
sistemas de gesto de base de dados e projeco de animaes simples no ecr.
Posteriormente, surgiu a oportunidade de se embutir aplicaes especificamente
desenhadas para a integrao com a HTML, desde as applets do Java at ao
Silverlight da Microsoft, passando pelo Flash da Adobe e pela tecnologia
FCA

1.

Editora de Informtica

194

VISUAL BAsIc

2010

CURSO CoMPLETo

ActiveX; agora, os cibernautas so capazes de executar um infindvel universo


de operaes e deliciarem-se com animaes e jogos online de elevada qualidade.
Um dos elementos mais antigos e com maior presena na interface web a
hiperligao (vulgo link); este veio introduzir o simplismo virtual do click-and-go
e transmitir o sentimento de que tudo o que pretendemos se encontra
distncia de um nico dique. Existem vrias formas de encapsular hiperligaes,
sendo que as mais utilizadas so as que tomam a aparncia de texto, de botes de
comando e de imagem.
No esquecer que as interfacesweb no so exclusivas da Internet; elas esto
presentes em qualquer pgina (estejam elas no disco rgido local, numa Intranet ou num
CD-ROM).

INTERFACE TCTIL

5.1.5

Como o nome sugere, uma interface tctil aquela que dispe de um ecr
sensvel presso capaz de receber informaes dos utilizadores atravs do
toque. Esta tecnologia surgiu como uma tentativa (bem conseguida) de
desenvolver e expandir sistemas de informao que prescindissem do uso de um
teclado e/ou rato. Os monitores passaram a poder trocar informaes numa
perspectiva bidireccional. Actualmente, este tipo de interfaces teve (e continua a
ter) grande xito como suporte para o desenvolvimento de aplicaes adaptadas
.
48
a postos de informao, caixas registadoras e ATMs
O maior problema com que os touch-screens se depararam foi a
necessidade de se ter de recorrer a cones e a outros elementos grficos de
maiores dimenses comparativamente aos que se encontravam na maioria das
interfaces grficas, pelo que os monitores de tamanho convencional
apresentavam um conjunto muito restrito de opes por ecr (particularidade
que fez com que o uso dos touch-screens em aplicaes de maior porte se tomasse
inadequado). Este obstculo foi superado com o surgimento de canetas prprias
para o efeito de interaco, actualmente bastante usadas em dispositivos
49 e telemveis.
portteis, tais como PDAs

FCA

48

Do ingls Automated TelIer Machine; em Portugal so denominados caixas Multibanco.

49

Do ingls Personal Digital Assistants; um computador de dimenses reduzidas.

Editora de Informtica

USABILIDADE

5.1.6

195

INTERFACE SONORA

De todas as modalidades inerentes utilizao de sons como meio de


IHC, a do reconhecimento de fala a que, de facto, tem sido a mais explorada e a
que obteve um maior nvel de popularidade, especia]mente junto dos
profissionais interessados em desenvolver software especificamente desenhado
para deficientes visuais e motores. Apesar de esta ser uma tecnologia
relativamente recente (meados dos anos 90) e de j se encontrar bastante
expandida (um bom programa de reconhecimento de voz pode apresentar uma
eficcia de assertividade que ronda os 98% das palavras pronunciadas), necessita
de inmeros melhoramentos, pois, infelizmente, continua a no satisfazer, em
pleno, as necessidades da maioria dos utilizadores. Alguns dos problemas
tcnicos prendem-se com o facto de a pronncia, entoao e timbre de voz
variarem bastante de interlocutor para interlocutor, o que pode dificultar a forma
como as palavras so interpretadas. Outro obstculo surge quando se pretende
usar o reconhecimento de fala como veculo para a edio automtica de texto
electrnico. Como sabemos, a escrita tem regras prprias e composta por sinais
de pontuao que no esto to presentes na fala. Resta-nos aguardar... Mas,
queremos acreditar, no tardar o dia em que algum nos surpreender nos
nossos momentos de comunicao menos convencionais e poder afirmar:
No... Eles no enlouqueceram, eles, na verdade, falam com os computadores!
E o mais engraado de tudo isto que os computadores entendem o que eles lhes
dizem, e, surpreendentemente, ainda respondem!.
Talvez, num futuro bastante prximo, possamos, tambm, transmitir as
nossas emoes, os nossos estados de esprito, os nossos medos e (porque no?)
os nossos sonhos. A nossa imaginao o limite!

5.2

AS 10 HEURSTICAS DE NIELSEN

A norma 1S0
9241 veio estabelecer o conceito de usabilidade como um
5
conjunto de aspectos a ter em conta para que um produto se adapte a
utilizadores especficos, de modo a que estes possam desempenhar tarefas
especficas com efectividade, eficincia e satisfao. A efectividade foca-se nos

50

Do ingls International Standardization Organization; uma entidade que estabelece padres


internacionais em variadssimas reas (por exemplo: gesto da qualidade, medidas e tamanhos, cdigos para
representao de pases, etc.).

FCA

Editora de Informtica

VISUAL BAsIc 2010

196

CURSO CoMPLETo

objectivos primrios do processo de interaco e repercute-se na maior ou menor


facilidade com que os utilizadores executam uma determinada operao, bem
como na qualidade dos resultados obtidos. A eficincia avaliada pelos erros e
desvios que o utilizador comete durante a execuo das diferentes tarefas que o
software proporciona. A satisfao o espelho do conforto e do agrado dos
utilizadores junto das aplicaes. No desenvolvimento de software, dar resposta a
estas trs medidas no uma tarefa simples, j que os programadores deparamse com inmeros aspectos que partida parecem ser secundrios, mas que fazem
toda a diferena no momento de avaliao global da aplicao em termos de
usabilidade. Aqui, o pormenor mais importante do que imaginamos ser.
51 considerado o rei da usabiidade. Este estatuto deveJakob Nielsen
-se em grande parte ao pioneirismo e sensibilidade visionria que o
caracterizam, bem como aos diversos estudos que tem vindo a realizar nesta rea.
Em 1994, brinda-nos com o seu best-seller Usability Engineering, editado pela
Morgan Kaufmann, que constitui uma obra de referncia a este nvel. Quase
todas as metodologias que permitem melhorar a qualidade das interfaces grficas
52 que Nielsen descreve no seu livro, e sero estes os
derivam das 10 heursticas
aspectos que iremos descrever e analisar ao longo deste ponto.

FEEDBACK

5.2.1

A aplicao deve sempre manter os utilizadores informados acerca do


que est a acontecer. Do ponto de vista da usabilidade, uma aplicao pode dar
dois tipos de feedback, dependendo do tipo de tarefa que o aplicativo est a
desempenhar. Os feedbacks de tarefas interruptivas so fornecidos em operaes
que no permitem o acesso a outras funcionalidades enquanto a actual no for
terminada (exemplo: gravao de um ficheiro); estamos perante um feedback de
uma operao no interruptiva em situaes nas quais os utilizadores podem
executar outras tarefas enquanto a actual estiver a decorrer (por exemplo,
download de um ficheiro da Internet). Em termos de apresentao de informaes,
podemos recorrer a diversos controlos, tais como barras de estado, de notificao
e de progresso.

52 Nascido em 1957, em Copenhaga, Dinamarca; autor, investigador e consultor na rea de interfaces


de utilizao de componentes de software.
52 Solues aproximadas para a resoluo de problemas; o mtodo heurstico no segue um caminho
linear, j que se baseia na intuio, no empirismo e na experimentao.

FCA

Editora de Informtica

UsABILIDADE

197

A descrio dos controlos em termos de usabilidade ser feita no tpico 5.3.

5.2.2

LINGUfSTICA

Uma aplicao deve falar a mesma lngua dos utilizadores, ser o mais
clara e objectiva possvel e privar-se do emprego de termos tcnicos demasiado
complexos e difceis de compreender. Obviamente, as frases (ou anotaes)
devero privilegiar a boa construo sintctica, ortogrfica e gramatical

5.2.3

INTERRUPO

Os utilizadores devero poder interromper facilmente uma tarefa (e


tambm arrepender-se de t-lo feito). Regra geral, os aplicativos incluem os
conhecidos undos (para anular aces) e redos (para refazer aces). No esquecer
estas funcionalidades vitais para a correco de erros!
5.2.4

CONSISTNCIA

Um mesmo comando deve produzir sempre o mesmo efeito e uma


funcionalidade deve ser apresentada da mesma forma; isto ir permitir uma
aprendizagem intuitiva e rpida.

5.2.5

PREVENO

Erros (vulgos bugs) so sinnimos de perda de tempo e de descrdito no


software. Substituir, sempre que possvel, as mensagens de erro provenientes do
compilador em uso por mensagens objectivas, personalizadas, elucidativas da
situao de erro e que apresentem uma resoluo simplificada do problema.
5.2.6

MEMORIZAO

Em mdia, o ser humano capaz de fixar sete blocos de informao de


uma s vez. Face a esta dificuldade, devemos minimizar a sobrecarga de

Estudo cientfico da linguagem verbal humana.


53

FCA

Editora de Informtica

VISUAL BASIc 2010

198

CURSO CoMPLETo

memria do utilizador e no incentiv-lo a decorar comandos para a execuo de


tarefas.
SHORTCUTS

5.2.7

Um aplicativo prima pela apresentao de uma interface simples, mas


que tambm permita o acesso rpido a comandos via atalhos de teclado e de rato
para a execuo de tarefas. Nunca colocar de parte a possibilidade de se
inclurem comandos executveis por intermdio do reconhecimento de voz, O
software deve ser o mais verstil e adaptvel possvel independentemente dos
nveis de experincia dos demais utilizadores.
CLAREZA

5.2.8

As aplicaes devem informar e perguntar com clareza. Os dilogos


entre os utilizadores e as aplicaes devem ser simples e de leitura/resposta
compreensiva e rpida.

DESCOMPLICAR

5.2.9

As mensagens de erro devero ser apresentadas de forma clara e


descomplicada. Para alm disso, devem ajudar resoluo do problema e no
devem incutir um sentimento de culpa nos utilizadores.

5.2.10 DOCUMENTAO
O softzvare deve ser integralmente documentado de uma forma
abrangente e numa linguagem clara e acessvel, sustentando a sua boa imagem e
a sua credibilidade.

DESIGN DE APLICAES WINDOWS

5.3

Neste tpico iremos descrever os diversos elementos que compem as


interfaces grficas, com especial destaque para os que esto presentes no sistema
operativo Windows.

FCA

Editora de Informtica

UsABIUDADE

5.3.1

199

MODOS DE ECR

Em termos de ocupao da rea de ecr, os aplicativos podem ser


apresentados em dois modos distintos: em ecr completo (ftill-screen) ou em
modo de janela (presente na maior parte das aplicaes Windows). Pelas suas
caractersticas prprias, o modo de ecr completo especialmente indicado para
screen-savers, para aplicaes multimdia (videojogos e visualizao de filmes,
videoclips e imagens) e para a leitura de documentos em formato electrnico.
No desenvolvimento de aplicaes prprias para operar em modo fui!
-screen, proporcionar, sempre que possvel, o acesso ao modo de janela (desde
que no haja prejuzo em termos de desempenho do software). Como sabemos, a
barra de programas, a barra de notificao, o menu principal e a rea de
ambiente de trabalho so o crebro de toda a interface grfica e o ponto de
partida para o uso de outros softwares em ambiente Windows. Assim, os
utilizadores devem poder optar pelo foco num nico aplicativo ou pela
possibilidade de diminurem a rea til do mesmo em funo da rea do sistema
operativo que pretendem visualizar em permanncia. O Windows Media Player
um bom exemplo de suporte alternncia entre modos de ecr, sem prejuzo da
qualidade visual, sonora e funcional.
sabido que o atalho de teclado <Alt + Tab> permite alternar entre aplicaes
que esto a ser executadas, mas muitas vezes isso no o suficiente para o utilizador
poder obter informaes em tempo real acerca de outro soffwart que est a ser executado
em backiviiiid (esta frature permite apenas uma visualizao temporria dos outros
elementos). E\emplos de falhas no fcdback por se operar em modo completo so a
recepo de uma mensagem de c-n,ail, a perda de ligao lnternet, o processo de
actualizao do computador e a deteco de vrus.
-

Naturalmente, h aplicaes que so especificamente desenhadas para


operar em modo de ecr completo, no resultando qualquer vantagem em
proporcionar o modo de janela. o caso das aplicaes multimdia, de design e
de engenharia que requerem uma resoluo de ecr especifica e estvel, das
interfaces tcteis que requerem uma maximizao de rea til e do software
implementado em postos pblicos que, por secretismo, por segurana ou por
mero envolvimento da interface utilizador/aplicativo, conferem o benefcio de se
esconder o sistema que d suporte aplicao que est a operar emfuiI-mode.

FCA

,_;i-

Editora de Informtica

Li

200

VIsuAL BAsIc

2010

CURSO CoMPLETo

TIPOS DE JANELAS

5.3.2

As aplicaes Windows que operam em modo de janela dividem-se em


dois grandes grupos: SDI (Single Document Interface) e MDI (Multiple Document
Interface). Tal como o nome sugere, as aplicaes SDI apenas podem mostrar um
documento de cada vez; exemplos de aplicaes SDI so o Microsoft Notepad e o
Microsoft Paint (de facto, para trabalhar em simultneo com dois documentos de
texto, devemos ter instanciado duas vezes o Notepad, isto , temos duas janelas
activas, uma para cada documento). Em oposio, as aplicaes MDI esto
habilitadas a mostrar mltiplos documentos em simultneo; por exemplo, no
Microsoft Intemet Explorer, podemos aceder a mltiplas pginas da Internet
nunia nica janela, dispondo-as em separadores prprios para o efeito.
De salientar que, no modo MDI, a janela da aplicao responsvel por todas as
outras que lhe esto embutidas; por exemplo, se fecharmos o Microsoft Internet Explorer,
o suftwar( obriga ao fecho de todos os documentos que estiverem activos.

A maioria das aplicaes Windows so do tipo MDI, j que permitem


operar sobre um conjunto de janelas (ou separadores) no interior de uma janela
principal, o que, em grande parte dos casos, o desejvel. Todavia, para
aplicaes de menor complexidade e/ou que no exijam este tipo de assimilao,
recomendamos a recorrncia ao modo SDI, pela sua simplicidade.

CAIXAS DE CONTROLO

5.3.3

A caixa de controlo da janela principal de uma aplicao do Windows


composta por trs botes: minimizar, maximizar e fechar. Embora seja possvel
bloque-los (e at mesmo faz-los desaparecer), no recomendado para a
maioria das aplicaes Windows, pois fazem parte da filosofia de utilizao do
sistema operativo Windows com os quais os utilizadores j se encontram
familiarizados. Generalidades parte, h situaes em que a desactivao
completa ou parcial da caixa de controlo pode funcionar muito bem, dependendo
do tipo de informao a ser apresentado e do conjunto de funcionalidades
disponveis.

REDIMENSIONAMENTO E MOBIliDADE

5.3.4

A possibilidade de se redimensionar e de se mover uma janela uma


caracterstica tpica encontrada no ambiente Windows, pelo que faz todo o
FCA

Edttora de Informtica

UsABILIDADE

201

sentido que se mantenham essas caractersticas. O utilizador deve sentir-se livre e


ocupar o espao com aquele aplicativo que achar necessrio em determinado
ponto de utilizao do software. Nalgumas situaes muito peculiares, o bloqueio
destas funcionalidades pode apresentar vantagens em termos de usabilidade,
especialmente quando a prpria caixa de controlo completa ou parcialmente
desactivad a.

5.3.5

BARRAS DE ESTADO

As barras de estado so especialmente indicadas para dar feedback que


no requer grande ateno por parte dos utilizadores (da estarem normalmente
posicionadas na zona inferior dos aplicativos) e informaes extra (por exemplo,
se o modo <Caps Lock> est ligado, o idioma em uso, o nmero de registos
existente numa base de dados, a data e hora, etc.). Podemos, ainda, encontrar
comandos relacionados com a visualizao e configurao do aplicativo.

5.3.6

ZOOM

Sempre que se justificar, devemos possibilitar o aumento (zoom in) e a


diminuio (zoom out) de uma rea de visualizao escolhida pelo utilizador. Esta
funcionalidade ideal em aplicaes de design e cartografia, para a visualizao
de documentos em mltiplas pginas, para previews de impresso em papel e
acesso a itens dispostos em thumbnails. Para pessoas com problemas de viso,
temos o Magnifier, uma ferramenta disponvel no sistema operativo Windows e
perfeitamente configurvel.

5.3.7

BARRAS DE DESLOCAMENTO

possvel recorrer-se a barras de deslocamento de modo a permitir a


visualizao completa de contedos com dimenses superiores s dos elementos
grficos que os envolvem. H dois tipos de barras de deslocamento: horizontais e
verticais. O ideal condensar (com peso e medida) a informao para que no
seja necessrio o utilizador recorrer a este tipo de objectos (logicamente, desde
que a legibilidade do contedo e o bom aspecto da aplicao sejam preservados).
Quando se prev um volume de informao capaz de ir para alm da rea
do controlo ou janela, devemos, obviamente, proporcionar o acesso a barras de
deslocamento. Em todo o caso, e por questes de esttica e usabilidade, evitar a
FCA

editora de Informtica

VISUAL BAsIc 2010

202

CURSO COMPLETO

utilizao de barras de deslocamento horizontais, tentando, sempre que possvel,


dispor a informao na vertical.
A rea ocupada pelos diferentes contedos est dependente da resoluo de ecr
em uso, pelo que dever testar o seu softwnre com diferentes definies.

BARRAS DE NOTIFICAO

5.3.8

A utilizao da barra de notificao do Windows como um veculo para


esconder temporariamente as aplicaes tem vindo a crescer de popularidade.
Comeou por ser quase exclusiva a componentes de software especficos para a
manuteno e gesto do sistema operativo (updates, instalao de drivers, firewall,
etc.). Actualmente, constitui um recurso bastante comum para esconder
temporariamente todo o tipo de aplicaes, tais como o Windows Live
Messenger, o eMule e alguns reprodutores de MP3.
A um cone de notificao est normalmente associado um tooltip e um
menu de contexto que permite a execuo de um determinado conjunto de
operaes, sendo as mais bvias as que permitem a reabertura e o fecho por
completo da janela que o cone de notificao representa. Assim, a possibilidade
de o utilizador poder optar por colocar os aplicativos em standby em vez de os
minimizar uma mais-valia (desde que essa operao no ponha em causa o
bom funcionamento do software).

MENUS E BARRAS DE FERRAMENTAS

5.3.9

Os menus so os elementos de interface grfica mais antigos e geralmente


abrangem o acesso a todas as funcionalidades que os aplicativos proporcionam.
Em aplicaes mais complexas, surgiu a ideia de se inclurem barras de
ferramentas com botes embutidos para execuo rpida de tarefas. Este novo
elemento veio evitar que os utilizadores perdessem demasiado tempo procura
dos comandos de utilizao mais regular no sistema de menus.
As barras de ferramentas so muitas vezes configurveis, o que permite a
personalizao selectiva em funo das necessidades de cada utilizador. Assim,
devemos cobrir todas as opes no sistema de menus, mas apenas as mais
importantes devem estar presentes nas barras de ferramentas.

FCA

Editora de Informtica

UsABILIDADE

203

Com o lanamento do Microsoft Office 2007, surge um novo conceito de


interface utilizador-aplicativo
o Ribbon, que consiste numa rea de forma
rectangular com controlos agrupados em separadores consoante as suas
funcionalidades; esta foi a primeira tentativa (bem conseguida) de fundir as
funcionalidades dos menus e das barras de ferramentas num nico elemento
grfico.

5.3.10 BARRAS DE PROGRESSO


As barras de progresso so usadas para dar feedback aos utilizadores
acerca do andamento de uma tarefa em curso, pelo que se revelam bastante teis
em tarefas de longa durao, como o download de um ficheiro da Iritemet ou a
instalao/desinstalao de um programa.
5.3.11 A PSICOLOGIA DAS CORES
Seria ingnuo no reconhecer o papel que as cores desempenham na
nossa vida, desde a escolha da roupa que vamos usar at compra de um
automvel, passando pela influncia que elas podem provocar no nosso estado
de esprito. Extrapolando para as actividades de software, a importncia das cores
igualmente notvel. Neste ponto, iremos fazer um resumo dos aspectos a ter em
considerao na escolha das cores de modo a construir aplicaes discretas,
confortveis e atractivas.
5.3.11.1 BRANCO
O branco est associado pureza, luz e inocncia. Como uma cor
neutra, toma-se ideal para ser a cor de fundo e predominante das aplicaes, pois
pode ser facilmente conjugada com todas as outras cores (desde que estas no
apresentem uma tonalidade demasiado clara).
5.3.11.2 PRETO
O preto tambm uma cor neutra, o que a toma facilmente conjugvel
com outras cores. Este facto fez do preto a cor predominante em aplicaes
-consola (como a linha de comandos presente no Windows). A tendncia das
interfaces modernas apresentarem tons claros e suaves e no to agressivos
como o preto (no toa que o preto simboliza a autoridade e o poder). Assim, o
FCA

Editora de Informtica

I VISUAL BAsrc 2010

CURSO CoMPLETo

preto toma-se uma excelente opo para cor de primeiro piano, sendo ideal para
a apresentao de texto.
5.3.11.3 CINZENTO
O cinzento transmite sentimentos dbios (tanto pode transmitir medo
como estabilidade). ideal para indicar a desactivao de uma opo e para a
apresentao de texto que se queira discreto, como uma assinatura.
5.3.11.4 AZUL

a cor do cu e do mar, que nos faz sonhar e que nos inspira. Como a
cor por excelncia do sistema operativo Windows, uma boa soluo desenhar
aplicaes com predominncia em azul num tom mais suave, como o que
encontramos nas aplicaes do Microsoft Office e do Visual Studio.
5.3.11.5 VERMELHO

a cor que provoca emoes mais intensas, pois a cor do sangue e


simboliza o amor. ideal para chamar a ateno sobre determinado assunto,
como a ocorrncia de um erro.
5.3.11.6 VERDE
O verde simboliza a natureza e considerada a cor mais relaxante rio
contexto da cromoterapia. bastante utilizada a ttulo informativo, como
indicao de sucesso de uma determinada operao. a cor preferida em barras
de progresso.
5.3.11.7 OUTRAS CORES

Convencionalmente, a utilizao excessiva de diferentes cores no se


revela benfica para a imagem do software de uso geral; uma mistura mal
conseguida torna as aplicaes cansativas, heterogneas, desagradveis, para
alm de lhes dar um ar antiquado. Obviamente, h casos em que a utilizao de
diversas cores traz vantagens, especialmente quando se pretende fazer
corresponder diferentes grupos de informao a cores distintas, tais como na

FCA

Editora de !nformtca

UsABILIDADE

205

apresentao de grficos e cronogramas. Evitar, em todos os casos, o uso de tons


muito fortes e agressivos.
5.3.12 APRESENTAO DE TEXTO
Para alm de ser obrigatrio cumprir com o que Nielsen enuncia na sua
segunda heurstica, devemos optar por um tipo e um tamanho de letra standard e
evitar a diversidade a este nvel. Tenha sempre presente a homogeneidade e a
coerncia.

5.3.13 SELECO DE OPES


O Windows implementa diversos controlos para a apresentao de um
conjunto de opes aos utilizadores.
5.3.13.1 SELECES SIMPLES

Quando pretendemos que seja seleccionada uma nica opo, recorremos


a botes de opo (figura 5.1).
View source in
, Source editor

HIML editor
FIGURA 5.1

Seleces simples

botes de opo

Se estivermos perante um nmero de opes superior a i, sensato


economizarmos espao e optarmos por uma caixa de combinao (figura 5.2),
que extensvel.
Ue ne shortcut

ri:

Global
Database Designer
DataSet Editor
Managed Resources Editor
Query Designer
Settings Designer
Table Designer
Text Editor
View Designer
Visual5tudio
WebBrowser
FIGURA

5.2

Seleces simples

caixas de combinao
FCA

Editora de Informtica

______
_____

S6

VISUAL BAsIc 2010

CURSO CoMPLETo

5.3.13.2 SELECES COMPOSTAS

Em seleces compostas (figura 5.3), recorremos a caixas de verificao.


Este mtodo aconselhvel at um mximo de 10 alternativas.
Show status bar
j Close button afects active tool window only
Auto Hide button aftects active tool window only
R1Automatical edjust visual experience based on chent petforrnance
able rich client visuI e:perience
FIGUIA

5.3

Seleces compostas

caixas de verificao

Em alternativa, use uma caixa de listagem para um nmero de opes


superior e para qualquer tipo de seleco (figura 5.4).
Token list:
HACK

:[
UNDONE
UnresolvedMergeConlict

FIGuRA

5.4 Seleces compostas caixas de listagem

5.3.14 CAIXAS DE DILOGO


Uma caixa de dilogo difere de uma janela, pois possui apenas um boto
para a fechar. Como estudmos no captulo anterior, as funes MsgBox e
InputBox implementam os processos standard para a apresentao e recolha de
texto, respectivamente. Como estas caixas de dilogo esto limitadas ao idioma e
ao cone que pode ser apresentado pelo sistema operativo, muitas vezes, os
programadores implementam as suas prprias caixas de dilogo. Veremos como
tom-lo possvel no prximo captulo.

RESUMO
A IHC uma rea do conhecimento que visa compreender a anlise das relaes
entre dois intervenientes: o ser humano (como utilizador) e o computador (como
um conjunto de componentes de software e de hardware).
FCA

Editora de InformtIca

UsABILiDADE

207

A norma ISO 9241 veio estabelecer o conceito de usabilidade como um conjunto


de aspectos a ter em conta para que um produto se adapte a utilizadores
especficos, de modo a que estes possam desempenhar tarefas especficas com
efectividade, eficincia e satisfao.
O mtodo heurstico de Nielsen baseia-se na intuio, no empirismo e na
experimentao para resolver problemas inerentes ao desenvolvimento de
componentes de software.
As aplicaes Windows que operam em modo de janela dividem-se em dois
grandes grupos: SDI (Single Document Interface) e MDI (Multiple Document
Interface). As aplicaes SDI apenas permitem operar um documento de cada vez
e as aplicaes MDI permitem operar sobre mltiplos documentos.
O Windows implementa diversos controlos para a apresentao de um conjunto
de opes aos utilizadores. Em seleces simples, recorre-se normalmente a
botes de opo e a caixas de combinao; em seleces mltiplas, frequente o
uso de caixas de verificao e de caixas de listagem.

FCA

Editora de Informtica

WINDows F0RMs

A interface do utilizador constitui a parte mais importante no desenvolvimento


de aplicaes Windows, por corresponder nica parcela visvel de um
programa e por ser responsvel por toda a interactividade do mesmo. Este
captulo centra-se no desenvolvimento de formulrios e controlos standard para o
estabelecimento do dilogo entre o utilizador e as demais funcionalidades de
uma aplicao.

6.1

TIPOS DE CONTROLOS

O primeiro passo para criar uma aplicao em Visual Basic o


desenvolvimento da interface dessa aplicao, em que os formulrios e os
controlos so as peas fundamentais para tornar um projecto utilizvel, dinmico
e funcional aos olhos do utilizador. Os formulrios consistem em janelas ou
caixas de dilogo tpicas do sistema operativo Windows que contm controlos
(objectos que podem ser de tipos diferentes, mediante o grafismo imposto pelo
projecto em desenvolvimento). Exemplos de controlos so CAIXAS DE
COMBINAO (como as que utilizamos para alterar tamanhos e tipos de letra),
CAIXAS DE TEXTO (ideais para a pesquisa e introduo de texto em linha) e
BOTES DE COMANDO (muito utilizados para obter confirmao por parte de um
utilizador acerca de determinada operao).
Como vimos anteriormente, a Toolbox apresenta o conjunto de controlos
possveis de embeber num formulrio, separados por categoria. Os tpicos que se
seguem identificam cada tipo de objecto includo no grupo de controlos mais
importante no desenvolvimento de aplicaes Windows a categoria Common
Controis (figura 6.1).

Os objectos de outras categorias, tais como menus, caixas de dilogo e controlos


especificamente desenhados para o acesso e manipulao de bases de dados sero
estudados nos Captulos 7, 8 e 9.

FCA

Editora de Informtica

______

210

VISUAL BAsIc

2010

CURSO COMPLETO
Boto de comando

Button
Caixa de verificao 4

CheckBox
Caixa de listagem com
caixas de venficaao

CheckedListBox

D
Caixa de combinao

Cobox
DteTimePiclr * Selector de data e hora

Rtulo 4

A
A

Label
Hiperligao

LinkLabel

Caixa de listagem simples 4 j

UstBox
Caixa de listagem
multifuncional

ListView

Caixa de texto com


4validao

MaskedTextBox
MonthCalendar

fcone de notificao 4

Controlo-calendrio

NotiFylcon

NumericUpDown * Selector numrico

Imagem 4

PktureBox
ProgressBar

Boto de opo 4 ()

RadicButton

j
--

RchTextBox

Caixa de texto simples 4 abi

Caixa de texto com


formatao avanada

TextBox

ToolTip
Lista em rvore 4

Barra de progresso

Dica

TreeView
WebBrowser

FIGURA 6.1

Navegador de pginas web

Principais controlos do Windows

BU7TON (BOTO DE COMANDO)

6.1.1

Os botes de comando desempenham um papel principal em qualquer


aplicao e visam executar determinadas tarefas especficas. Como pode
constatar pela figura 6.2, simulou-se uma caixa de dilogo padro do sistema
operativo, desenhando-se trs botes que executam aces diferentes.
Formi

7
Preleride sair da aplicao

Sim

FIGURA 6.2

FCA

Editora de Informtica

No

Canc&ai

Apresentao de botes de comando

WrNDows F0RMs

6.1.2

211

CI-ECKBCX (CAIXA DE VERIFICAO)

Este tipo de controlos usado quando o utifizador tem apenas duas


respostas possveis (positiva ou negativa) a uma pergunta relacionada com o
valor de um campo ou com uma tarefa a desempenhar pelo aplicativo. Estes
valores alternam automaticamente atravs de um dique no boto esquerdo do
rato sobre a caixa. No formulrio exposto na figura 6.3, obtm-se registos dos
clientes de uma agncia de viagens e o utilizador assinala, ou no, a caixa de
verificao, conforme o cliente tenha, ou no, direito a um desconto.
Form 1
[here

IJ

Jos Roberto Miguel

L__
FIGURA

6.3 Apresentao de caixas de verificao

6.1.3

CHECKEDLISTBOX (CAIXA DE LISTAGEM COM CAIXAS DE VERIFICAO)


Possui todas as funcionalidades da ListBox (ver tpico 6.1.8) mas inclui
uma caixa de verificao por cada item de lista. Este controlo ideal para
operaes selectivas num conjunto de dados disponveis na lista (ver figura 6.4).
Foimi

AsirIe os Fichiros que eleride eliminar:


[j\temp\imagem55656.jpg
c:\soltware\deskexe
e: \downloads4

FIGURA

6.1.4

6.4 Apresentao de caixas de listagem com caixas de verificao

COMBOBOX (CAIXA DE COMBINAO)

Trata-se de um controlo utilizado para listar um conjunto de opes, do


qual o utilizador deve escolher o que pretende. Esta caixa extensvel e no
admite escolhas mltiplas. Podemos limitar o utilizador lista ou permitir que
este introduza um valor diferente de todos os que lhe so apresentados. Com este
FCA

Editora de Informtica

i12

VISUAL BASIC 2010

CURSO CoMPLETo

tipo de controlos, possvel, ainda, adicionar automaticamente novas opes de


lista, por digitao de valores inexistentes. No exemplo mostrado na figura 6.5,
apresentado ao utilizador um conjunto de itens de lista, ajudando-o a preencher
o campo Habilitaes Literrias.
Formi
Habdtaes ierrIas.
ferior ao l2. ano
rFrquncia universitria
Curso mdio
Curso superior

FIGURA

6.5

Apresentao de caixas de combinao

DATETIMEPICKER (SELECTOR DE DATA E HORA)


Permite escolher uma data (ou uma hora, caso seja especificado nas
propriedades do controlo) de uma forma cmoda e rpida (figura 6.6).
6.1.5

Formi
tera-feira

2 de

Maio

de 2010

Maro de 2010

24 2
1Lj3 4 5 6 7
8 8 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
4
2
28 30 31
fl Hoje: 02-03-201 O
FIGURA

6.6

Apresentao de selectores de data e hora

LABEL (RTULO)

6.1.6

Apresenta texto informativo ao utilizador (trata-se de um controlo de


sada de informao). vulgarmente conhecido por caixa de texto esttico
porque, em tempo de execuo, o seu contedo no pode ser alterado pelo
utilizador, contudo, possvel redefinir essa propriedade atravs da
FCA

Editora de Informtica

____

WINDOWSFORMS

213

programao. O formulrio representado na figura 6.7 apresenta trs rtulos com


textos e tipos de letra diferentes.
Formi
1

-_
__
__

Microaot

ris Seril; 8..25pt

Anal: 9.75i1: slyle=Bold


7ho,na;

FIGURA 6.7

6.1.7

12,75pt; style z=Ita/k

Apresentao de rtulos

LINKLABEL (HIPERLIGAO)

Este tipo de controlos ideal para incutir um estilo web s operaes que
os utilizadores podem levar a cabo na aplicao. Para alm disso, possvel criar
links para outros formulrios, programas e pginas da lntemet (figura 6.8).
Form 1

Ace

Ltrik tei:

Iricia o bloco de nola

hlt i/yvw Ice p1

SaiT da apliceo

hlto.//vwvmicrootIcorn

FIGURA

6.8

Apresentao de hiperligaes

6.1.8

LISTBQX (CAIXA DE LISTAGEM SIMPLES)


Tal como as caixas de combinao, as caixas de listagem apresentam um
conjunto de opes, contendo, porm, uma maior informao em simultneo.
Caso o contedo ocupe um espao maior que o imposto pelas dimenses da
prpria caixa, surgem automaticamente barras de deslocamento horizontais
e/ou
verticais, mediante o necessrio para permitir que o utilizador visualize toda a
informao. possvel agrupar o contedo de uma ListBox em colunas.
As principais diferenas entre uma ComboBox e uma Lis tBox so:
e

A ComboBox ocupa menos espao no ecr;


FCA

Editora de Informtica

214

VISUAL BASIc

2010

CURSO CoMPLETo

A ComboBox extensvel, ao contrrio da ListBox;


A ListBox permite seleco mltipla.
A figura 6.9 apresenta ao utilizador trs itens de lista, resultado de uma
pesquisa a um directrio do sistema de ficheiros do computador local.
Formi
Foram eric:orihado trs tic-heiro
c:\temp\Iogininiotxt
c:\temp\webserverconig.txt
c:\temp\readmefirst.txt

FIGURA

6.9

Apresentao de caixas de listagem

US7VIEW (CAIXA DE LISTAGEM MULTIFUNCIONAL)


Tal como a ListBox, a ListView apresenta uma lista de itens ao utilizador.
grelha,
Inclui uma grande variedade de estilos, sendo possvel mostrar linhas de
ica,
associar imagens a cada item e ordenar o contedo por uma coluna especf
com
entre outras funcionalidades. A figura 6.10 apresenta um controlo Lis tView
linhas de grelha e composta por quatro colunas e trs itens de lista.

6.1.9

Nome
Ana
Rui
Joana

FIGURA 6.10

Formi
Apelido
Sousa
Lopes
Silva

Proiisso
Florista
Militar
Mdica

idade
34
24
43

Apresentao de caixas de listagern multifuncionais

6.1.10 MASKEDTEXTBQX (CAIXA DE TEXTO COM VALIDAO)


ao
Este tipo de caixas pode ser configurado de forma a validar a inform
os,
Podem
introduzida, antes do programa poder levar a cabo determinada tarefa.
tipo dE
ainda, definir uma mscara de introduo (expresso que limita o
es
carcter que pode ser introduzido, posio a posio). Isto simplifica opera
FCA

Editora de Informtica

WINDOWS F0RMs

215

que exigem a introduo de caracteres especficos (em nmero e em tipo), sendo


ideais quando se trabalha com dados relativos a nmeros de identificao fiscal,
de beneficirio, de passaporte e de cartes de crdito. No formulrio apresentado
na figura 6.11, foi utilizada uma caixa e definida uma expresso que permite
obter correctamente matrculas de viaturas de automveis (introduo de duas
letras ou dois dgitos nas duas primeiras posies, hfen na terceira posio, dois
dgitos na quarta e quinta posies, hfen na sexta posio e duas letras ou dois
dgitos nas duas ltimas posies).
ii

MaiicuIa

FIGURA 6.11

c::

Foirni

54-90-0<

Apresentao de caixas de texto com validao

6.1.11 MONTHCALENDAR (CONTROLO-CALENDRIO)


Permite seleccionar uma data. No formulrio apresentado na figura 6.12,
o calendrio mensal mostrado na sua totalidade sem ter que se estender uma
caixa de combinao, como acontece no controlo DateTimePicker.

Formi

Maro de 2010

2 3 4 W7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
4
3
Hoje: 06-03-2010
-

FIGURA 6.12

Apresentao de controlos-calendrio

6.1.12 NOTIFYICON (CONE DE NOTIFICAO)


Tal como o nome indica, os controlos da categoria Notifylcon permitem
adicionar cones barra de notificao do Windows que representem as
FCA

Editora de Informtica

______

W.

VISUAL BAsIc 2010 CURSO COMPLETO

aplicaes (na figura 6.13, foi utilizado o logtipo assinalado como exemplo). Este
cone de notificao pode ser usado para maximizar a janela da aplicao
(normalmente com um duplo dique no boto do rato) ou para alterar
configuraes atravs de um menu associado, entre outras funcionalidades.

(J 4:511
FIGURA 6.13

Apresentao de cones de notificao

6.1.13 NUMERICUPDOWN (SELECTOR NUMRICO)


Este controlo ideal para o preenchimento de campos por incremento ou
decrscimo de valores numricos, como exemplificado na figura 6.14.
iLEiII

(IJ

FIGURA 6.14

Laren ias:

Me.s

Pras:

Apresentao de selectores numricos

6.1.14 PICTUREBOX (IMAGEM)


Tal como o prprio nome indica, um controlo que permite incorporar
imagens atravs de ficheiros grficos. possvel definirem-se transparncias,
magnificaes, redimensionamentos automticos, etc. O formulrio da figura 6.15
contm trs imagens.
Formi

1
i

FIGURA 6.15

FCA

Editora de Informtica

-I

Apresentao de imagens

_______-_____
_____

WINDOWS ois

217

6.1.15 PROGRESSBAR (BARRA DE PRGRESSO)

um controlo ideal para ir dando informao ao utifizador acerca da


evoluo de um determinado processo, enquanto o mesmo est a ser executado
(ver exemplo na figura 6.16).
Formi

A guardar hcheeo de base de dados.

FIGURA

6.16 Apresentao de barras de progresso

6.1.16 RADIOBU7TON (BOT DE OPO)


Este tipo de controlos especialmente utilizado quando estamos perante
um nmero reduzido de opes, dependendo do que se pretenda obter qanto
apresentao visual do formulrio. O boto est seleccionado quando o crculo
contm um ponto no seu interior. A caracterstica mais importante dos controlos
RadioButton a possibilidade de se agrupareni segundo um propsito lgico e
implicito. No exemplo da figura 6.17, os valores dos dois botes esto
dependentes um do outro (sempre qu& selecionamos o boto Feminino, o
boto Masculino perde de imediato a seleco e vice-versa; o mesmo aconteceria
se estivssemos perante mais controlos desta categoria, j que, num grupo de
botes de opo, apenas um pode estar seleccionado).
FormI

L-

Sexo
G! 1 .a5cuIirio

FIGURA 6.17

Ftrrr

ir uno

Apresentao de botes de opo

O agrupamento de botes de opo feito normalmente atravs de controlos do


tipo Gwup3ox, disponveis na categoria Containers da Toolbox. Embora nao Seja
obrigatrio embutir os botes de opo num grupo de opes, este procedimento permite
uma programao mais simples, para alm de ser uma mais-valia para a esttica e leitura
do formulrio.

FCA

Editora de

Informtica

VISUAL BAsrc

2010

CURSO COMPLETO

6.1.17 RICHTEXTBOX (CAIXA DE TEXTO COM FORMATAO AVANADA)


Possui todas as funcionalidades das caixas de texto simples (tpico
6.1.18), mas a diferena que permite apresentar texto em diversos formatos de
cor e de tipo de letra (figura 6.18).

jgjJ

lJ Controlo RidiTextOox

Este controlo permite apresentar texto


com diversos formatos.
Exemplo (hiperhgao]:
http:/)wwa.microsoficom

F1GuI 6.18

Apresentao de caixas de texto com formatao avanada

6.1.18 TEXTBQX (CAIXA DE TEXTO SIMPLES)


Controlo que obtm informaes do utilizador sob a forma de texto, onde
possvel estabelecer o nmero de caracteres (mnimo e mximo). Normalmente,
as caixas de texto apresentam rtulos sua esquerda, no sentido de elucidar o
utilizador acerca da categoria de informao a ser digitada. Na figura 6.19, so
apresentadas trs caixas de texto que obtm o nome, a idade e a profisso.

N orne

Margarida Correia

Idade

35

Protisso

FIGURA

6.19

Foi ml

Administrativa

Apresentao de caixas de texto simples

6.1.19 TOOLTIP (DICA)


Permite associar tooltips a formulrios e/ou controlos com o objectivo de
mostrar informaes adicionais aos utilizadores acerca de determinada(s)
funcionalidade(s). As dicas surgem no ecr quando o utilizador estagna o cursor
do rato sobre o formulrio ou sobre determinado controlo (figura 6.20).

FCA

Editora de Informtca

______

_________
________

WINDows F0RMs

FIGURA 6.20

219

Apresentao de dicas aos utilizadores

6.1.20 TREEVIEW (LISTA EM RVORE)


Este controlo apresenta a informao hierarquizada e agrupada num
nmero indefinido de ns e subns extensveis (figura 6.21).
J:

Porto
Vila Real
Zona Centro
Aveiro
Coimbra
Leiria
tZonaSul
-

FIGURA 6.21

Apresentao de listas em rvore

6.1.21 WEBBROWSER (NAVEGADOR DE PGINAS WEB)


Simula um navegador de Jriternet, permitindo a visualizao de pginas
web. A figura 6.22 mostra um controlo WebBrowser embutido num formulrio,
apresentando a homepage da Microsoft.
Fornil

_____
I-

L
s Office

II

Mproacts yNow Daoa.&Tras P &Cutener Solubons

Seazity &L,da Trig &Even

FIGURA 6.22

Apresentao de pginas web


FCA

Editora de Informtica

VISUAL BAsIc

__j_

2010

CURSO COMPLETO

CONVENES DE NOMENCLATURA

6.2

Todas as regras de nomenclatura enunciadas em relao s constantes,


variveis, procedimentos e funes so aplicadas, na sua ntegra, aos controlos.
Todavia, e apenas como conveno, so utilizados os nomes correspondentes s
categorias dos objectos antes do texto elucidativo dos mesmos (ver exemplos na
tabela 6.1).
OBJEcro

EXEMPLO

F0RM

FormPrincipal.

Bu7TON

ButtonSair.

CHEcKB0x

CheckBoxlmprimir.

CHECKEDL1STBOX

CheckedListBoxResultados.

C0MB0B0x

ComboBoxDistrito.

DATETIMEPIcKER

DateTimePickerData.

LA8EL

LabelContagem.

LINKLABEL

LirikLabelSite.

LisTBox

ListboxResultados.

LI5TVIEw

ListViewResultados.

MASKEDTEKTBQX

MaskedTextBoxPassaporte.

M0NTHCALENDAR

MonthCalendarData.

N0TIFYIC0N

NotifylconProjecto.

NuMERIcUPD0wN

NumericUpDownldade.

PICTuREB0x

PictureBoxFoto.

PR0GREsSBAR

ProgressBarDownload.

RADIOBUrrON

RadioButtonSexo.

RIcHTExTB0x

RichTextBoxNotas.

TEXTB0x

TextBoxNome

TOOLTIP

ToolTipDica.

TREEVIEw

TreeViewConcelhos.

WEBBR0wsER

WebBrowserSite.

TABELA 6.1

FCA

Prefixos utilizados na atribuio de nomes a controlos

Editora de Informtica

WIND0wsF0RMs

6.3

221

OBJECTO FORM

Este tpico debrua-se sobre o estudo das propriedades, dos mtodos e


dos eventos mais importantes dos formulrios.
Os exemplos apresentados referem-se alterao de propriedades e execuo de
mtodos e eventos em run-tinu. Para testar as instrues, crie um projecto segundo o
teniplate Windows Fonns Application e use o evento Load do formulrio predefinido.
Como evidente, poder, tambm, alterar as propriedades em ihsi,i,-tinie, com o auxlio
da janela de propriedades.

6.3.1

PROPRIEDADE TEXT

Retoma ou define uma cadeia de caracteres correspondente ao texto


presente na barra de ttulo do formulrio.
ExEMPLo

Me.Text

t
Ttulo

Recorde-se que, quando est a programar em mdulo de formulrio, deve


utilizar a palavra-chave Me para o referenciar.
Ao abrir o formulrio, o seu ttulo alterado segundo o texto especificado
(figura 6.23).
. Titulo

FIGURA 6.23

6.3.2

Alterao da propriedade Text (objecto Form)

PROPRIEDADE BACKGROUNDIMAGE

Permite aplicar uma imagem de fundo ao formulrio. Dever-se-


especificar o caminho completo para o ficheiro grfico desejado, que pode
permanecer independente ou embutido no projecto.

FCA

Editora de Informtica

VISUAL BAsrc 2010

CURSO CoMPLETo

ATRIBUIO DE UMA IMAGEM DE FUNDO INDEPENDENTE DO PROJECTO

6.3.2.1

Este mtodo utilizado quando se pretende aplicar uma imagem de


fundo por leitura de uma imagem a partir do sistema de ficheiros. Se o ficheiro
indicado no existir, ocorre uma excepo que dever ser verificada atravs de
um bloco Try... Catch. Aqui, o ficheiro de imagem no includo como recurso
grfico no executvel do projecto, pelo que eventuais alteraes efectuadas no
ficheiro de imagem original so repercutidas no formulrio.
ExEMPLO
Me.Backgroundlmage

Image.FromFile(C:\Pictures\Zebra. jpg)

Pode definir imagens do tipo

*j

*jp

*.g;j

*Jmf e *,pflg.

ANLIsE

A classe Image permite a execuo de diversas tarefas relacionadas com os


objectos grficos. Recorreu-se ao mtodo FromFile com o objectivo de efectuar a
leitura de um ficheiro *,jpg e aplic-lo como imagem de fundo do formulrio
(definio da propriedade BackGroundlmage; figura 6.24).
Formi

FIGURA

i{i j

6.24 Alterao da propriedade Backgroundlmage

Por predefinio, a imagem disposta em mosaico, o que significa que, caso as


suas dimenses sejam inferiores s do formulrio, ela ser repetida de forma a ocupar
toda a rea. Em oposio, a imagem recortada quando For maior que o formulrio, O
tpico 6.3.3 aborda os diferentes Irnouts possveis de combinar.

6.3.2.2 ATRIBUIO DE UMA IMAGEM DE FUNDO EMBUTIDA

Quando a propriedade Backgroundlmage definida em design-time


(directamente a partir da janela de propriedades, por seleco do ficheiro
pretendido), a imagem includa como recurso grfico no executvel do projecto.
A partir desse momento, a imagem de fundo do formulrio deixa de ter qualquer

FCA

Editora de Informtca

WINDows F0RMs

2231

relao com o ficheiro de imagem original. Assim, para embutir uma imagem

como recurso:
1)

Em modo de desenho, seleccione o formulrio;

2)

Na janela de propriedades, localize a propriedade Backgrouncllmage;

3)

Faa dique sobre o boto

4)

Surge a caixa de dilogo Select Resource;

Os recursos grficos podem ser armazenados em dois locais distintos: no ficheiro


de recursos do prprio formulrio (opo Ioca1 Resource) ou num ficheiro de recursos
uniC() de projecto (opo Project Resource File). Por questes que se prendem com
a

melhoria do desempenho da aplicao e com a organizao estrutural do projecto em si,


recomenda-se o segundo mtodo quando o objecto em questo possui um nmero
reduzido de recursos, e o primeiro mtodo quando o formulrio contm muitos recursos.

5)

Na opo Project Resouice File, faa dique em Import;

6)

Na caixa de dilogo Open, seleccione um ficheiro de imagem ao seu

gosto;
7)

Aps a escolha do recurso, o mesmo pr-visualizado na caixa de

dilogo Select Resource (figura 6.25).


Se(et Ikesoi,i.e

Resource conle t
c4 Local resource:
I[]por

Pioject resource file:

0K

FIGURA

6.25

Cancel

Importao de imagens para o ficheiro de recursos do projecto

FCA

Editora de Informtica

224

VISUAL BASIC 2010

CURSO CoMPLETo

Os ficheiros responsveis por ligar os recursos aos objectos nos quais foram
embutidos possuem a extenso *.resx. A gesto dos recursos feita no Solution Explorer.
Todos os ficheiros embutidos no ficheiro de recursos do projecto (Resources.resx)
encontram-se na pasta Resources.

6.3.2.3 REMOO DE IMAGENS DE FUNDO EM RUN-TIME


Em run-time possvel remover a imagem de fundo actual igualando a
propriedade Backgroundlmage ao valor Nothing.
EXEMPLO
Me.Backgroundlmage

REMOO

6.3.2.4

Nothing

DE IMAGENS DE FUNDO EM

Para remover a imagem de

Backgroundlmage,

fundo

DESIGN-TIME

em

design-time,

localize a propriedade

seleccione todo o texto que representa a referncia imagem e

pressione a tecla <Delete>, at conseguir ler

(fone)

no valor de propriedade.

PROPRIEDADE BACKGROUNDIMAGELAYOUT

6.3.3

Caso pretenda definir modos de apresentao de imagens de fundo


diferentes, deve definir a propriedade Backg-roundlmageLayout com um dos
valores da tabela 6.2.

CONSTANTE

IMAGEL4YOUT.NONE
IMAGELAYOUT. TILE
IMA GELA YOUT. CEN TER

IMAGELAYOUT. STRETcH

FCA

IMAGEM DE FUNDO...

No redimensionada e apresentada no canto superior esquerdo


do formulario.
No redimensionada mas repetida em mosaico de modo a
ocupar toda a area do formulario.
No redimensionada e posicionada no centro do formulrio.
automaticamente redimensionada em funo das dimenses do
formulrio (efeito esticar caso a imagem seja mais pequena e
efeito encolher caso a imagem seja maior que o formulrio). Com
este mtodo, a imagem de fundo perde definio caso seja maior
do que a rea do formulrio e ganha qualidade no caso inverso.

Editora de Informtica

WINDows F0RMs

225

C0NSANTE

IMAGELAYOUT.ZOOM

redimensionada de modo a ocupar toda a rea do formulrio. Ao


contrrio do modo Stretch, o redimensionamento feito
proporcionalmente em relao altura/comprimento da imagem
original, pelo que parte da rea til do formulrio poder no vir a
ser ocupada.

TABELA

6.3.4

6.2

IMAGEM DE FUNDO...

Diferentes layouts da imagem de fundo em formulrios

PROPRIEDADE BACKCOLOR
Retorna ou define a cor de fundo do formulrio.
ExEMPLO

Me.BackColor

Color.Green

Me.BackColor

Color.Red

Me.BackColor

Color.Blue

Me.BackColor

Color.FromArgb(O,

Me.BackColor

Color.FromArgb(255,

Me.BackColor

Color.FromArgb(O,

O,

255)

Me.BackColor

Color.FromArgb(O,

O,

O)

Me.BackColor

Color.FromArgb(255,

Vr:
Az.
255,
O,

O)
O)

255,

.z
A.

rt
255)

3nco

ANlisE
A especificao de cores conseguida atravs da classe Color que, para
alm de permitir definir uma cor atravs do seu nome, d a possibilidade de a
especificar atravs dos respectivos componentes RGB
54 como parmetros do
mtodo FromArgb.
Em d,ii-ti,,i utilize uma das paletas de cores disponveis na janela de
propriedades.

Do ingls Red, Green and Blue; sistema de cores formado por trs componentes primrios (vermelho,
verde e azul); a cor final obtida pela mistura das trs cores primrias, na qual cada uma possui uma
intensidade com valores compreendidos entre O e 255.

FCA

Editora de Informtica

226

VISUAL BAsIc

2010

CURSO COMPLETO

PROPRIEDADE OPACITY

6.3.5

Os formulrios podem apresentar um certo grau de transparncia. A


propriedade Opacity define o quanto o objecto opaco (por predefinio, os
formulrios so 100% opacos, isto , a propriedade Opacity igual a 1).
EXEMPLO

Me.Opacty

1 D se.- :s-:

Me.Opacity

0.65

DD

Me.Opacity

0.32

D:c

Me.Opacity

O c :DeEmnte

s
2%, tras

=
=

no :E)

A figura 6.26 mostra um formulrio com transparncia igual a 40%


sobreposto a um fragmento de cdigo contido no mdulo de programao.

Me. Dpai:y
Ir

FIGURA 6.26

Efeito da propriedade Opacity

A propriedade Opticitt, definida em valor relativo (percentagem).

PROPRIEDADE ICON

6.3.6

Caso pretenda usar um cone personalizado nas suas aplicaes, dever


faz-lo redefinindo a propriedade Icon.
Para embutir um icone como recurso, entre em modo de desenho e realize a
importao do ficheiro correspondente por alterao da propriedade supracitada.
EXEMPLO
Me.Icon

Icon.ExtractAssociatedlcon(flC:\Pictures\Sol.bmpTl)

O resultado da execuo deste mtodo permite a atribuio de um novo


cone ao formulrio (figura 6.27).
FCA

Editora de Informtica

WrNDows F0RMs

FIGURA 6.27

227

Definio da propriedade Icon

ANLISE

Recorreu-se ao mtodo ExtractAssociatedlcon da classe Icon para criar um


cone a partir de um ficheiro de imagem existente no disco. Tal como na
propriedade Backgroundlmage, este mtodo no embute a imagem especificada no
ficheiro de recursos do sistema.
Em

iii n-timt

possvel remover o cone igualando a propriedade Icoii ao valor

NothiHg.

6.3.7

PROPRIEDADE CURSOR

Retoma ou define uma imagem correspondente ao cursor do rato da


aplicao. possvel utilizar cursores standard do Windows ou outros existentes
em disco.

6.3.7.1

UTIUZAO DE CURSORES PREDEFINIDOS

Para utilizar um dos cursores standard, basta definir a propriedade Cursor


com uma das constantes indicadas na tabela 6.3.
CoNsTANTE

CURSOR

CuRsoRs.APPSTAwrING

CuRsoRs.ARR0w

CuRsoRs. CoSS

CuRsoRs. DEFAuLT

FCA

Editora de Informtica

VIsuAL BA5Ic 2010

228

CURSO CoMPLETo

CoNsTANTE

CURSOR

CuRsoRs. No

CuRsoRs. SIzMLL

CuRsoRs. SIzENESW

CuRsoRs.SIzENS

El

CuRsoRs. SIzENWSE

CuRsoRs. SIzEWE

CuRsoRs.LIPARR0w

Li

CuRsoRs. WArrCuRsoR

CuRsoRs. HELP

CuRsoRs. HSPu

El

CuRsoRs. VSur

CuRsoRs. NOM0vE2D

CuRsoRs. NoMovEHoRIz

Cusos. NQM0vEVERT

CuRsoRs. PANEAsT

CuRsoRs. PANNE

CuRsoRs. PAivN0RTH

CuRsoRs.PANNW

FCA

Editora de Inormtica

rn

[j

LEI

WINDOWS F0RMs

CoNsTANTE

229

CURSOR

CuRsoRs.PANSE

CuRsoRs. PANS0un-I

CuRsoRs.PANSW

CuRsoRs. PAN WEsT

CuRsoRs.HAND
TABELA 6.3

Cursores standard

A apresentao dos cursores indicados na tabela 6.3 depende da verso do


sistema operativo onde a aplicao executada. Tambm pode variar consoante os temas
grficos que os utilizadores aplicarem.
ExEMPLO

Me.Cursor

Cursors.Help nzeVo

Me.Cursor

Cursors.Default PDrt&rc do reto redc

6.3.7.2

rato :::z:r de ajude

LEITURA DE CURSORES A PARTIR DE FICHEIROS

Para utffizar um ficheiro do tipo cursor (normalmente com extenso


ou *.ani), ser necessrio criar uma nova classe Cursor e especificar o caminho
completo at ao ficheiro pretendido.
EXEMPLO
Me.Cursor

New Cursor(C:\Windows\Cursors\pen_i .cur)

ANUsE

A palavra-chave New incorpora uma operao que permite criar uma


instncia de uma classe. O processo de criao de objectos pode, ou no, envolver
parmetros. No exemplo anterior, construiu-se um novo objecto Cursor por
especificao do caminho completo at ao ficheiro pen_i.cur. Recorreu-se a este
mtodo porque a classe Cursor, por si s, no possui nenhum mtodo capaz de
J FCA

Editora

de

Informtica

230

VIsUAL BAsIc 2010

CURSO CoMPLETo

efectuar a leitura de um ficheiro de imagem e atribui-lo directamente


propriedade Cursor do objecto Form.
Os diversos parmetros de construo de uma classe surgem imediatamente
aps o nome da classe e so includos entre parnteses curvos e separados por vrgulas.
Cada classe tem o seu prprio construtor com um nmero especfico de parmetros.

PROPRIEDADES

6.3.8

HEIGHT E WIDTH

Definem a altura (propriedade Height) e o comprimento (propriedade


Width) do formulrio em pixeis.
EXEMPLO
Me.Height
Me.Width

=
=

350 kwra
500 cerc

PROPRIEDADES

6.3.9

LEFT E TOP

Retornam ou definem a distncia em pixeis entre os extremos esquerdos e


entre os topos do formulrio e do ecr, respectivamente.
EXEMPLO
Me.Left
Me.Top

=
=

200 Dsnca
300

stnca vri:

PROPRIEDADE STARTPQSITION

6.3.10

do formulrio quando surge no ecr pela primeira


possvel usar-se um dos valores apresentados na tabela 6.4.
Indica a localizao

vez.

VALOR

MANUAL
CEN-rERScREEN
CENTERPARENT

FCA

Editora de Informtica

O FORMULRIO...

Surge na posio definida pelas propriedades Left e Top.


centrado no ecr.
centrado em relao janela onde est contido. Apenas se
aplica quando estamos perante aplicaes compostas por um
formulrio principal contendo subformulrios.

231

WrNDows F0RMs
O

VALOR

posicionado no canto superior esquerdo do ecr, com umas


pequenas margens superior e esquerda.
No utilizado. As dimenses do formulrio definidas pelas
propriedades Width e Height so ignoradas.

WINDOWSDEFAULTLQC4TION
WINDOWSDEFAULTBOUNDS
TABELA

6.4

FORMULRIO...

Valores utilizados na propriedade StartPosition

A alterao da propriedade StnrtPositiou em rim-time s faz sentido quando o


projecto contm dois ou mais formulrios interligados, pois a redefinio desta
propriedade no evento Lond para o mesmo formulrio no surte efeito.

6.3.11 PROPRIEDADE WINDOWSTATE


Retorna ou define se o formulrio se encontra no estado
maximizado

(FormWindowState.Maximized), minimizado (FormWindowsState.Minimized)


normal (FormWindowState.Normal).

ou

ExEMPLo
Me WindowState

FormWindowState Maximzed Yxza

Me.WindowState

FormWindowState.Normal saD Ofla:

Me.WindowState

FormWindowState.Minimized nrzcQ

6.3.12 PROPRIEDADE CQNTROLBQX


Retorna ou define se o formulrio possui

False),

uma barra

de

(valor

True),

ou no

(valor

ttulo.

EXEMPLO
Me.ControlBox

False r: ;.riD se rr de

Me.ControlBox

True Fomr :cr bar de f:u

Naturalmente, um formulrio cuja propriedade Ciitro1Box igual a False no


possui os botes de maximizar, minimizar e fechar.

FCA

Edftora de Informtica

VISUAL BAsrc

2010

CURSO CoMPLETo

6.3.13 PROPRIEDADES MAXIMIZEBOX E MINIMIZEBOX


Retomam ou definem se o formulrio possui (valor True), ou no (False),
os botes maximizar e minimizar activados.
EXEMPLO

Me. MaximizeBox

True E:: de mx

Me.MinimizeBox

False

zc Ectvacc

rt de rnMTzac desactvad

6.3.14 PROPRIEDADE SHOWICON


Retoma ou define se o formulrio mostra (valor True), ou no (False), o
cone definido pela propriedade Icon.
ExEMPLo

Me.Showlcon

True DcneemstadD

Me.Showlcon

False D:et

6.3.15 PROPRIEDADE SHOWINTASKBAR


Retoma ou define se a janela de formulrio est (valor True), ou no
(False), presente na barra de tarefas do sistema operativo.
EXEMPLO

est

s:o na

Me.ShowlnTaskbar

True A&e

Me.ShowlnTaskbar

False ,:jene ncest

berra de

es

Obviamente, um formulrio com a propriedade ShowlnTaskbar, definida com o


valor FalsL, aps ter sido minimizado s pode voltar a estar disponvel no ecr com o
auxlio da combinao de teclas <Alt + Tab>.

6.3.16 PROPRIEDADE FQRMBORDERSTYLE


Indica um conjunto de caractersticas relacionadas com a aparncia e com
o comportamento dos limites do formulrio e da sua barra de ttulo. Podero ser
usadas as constantes indicadas na tabela 6.5.

FCA

Edftora de InformUce

WINDOWS F0RMs
C0NSrANTE

233

O FORMULRIO...

FORMBORDERS7YLE. NONE
FORMBORDERS7YLE. FrxEDSINGLE

FORMBORDERSTYLE. FIXED3D

FORMB0RDERSTiLE. FIxEDDIALOG
F0RMB0RPERSTYLE. SIzABLE

F0RMB0RDERSflLE.FIXEDToOLWINDOw

FORMBORDERSTYLE. SIzABLETO0LWIND0w

TABELA

No possui barra de ttulo e no pode ser movido


nem redimensionado.
Possui barra de ttulo, mas no pode ser movido
nem redimensionado livremente.
Ganha um efeito tridimensional, possui barra de
ttulo, pode ser movido, mas no pode ser
redimensionado livremente.
Possui barra de ttulo, pode ser movido e no pode
ser redimensionado livremente.
Possui barra de ttulo e pode ser movido e
redimensionado sem hmitaoes.
Possui barra de ttulo apenas com o boto para
fechar (aspecto idntico ao da Toolbox), pode ser
movido e no pode ser redimensionado livremente.
Tem o mesmo aspecto de como se tivesse sido
definido como sendo do estilo FixedToolWindow,
com a diferena de, para alem de poder ser
movido, poder ser redimensionado sem limitaes.

6.5 Constantes utilizadas na propriedade FormBorderSt-yle

ExEMPLO

Me.FormBorderStyle

FormBorderStyle.FixedDialog

6.3.17 PROPRIEDADE ENABLED


Retorna ou define se o formulrio est activo (True) ou inactivo (False).
Um objecto est inactivo quando no pode reconhecer aces provenientes do
utilizador (eventos). Por exemplo, se desactivarmos um boto de comando e
fizermos dique sobre ele, por mais cdigo que tenhamos escrito no procedimento
Click nada acontece, porque o objecto deixou simplesmente de reconhecer esse
evento. Enquanto permanecer inactivo, no ocorrem chamadas a essas event
-procedures.
EXEMPLO

Me.Enabled

False sa:l: do fDmo

Me.Enabled

True

o do

FCA

Editora de Informtica

234

VISUAL BAsIc

2010

CURSO COMPLETO

Quando desactivamos um objecto contendo outros objectos, todos eles


permanecem inactivos. Por exemplo, se em qualquer ponto de execuo de um prograna
um formulrio possui o valor False em Enabled, todos os controlos nele contidos ficam
inactivos. Em formulrios e caixas de dilogo, o utilizador fica tambm impedido de
redimensionar, mover, minimizar, maximizar, restaurar e fechar os respectivos objectos.

6.3.18 PROPRIEDADE VISIBLE


Retoma ou define se o formulrio ou determinado controlo est (True), ou
no (False), visvel no ecr. Esta propriedade bastante utilizada em animaes
simples e quando o programador tem a necessidade de criar controlos
fantasmas que, por nunca aparecerem aos utilizadores, contm informaes
adicionais utilizadas unicamente com o intuito de facilitar algumas tarefas de
programao (por exemplo, uma caixa de texto esttico apresentando uma
contagem do nmero de registos contidos numa tabela).
EXEMPLO

Me.Visible

False Fcrn.:c ir\:sva

Me.Visible

True

DD .iSi&

6.3.19 MTODO CLOSE


Fecha o formulrio actual. Este mtodo est isento de argumentos.
EXEMPLO

Me. Close

() co do rmc

O fecho do ltimo formulrio carregado implica o fim de execuo do programa.

6.3.20 MTODO CENTER TOSCREEN


Permite centrar o formulrio no ecr. Este mtodo no possui qualquer
argumento.
EXEMPLO

Me.CenterToScreen() cr..irio

FCA

Editora de

Informtica

::E:

no e:r

WINDows F0RMs

23

6.3.21 EVENTOS LOAD E FORMCLOSED


Correspondem ao primeiro e ltimo eventos que ocorrem num
formulrio. O evento Load ocorre quando o formulrio carregado na memria e
o evento FormClosed quando fechado (na maior parte dos casos, quando a
execuo do projecto actual interrompida ou sempre que descarregamos o
objecto atravs do mtodo Close).
EXEMPLO

Eveflto Load
Private Sub Forml_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handies MyBase.Load
MsgBox (Formulrio carregado L)
End Sub

Eve,te ForrCose
Private Sub Formi FormClosed(ByVal sender As Object,
ByVal e As System.Windows Forms FormClosedEventArgs)
Handies Me. FormClosed
.

MsgBox(Formulrio terminado!)
End Sub

6.3.22 EVENTOS CLICK E DOUBLECLICK


So reconhecidos quando o utilizador faz dique e duplo dique com o
boto do lado esquerdo do rato sobre o formulrio.
Se tiver desenhado um boto de comando e fizer dique sobre ele, este o objecto
que reconhece o evento Click, e no o formulrio, a no ser que faa dique fora da rea
pertencente a este e a qualquer outro controlo.
EXEMPLO
Evertc CHck
Private Sub Forml Click(ByVal sender As Object,
ByVal e As System.EventArgs) Handies Me.Click
MsgBox(Fez dique sobre o formulrio

IT

& Me.Name)

End Sub

FCA

j.

Editora de Informtica

236

VISUAL BASIC

2010

CURSO CoMPLETo

Evento 2DbeC:<
Prjvate Sub FormlDoubleClick(ByVal sender As Object,
ByVal e As System.EventArgs) Handies Me.DoubleClick
MsgBox(Fez duplo dique sobre o formulrio

& Me.Name)

End Sub

Para testar o exemplo referente ao evento Dou bleClick, dever comentar a MsgBox
do evento Click. Isto porque antes de ocorrer o evento de duplo dique ocorre sempre o
evento de dique nico. Ao testar os dois eventos em simultneo, apenas a primeira
MsgBox surge no ecr.

6.323 EVENTOS MOUSEMOVE E MOUSEHOVER


Ocorrem quando o utilizador move (Move) ou pousa (Hover) o ponteiro
do rato sobre a rea do formulrio.
ExEMPLo
Evero
Private Sub Forml_MouseMove(ByVal sender As Object,
ByVal e As Sys tem. Windows Forms MouseEventArgs)
Handies Me .MouseMove
.

MsgBox(Moveu o ponteiro do rato.)


End Sub

Evr:D 1cseHDve.Private Sub Forrnl_MouseHover(ByVal sender As Object,


ByVal e As System.EventArgs) Handies Me.MouseHover
MsgBox(Pousou o ponteiro do rato.)
End Sub

Uma vez que os dois eventos apresentados nos exemplos anteriores esto
relacionados entre si, dever test-los em separado.

6.3.24 EVENTOS MOUSEENTER E MOUSELEAVE


Ocorrem aps o utilizador ter deslocado o ponteiro do rato para a rea do
formulrio (Enter) e aps o utilizador ter deslocado o cursor para fora da rea
pertencente ao formulrio (Leave).
FCA

Editora de Informtica

9j

WINDOWS F0RMs

237

ExEMPLO

Evero 1oJse
Private Sub FormlMouseEnter(ByVal sender As Object,
ByVal e As System.EventArgs) Handies Me.MouseEnter
MsgBox(O ponteiro do rato entrou no formulrio.

T)

End Sub
Evento Mose_ve
Private Sub Forinl_MouseLeave(ByVal sender As Object,
ByVal e As System.EventArgs) Handles Me.MouseLeave
MsgBox(O ponteiro do rato abandonou o formulrio.)
End Sub

Teste os dois exemplos em separado.

6.3.25 EVENTOS KEYDOWN E KEYUP


Ocorrem quando o utilizador pressiona (KeyDown) e liberta (Keyup)

qualquer uma das teclas. Estes eventos possuem informao acerca da tecla
(e.KeyCode) utilizada. A classe Keys rene um vasto conjunto de constantes onde
cada uma representa uma tecla diferente.
ExEMPLO
Eet KevDn
Private Sub Forml_KeyDown(ByVal sender As Object,
ByVal e As System.Windows.Forms.KeyEventArgs) Handie
s Me.KeyDown
If e.KeyCode = Keys.Escape Then
MsgBox(Premiu a tecla Escape!)
End If
End Sub

v:
Private Sub FormlKeyUp(ByVal sender As Object
,
ByVal e As System.Windows.Forms.KeyEventArgs) Handie
s Me.Keyup
If e.KeyCode = Keys.A Then
MsgBox(Libertou a tecla A!)
End If
End Sub
FCA

Editora de Informtica

238

VISUAL BAsrc

2010

CURSO CoMPLETo

<Escape>
A MgBox do evento KeyDown mostrada imediatamente aps a tecla
<a>.
tecla
liberta
se
a
quando
da
ter sido premida; a MsgBx do evento Kei/Up s mostra

6.3.26 EVENTO KEYPRESS


Os eventos KeyDown e KeyUp apenas retomam um valor numrico
o cdigo ANSI. Muitas
correspondente ao cdigo internacional de teclado
porque
vezes, o que se pretende obter o cdigo ASCII da tecla pressionada. Isto
mesmo
o dgito <3>, o smbolo cardinal (#) e o <e> comercial (&) possuem o
dio
cdigo ANSI (ambos so obtidos premindo a tecla <3>, contudo, por interm
de combinaes e de cdigos ASCII distintos).

wn.
O evento KeyPress ocorre imediatamente antes do KeyUp e aps o KeyDo

ExEMPLo
EvenzD <eyess

,
Private Sub Forml_KeyPress(ByVal sender As Object
)
ntArgs
essEve
KeyPr
ByVal e As System. Windows Forms
Handies Me.IceyPress
.

MsgBox(O carcter obtido foi:

& e.Keychar)

End Sub
com o carcter
Independentemente da tecla pressionada, a caixa de mensagem

correspondente sempre mostrada

ao

utilizador.

6.3.27 EVENTOS MOVE E RESIZE


Ocorrem sempre que a posio (Move) ou a dimenso (Resize) do
formulrio alterada.
ExEMPLo
Private Sub FormlMove(ByVal sender As Object,
ByVal e As System.EventArgs) Handies Me.Move
MsgBox(O formulrio foi deslocado!)
End Sub

FCA

Editora de Informtica

WINDOWS F0RMs

239

Eveto Resze
Private Sub Formi Resize(ByVal sender As Object,
ByVal e As System.EventArgs) Handies Me.Resize
MsgBox(TbO formulrio foi redimensionado!)
End Sub

6.4

CONTROLO LABEL

breves.

Apresenta texto descritivo para ttulos, legendas, figuras ou instrues

A maior parte dos objectos estudados neste captulo possui as mesmas


caractersticas, pelo que apenas sero abordadas as propriedades, os mtodos e
os
eventos no citados em pontos anteriores.

6.4.1

PROPRIEDADE BORDERSTYLE

Define o modo de apresentao dos limites. Pode utilizar uma das


constantes definidas na tabela 6.6.
CONSTANTE

LIMrrES DO CONTROLO

BORDERSTYLE. N0NE

Nenhum (predefinio).
Simples.
Com efeito tridimensional.

BORDERSTYLE. FIxEDSINGLE
B0RDERSTYLE. FIxED3D

TABELA 6.6

Constantes utilizadas na propriedade BorderStyle

ExEMPLo
Assura trs rtuos

ernbutcos num fcrmu-

Private Sub Forml_Load(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handies MyBase.Load
Labell.BorderStyle
Labell.Text

BorderStyle.None Sem

None Texto

Label2.BorderStyle
Label2.Text

rres

1.0 controo

BorderStyle.FixedSingle rn:essmes

FixedSingle TexDdc2.ccntroo

Label3 .BorderStyle

Borderstyle.Fixed3D mtes 3D

FCA

Editora de Informtica

VISUAL BASIC
Label3.Text

2010

CURSO COMPLETO
x:do3.D:::D

IT3DTI

End Sub

figura

6.28 clarifica a diferena existente entre os diferentes modos.


Formi
None
[FedSing

6.28

FIGur

Definio da propriedade BorderStyle

PROPRIEDADE AUTOSIZE

6.4.2

Indica se o controlo (valor True), ou no (valor False), redimensionado


em funo do texto nele contido.
Por

predefinio, os

rtulos

so automaticamente ajustados.

EXEMPLO
D

num

do t:_Ios

Ass.

Private Sub FormlLoad(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handies MyBase.Load
Labell.Autosize

True ieiro

200

Labell.Width

50 Alt do pme: :rt

Labell.Text

TIAutosjze

Label2.Autosize
Label2 .Width

Autosize

Label2.BorderStyle

Editora de Informtica

do

CDfltrDiO

50 Aftur dD ;undo

Label2.Text

Lms

oasb3o

False .Er

End Sub

True TXtDdDDric:::rDO

BorderStyle. FixedSingle

Label2 .Height
=

200 Cr:pr

DDcDD

rner:o

Labell.Height

Labeli .BorderStyle

FCA

CD

False Tex:o

segu:o c::DD

BorderStyle.FixedSingle

tS

WINOOWSFORMS

Corno pode constatar pela figura 6.29,


automaticamente ajustado, ao contrrio do segundo.
[o

rtulo

foi

Formi

1 Autose

FIGuR? 6.29

Tue

Aulosize

6.4.3

o primeiro

241

Flse

Definio da propriedade AutoSize

PROPRIEDADE IMAGE

Faz referncia a uma imagem que possa ser definida como fundo do
controlo.
Esta propriedade funciona de modo anlogo propriedade RackroiniI1,oac do
objecto For,,,, com a excepo de que a imagem no pode ser redimensionada em funo
das dimenses dc) controlo.

6.4.4

PROPRIEDADE IMAGEALIGN

Especifica o modo de alinhamento da imagem em relao ao controlo.


Pode usar uma das constantes indicadas na tabela 6.7.
CONSTANTE

TIPO DE AUNI-IAMENTO

C0NTENTAUGNMENT. T0PLEFF

Canto superior esquerdo.

C0NTENTAUGNME,vT. T0PRIGHT

Canto superior direito.

CONTENTAUGNMENT. TOPCENTER

Superior (centrado horizontalmente).


Canto inferior esquerdo.

C0NTENTAUGNMENT. B0Tr0MLEA
CONTENTAUGNME,VT.BOTr0MRIGHT

Canto inferior direito.

C0NTENTAUGNMENT. BOJTOMCENTER

Inferior (centrado horizontalmente).

CONTENTA LIGNMENT. MIDDLELEFr

esquerda (centrado verticalmente).

C0NTENTAUGNMENT. MIDDLECENTER

Centrado horizontal e verticalmente.


direita (centrado verticalmente).

CONTENTAUG,vMENT. MIDDLERIGHT

TABELA 6.7

Constantes utilizadas na propriedade ImageAlign

FCA

Editora de Informtica

VISUAL BAsIc

2010

CURSO CoMPLETo

Por predefinio, as imagens so centradas vertical e horizontalmente.


ExEMPLo
r3:D 9

Ass_

?.S2S

9S ED CDD D

t,
Private Sub FormlLoad(ByVal sender As System.Objec
d
se.Loa
MyBa
s
Handie
Args)
ByVal e As System.Event
D.

D U8O

Labell.AutoSize
Labell.Width

False

200

Labell.Height

100

Labeli .BorderStyle

Labell.Image

BorderStyle FixedSingle
.

Image.FromFile(C:\Pictures\rato.jpg)

Labeil ImageAlign
.

ContentAlignment .BottomRight

End Sub

Neste caso, a imagem alinhada no canto inferior direito (figura 6.30).


Formi
Lbel1

FIGui

6.30

Definio da propriedade ImageAlign

Os rtulos podem embutir texto e imagem em simultneo.

PROPRIEDADE TEXTALIGN

6.4.5

Especifica o alinhamento do texto. Esta propriedade utiliza as mesmas


constantes da propriedade ImageAlign (consultar tabela 6.7).
Por predefinio, o texto alinhado
FCA

Editora de Informtica

II

no canto

superior esquerdo.

WINDOWS F0RMs

6.4.6

243

PROPRIEDADE FORECOLOR

Retoma ou define a cor do texto do rtulo. Esta propriedade definida da


mesma forma que a propriedade BackColor do objecto Form.

6.4.7

PROPRIEDADE FONT

Agrega diversas informaes acerca do tipo de letra em que cada uma


delas possui um campo especfico.

6.4.7.1 ATRIBUTO FAMILY


Especifica um dos grupos de tipo de letra a ser utilizado, tais como
Anal, Times New Roman e Verdana, entre outros.

6.4.7.2 ATRIBUTOS SIZE E UNIT


Definem o tamanho do tipo de letra (Size) e a unidade de medida (Unit).
Pode recorrer s unidades indicadas na tabela 6.8.
CONSTANTE

UNIDADE DE MEDIDA

GRAPHIcsUNrU. POINT5

Pontos (predefinio).

Gp.PHIcsUNrn PIxELs

Pixeis.

G.API-iIcsUNrr INCH

Polegadas.

GRAPHIc5UNTr. MILIMETER

Milmetros.

TABELA

6.8

Constantes utilizadas na propriedade Font (atributo Size)

6.4.7.3 ATRIBUTO S7YLE


Especifica um dos estilos de tipo de letra referidos na tabela 6.9.
CONSTANTE

EsnLo

F0NTSTYLE. REGULAR

Normal.

F0NTSrnE. B0LD

Negrito.

FCA

Editora de Informtica

244

VISUAL BASIC 2010

CuRso CoMPLETo

CoNsTANTE

EsTILo

FQNTSTYLE.ITAUc

Itlico.

F0NTSr(LE. UNDERUNE

Sublinhado.

F0NTSry1E. STRIKE0uT

Rasurado.

TABELA

6.9

Constantes utilizadas na propriedade Font (atributo Style)

6.4.7.4 ALTERAO DO TIPO DE LETRA EM DESIGN-TIME


Para alterar o tipo de letra para um determinado controlo, localize a

propriedade Font, expanda-a e defina os atributos pretendidos.


O atributo Sfyle encontra-se devidarnente separado nos subatributos booleanos
Regular, BoId, ltalic, Uiidtrliiu e Strikeouf.

6.4.7.5 ALTERAO

DO TIPO DE LETRA EM RUN-TIME

Os controlos herdam os valores definidos na propriedade Font do prprio


formulrio, que define o tipo de letra predefinido para todos os objectos nele
contido. Como consequncia, a propriedade Font dos controlos passa a ser s de
leitura, o que significa que no pode redefini-la directamente em tempo de
execuo. Uma das formas de contornar este problema criar um prottipo,
instanciando duas novas classes (Font, que refere o prottipo, e FontFamily, que
refere o nome do tipo de letra).
EXEMPLO
;

LcE.::: rL

Private Sub FormlLoad(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handies MyBase.Load

Labell.AutoSize

True

:c p:tpo
Dim nome As New FontFami1y(Aria1)
Dim prottipo As New Font(nome, 10,
FontStyle .Bold Or FontStyle. Italic,
GraphicsUnit Point)
.

FCA

Editora de Informtica

WINDows F0RMs

245

Labell.FOflt = New Font(prottipo,


FontStyle Bold Or FontStyle. Italic)
.

ADcao do ex:D
Labell.Text

Anal, Bold,

Italic,

10 pontos

End Sub

figura

6.31 mostra o efeito da aplicao do novo tipo de letra.


[FoiI

1
FxGurA

Agia!. Bo!d. !talic. 10 pontos

6.31

Definio da propriedade Font

ANLISE

A varivel-objecto nome faz referncia ao tipo de letra Anal, por


instanciao de unta nova classe FontFamily. A criao do prottipo feita custa
do construtor da classe Font por indicao do nome do tipo de letra a ser usado,
do tamanho, do(s) estilo(s) e da tmidade de medida a aplicar. Aps a construo
do modelo (varivel prottipo), reconstruiu-se a propriedade Font do controlo.
Para conjugar os diversos estilos, recorreu-se ao operador Or.
Tal como verificado para o objecto For,,,, os controlos do tipo Label possuem as
propriedades 1a,,,e, Text, BackColor, Height, Widfh, Left, To
i, E,,abled, Vis ibiL e Cursor.
1

6.4.8

MTODO HIDE

Permite tornar o controlo invisvel. Este mtodo no possui argumentos e


constitui uma alternativa redefinio da propriedade Visible com o valor False.
EXEMPLO

Labell.Hide() D:::a;D do

cr:o

Os rtulos no possuem eventos de teclado, pois, por serem de sada de


informao, no podem ganhar o cursor do teclado (f)cus). Tal como os formulrios,
reconhecem os eventos Click, Dou bleClick, MouseMoze, MousLHozLr, MoistEn ter,
MouseLeave, Resizc e Move.

FCA

Editora de

Informtica

246

6.5

VISUAL BAsIc 2010

CURSO CoMPLETo

CONTROLO BU7TON

Inicia, termina ou interrompe uma aco ou uma srie de aces. O


procedimento associado ao evento Click de um Button determina a aco que
dever ser levada a cabo (por exemplo, fechar o formulrio, iniciar uma outra
aplicao, proceder a uma contagem do nmero de registos, etc.).

PROPRIEDADES TABINDEX E TABSTQP

6.5.1

Quando o utilizador est posicionado num determinado controlo e


pretende aceder a outro sem fazer dique com o boto do rato, pode premir a tecla
<Tab>. Este atalho do teclado frequente em aplicaes Windows.
A propriedade Tablndex define o ndice de tabulao para determinado
controlo. O controlo possuidor do ndice automaticamente seleccionado
quando o formulrio iniciado; se o utilizador prime a tecla <Tal,>,
direccionado para o de ndice 1 e assim sucessivamente.
A propriedade TabStop (tipo Boolean) define se determinado objecto faz,
ou no, parte do conjunto de controlos indexados ao nvel de tabulaes.
Os ndices de tabulao existem em todos os controlos que no momento estejam
activos (propriedade E,mbld igual a Triic) e que possuam a faculdade de receber o ficiis.

combinao e de
Exemplos desses tipos de controlos so caixas de texto, de listagem, de
verificao, bem como botes de opo.
EXEMPLO

Assume

utids nu rrnu

Private Sub FormlLoad(ByVal sender As System.Object,


ByVal e As System.EventArgs)
Buttonl.TabStop

Button2.TabStop

Button3.Tablndex
Editora de Informtica

ndice 1

Button3.TabStop

True

Button2.Tablndex

FCA

ndice O

Buttonl.Text

Button2.Text

False

Buttonl.Tablndex

Handies MyBase.Load

True

WrNDows F0RMs
Button3.Text

247

ndice 2

End Sub
ANliSE

Aqui, apesar do primeiro boto ter o ndice de tabulao mnimo (o de


ndice zero), no aparece seleccionado quando o formulrio arranca, pois a sua
propriedade TabStop foi definida com o valor False. Assim, o prximo controlo
(o de ndice um) que ganha o focus, por ter sido atribudo o valor True sua
propriedade TabStop (figura 6.32). Para testar o efeito da propriedade Tablndex
conjugada com a propriedade TabStop, entre em modo de execuo e prima
sucessivarnente a tecla Tab>. Ver que apenas os segundo e terceiro botes
ganham a seleco.
Formi

nce O

FIGURA 6.32

1
1
n&e 1

ndice 2

Definio das propriedades Tablndex e TabStop

Os controlos do tipo Buttmi possuem, ainda, as seguintes propriedades j


estudadas anteriormente neste captulo: Name, Text, BackColor, Height, WidtIi, Lcff, Top,
EiiaHtd, Visiblt, A iitaSi:t, BnckGrai;idlniac, BackGrouiidlniageLayout, ImagL, 1i?IagLAIi;i,
CHrsor, TcxtAliii, E rtjIr e Eaii t.

6.5.2

MTODO FOCUS

Faz com que o controlo fique seleccionado. Este mtodo no tem


argumentos. O mtodo Focus s surte efeito quando o controlo se encontra visvel
(propriedade Visible igual a True) e activado (propriedade Enabled igual a True);
se estas duas condies forem verificadas, o controlo em causa seleccionado,
independentemente do valor actual da sua propriedade TabStop.
ExEMPLo
Buttonl.Focus O bcto

L.j

O mtodo Hide descrito no tpico referente aos controlos do tipo LabLl aplica-se,
na sua ntegra, aos botes de comando.

FCA

Editora de Informtica

248

VIsuAL BAsIc

2010

CURSO CoMPLETo

EVENTOS GQTFOCUS E LOSTFOCUS

6.5.3

Ocorre quando o objecto ganha e perde ofocus, respectivamente.


ExEMPLo
EventD 5cc
Private Sub Buttonl_GotFocus(ByVal sender As Object,
ByVal e As System.EventArgs) Handies Buttonl.GotFocus
Buttonl.Text
End

Tenho o focus!

Sub

Ever:D
Private Sub Buttonl LostFocus(ByVal sender As Object,
ByVal e As System.EventArgs) Handies Buttonl.LostFocus
Buttonl.Text
End

No tenho o focus!

Sub

Outros eventos abordados anteriormente so: Click, DoubleClick, MouseMove,


MouseHover, MouseEnter, MouseLeave, KeyDown, KeyUp, KeyPress, Resize e Move.

CONTROLO TEXTBOX

6.6

Apresenta informao digitada directamente pelo utilizador ou


proveniente de uma definio de dados organizada (resultado de uma consulta a
uma base de dados, clculos, etc.).

PROPRIEDADE READONLY

6.6.1

Valor lgico que determina se a caixa de texto est (True), ou no (False),


bloqueada. Um controlo est bloqueado quando, apesar de reconhecer eventos,
impossibilita o utilizador de alterar o seu contedo.
definindo o valor Tii nesta propricdde, o contedo da caixa de
pode
ser alterado em run-tinie, atravs de cdigo-fonte.
introduo
Mesmo

ExEMPLO

cs c

-b: ds num fomu

Private Sub Formi Load(ByVal sender As System.Object,


ByVal e As System.EventArgs) 1-landies MyBase.Load

FCA

Editora de Informtica

WINDows F0RMs
TextBOXl.ReadOflly
TextBOxl.Text

False l. !X

:e: cec

Leitura e escrita

TextBOx2.Readonly
TextBox2.Text

249

d3 l.a :E

True 2. :Jx :s: ::sEda

S de leitura x: c

::x

End Sub

Como pode constatar na figura 6.33, a aparncia da caixa bloqueada


difere da caixa que permite alterao de contedo.
__j

Q.

Leihira e escri

FIGURA 6h33

6.6.2

de eiu

Definio da propriedade ReadOnly

PROPRLEDADE PASSWORDCHAR

Permite especificar um carcter que substitui todos os que o utilizador


formar na caixa. ideal .para campos que requerem a introduo de uma senha
para ter acesso a determinado(s) direito(s) ou funcionalidade(s) na aplicao.
Quando esta propriedade: no definida, o controlo apresenta o texto
exactamente como ele foi digitado.
ExEMPLo
rixa de :x::

num

Private Sub FormlLoad(ByVal snder As SystemObject,


ByVal e As System.EventArgs) Handies MyBase.Load
TextBoxl.PasswordChar

End Sub

Desta forma, consegue-se obter o efeito igual ao mostrado na figura 6.34.


j.

FIGURA 6.34

L_____

Definio da propriedade PasswordChar


FCA

Editora de Informtica

VISUAL BASIc

2010

CURSO CoMPLETo

convencional empregar-se o asterisco (*) como carcter de substituio para


campos do tipo password, o que obviamente no significa que no se possa utilizar um
outro que se adapte melhor funcionalidade que o programador pretende implementar
no momento.

PROPRIEDADES MULTILINE, WORDWRAP E SCROLLBARS


Por predefinio, as caixas de texto possuem apenas uma linha; porm,
possvel dar a capacidade ao controlo de apresentar mltiplas linhas de texto.
Para tal, dever-se- alterar o valor da propriedade MultiLine de False para True. A
propriedade WordWrap define se o controlo procede (valor True), ou no (valor
False), automaticamente a mudanas de linha, de forma a que o texto fique
moldado. Por prededinio, esta propriedade encontra-se definida com o valor
True. Para definir a existncia de barras de deslocamento no interior da caixa,
recorre-se propriedade Scrollbars (considere as constantes da tabela 6.10).
6.6.3

CONSTANTE

BARRAS DE DESLOCAMENTO

SCROLLBARs. NONE

Nenhuma.

ScROLLBAR5. HORIZONTAL

Apenas horizontal.

SCROLLBARs. VERTICAL

Apenas vertical.

SCROLLaLiRs. B0TH

Horizontal e vertical.

TABELA 6.10

Constantes utilizadas na propriedade Scrollbars

EXEMPLO

Ass uma

:Je :axtz en-a

Private Sub FormlLoad(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handies MyBase.Load

itpias flnhas de
TextBoxl.Multillne

True

CompMreD da
TextBoxl.Width

150

Aitura da caixa
TextBoxl.Heigl-it

50

Sem moacem cc exo


TextBoxl.WordWrap

FCA

False

Editora de Informtica

WIND0wsF0RMs

251

Apes ba vr:al
TextBOXl

Scrollbars

IseD ce

Scrollbars Vertical
.

text: :Dm quatrD rs

TecEBOX1.Text = Primeira linha... &


Microsoft.VisualBasic.vbCrLf & Segunda linha... &
Microsoft.VisualBasic.vbCrLf & Terceira linha... &
McrosOft .VisualBasic.vbCrLf &Quarta linha..
End Sub

Para que no seja obrigatrio definir a altura da caixa (propriedade Heighf)


atravs de cdigo, recomenda-se que altere a propriedade MultiLiirc em modo de
desenho do formulrio. Assim, j possvel definir partida (e de uma forma bastante
mais cmoda) as dimenses do controlo.
A figura 6.35 mostra o resultado da execuo do cdigo anterior.

Iisi

Formi

jf

Primeira linha...
Segunda linha...
Terceira linha...
----------

FIGURA

6.35

Definio das propriedades MultiLine, WordWrap e Scrollbars

ANLIsE

Recorreu-se constante vbCrLf definida em Microsoft.VisualBasic, que


simula o pedido de mudana de linha. Em caixas de texto, no possvel
recorrer-se funo Chr para obter o mesmo efeito, pois seria imprimido o
carcter correspondente ao cdigo da tabela ASCII em vez de se obter a real
mudana de linha.

6.6.4

PROPRIEDADE MAXLENGTH

Define o nmero mximo de caracteres (incluindo espaos) que o


utilizador pode formar na caixa.
A alterao da propriedade Text atravs de cdigo-fonte permite a insero de
mais caracteres do que os limitados pela propriedade MaxLtngth.

FCA

Editora de Informtica

VISUAL BASIc 2010

CURSO CoMPLETo

EXEMPLO
TextBoxl.MaxLength

5 _:e xD :e 5

TextBoxl.MaxLength

44

exdecs

Os controlos da categoria TcxtBox possuem, em comum com os controlos


estudados anteriormente neste captulo, as propriedades Name, Text, BackColor,

Heigh t, WitItI,, Left, Top, Ei itIblLd, Visible, Cursor, TextAligu, FortColor, Fon t,
TabStop e Tablndex.
BordLrS tyle,

MTODO APPENDTEXT

6.6.5

Adiciona um fragmento de texto ao j existente na caixa. Este mtodo


possui um argumento do tipo de dados String correspondente cadeia a ser
adicionada.
EXEMPLO

ex:D :n;ci
TextBoxl.Text

Texto...

Ac!;c de :e::D
TextBoxl .AppendText (Microsoft.VisualBasic.Space(1)
Mais texto!)

&

ANLIsE

No final, obtm-se a cadeia completa Texto... Mais texto!. Recorde-se


que a funo Space permite adicionar o nmero especificado de espaos.

MTODO CLEAR

6.6.6

Permite apagar todo o texto da caixa. Este mtodo no possui quaisquer


argumentos.

EXEMPLO

TextBoxl.Text

Este texto ir desaparecer!

D O tXtD

TextBoxl Clear
.

FCA

()

Editora de Informtica

WINDows FORMs

6.67

MTODOS SELEC7, SELECTALL E OESELECTALL

O mtodo Select permite seleccionar uma parte do texto actualmente


presente no controlo. Deve ser especificada a posio do primeiro carcter
(argumento start) e o nmero de caracteres a seleccionar (argumento length).
O mtodo SelectAli selecciona todo o texto contido na caixa e o mtodo
DeselectAl? remove toda e qualquer seleco. Estes dois mtodos no requerem
argumentos.
EXEMPLO
TextBoxl .Text

Toco o tex::

Texto

TextBoxl SelectAil
.

2 seecc:cE: o

()

;t: ne :ex:o ex:

TextBoxl .Select (2,

Nehr :.o

3)

texto s&eccond

TextBoxl .DeselectAll

Exemplo

semelhana dos

()
controlos Bittmi, os controlos da categoria TextBox possuem os

mtodos HidL e Focus.

6.6.8

EVENTO TEXTCHANGED
Ocorre sempre que h mudana de contedo na caixa de texto.
ExEMPLo

Evento TexCFa:oeo
Private Sub TextBoxl TextChanged(ByVal sender As Object,
ByVal e As System.EventArgs) Handles TextBoxl.TextChanged
TextBoxl .Text

Microsoft .VisualBasic.Ucase (TextBoxl .Text)

TextBoxl.Select (TextBoxl.TextLength,

0)

End Sub

ANLIsE

Com o auxlio da funo Llcase, redefiniu-se a propriedade Text com o


objectivo de capitalizar todas as letras que forem introduzidas em minsculas.
Sempre que se redefine a propriedade Text atravs de cdigo-fonte, o cursor do

FCA

Editora de Informtica

j____

VISUAL BASIC

2010

CURSO CoMPLETo

tecla do fica sempre posicionado esquerda do primeiro carcter. Para que o


cursor regresse at direita do ltimo carcter, necessrio determinar-se o
nmero de caracteres actualmente presentes no controlo e reposicionar
correctamente o cursor sem seleccionar nada. Para atingir este objectivo, utilizou-se o mtodo Select e fez-se referncia propriedade TextLength da caixa, que
retorna o nmero total de caracteres presentes. De salientar que o valor da
propriedade TextLength apenas pode ser obtido da forma exemplificada, no
estando disponvel em design-time.
Os controlos da categoria TtxtBox tambm reconhecem os eventos Click,
1)eitbltClick, MouseMoze, MHISHmtr, huscfu ter, Moo stLcave, KeyDowu, KetUp, Kei,PrLss,
Resize, t1ozt, Gof Focos e LostFocus.

CONTROLOS COMBOBOX E LISTBOX


Uma Lis tBox (caixa de listagem) apresenta um conjunto de opes ao
utilizador, sem este poder digitar directamente informao no controlo, e uma
ComboBox (caixa de combinao) combina as funcionalidades de uma caixa de
texto normal com as de uma ListBox, dando permisso ao utilizador para inserir
novos dados, digitar um texto aproximado, correspondente a um dos itens de
lista, ou ainda seleccionar uma das opes disponveis. As listagens neste tipo de
controlos so dispostas em linhas de dados, em que cada linha pode conter uma
ou mais colunas.

6.7

PROPRIEDADE ITEMS

6.7.1

Esta propriedade aponta para a coleco de itens de lista que figuram no


controlo.

MANIPULAO DE ITENS EM DESIGN-TIME

6.7.1.1

Para predefinir itens de lista em modo de desenho:


1) Localize a propriedade Items e faa dique em
2) Surge a caixa String Coliection Editor, onde dever escrever, linha-a-linha, os itens que pretende incluir no controlo (figura 6.36);
FCA

Editora de Informtica

WIND0wsF0RMs

2551

String Coflection Editor

Enter the strings in the coliection (one per une):

:1

Itemi
Item2
Item3
Item4
Item5
Item
4

0K

FIGURA 6.36

3)

Cancel

Manipulao de itens de lista em design-time

Faa dique em 0K para terminar o processo.

A figura 6.37 mostra o efeito obtido em caixas de combinao e de


listagem aquando da entrada em modo de execuo.
For rn 1
--

Itemi
Item2
Item3
Item4
Item5
tem6

FIGURA 6.37

LEi

1___
Item2
Item3
)tem4
Item5
Item6

Apresentao de itens de lista em run-tirne

Em qualquer momento, pode, em desiu-tinie, regressar ao editor de itens e


adicionar, remover e alterar os contedos.

6.7.1.2

INSERO DE ITENS EM RUN-TIME (MTODO ADD)

Para adicionar itens de lista atravs de cdigo, basta ir acrescentando


elementos coleco Itens (ver exemplo seguinte).
A adio de elementos a uma coleco de objectos sempre feita custa do
mtodo Add dessa coleco.

FCA

Editora de Informtica

VISUAL BAsIc 2010

256

CURSO CoMPLETo

EXEMPLO
Js:3:x e

Assre

--e C::.D> ez:es emD :es nm

Private Sub FormlLoad(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handies MyBase.Load
CD DC :-es :es e

ComboBoxi Items .Add(Itern 1)


.

ComboBoxi Items .Add( Item 2

fl)

Item 3
1
ComboBoxi Items .Add(

ti)

e :s ters L.s:Dx

ListBoxl Items .Add( Item 1)


.

ListBoxl. Items .Add

(ti

Item 2

ListBox1.Items.Add(Item
End

IT)

311)

Sub

ANlisE

Foram utilizadas cadeias alfanumricas de caracteres como argumentos


do mtodo Add que correspondem ao texto que se pretende associar a cada um
dos itens de lista adicionados. Utilizando este processo, os itens so sempre
acrescentados ao final da lista (o resultado obtido em tempo de execuo
exactamente o mesmo que foi apresentado na figura 6.37).

6.7.1.3

INSERO DE ITENS EM RUN-TIME (MTODO INSERT)

Quando o objectivo for inserir novos itens sem se ter em conta uma
ordem especfica, dever substituir o mtodo Add pelo mtodo lnsert, onde, para
alm de ter de especificar o texto associado ao item (segundo argumento), tem
que obrigatoriamente referir o ndice de posio no qual pretende acrescentar o
novo elemento (primeiro argumento).
Tal como nos arrays, o primeiro item de lista o de ndice
ndice um, o terceiro o de ndice dois, e assim sucessivamente.

zero,

o segundo

o de

ExEMPLo
:,sr-. UD LStX e .--; CumDCBCX dZ e

..

Private Sub FormlLoad(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handies MyBase.Load

FCA Editora de Informtica

______

WINDOws FORMs

Ac;c e

teE

CDbD3Dx

CojriboBoxl.Items.Insert(O,

Item 1)

CorrDoBOxl.Items.Insert(1,

Item 2)

ComboBoxl.Items.Insert(O,

Item 3)

Ad:D

257

e s s

ListBoxl.Items.Insert(O,

Item 1)

ListBoxl.Items.Insert(1,

Item 2)

ListBoxl.Items.Insert(1,

Item 3)

End Sub

Como pode constatar pela figura 6.38, os itens foram adicionados pela
ordem ditada pelo ndice especificado em cada chamada ao mtodo Insert.
Form 1

Item3
temi
Item2

FIGui

6.38

liemi
tem 3
Item2

li-isero de itens de lista atravs do mtodo Insert

Caso o ndice especificado esteja ocupado, o novo elemento ganha o ndice e o


elemento que j existia fica imediatamente abaixe do inserido. Por outro lado, no podem
haver lacunas na lista de ndices, o que significa, por exemplo, que no pode existir o
item de ndice trs se no existir o de ndice dois. Caso isto acontea, ocorre um erro em
tempo de execuo.

6.7.14 REMOO DE ITENS EM RUN-TIME (MTODO CLEAR)

O mtodo Clear da coleco Items permite eliminar todo o contedo da


caixa. No so utilizados argumentos.
ExEMPLo
Private Sub FormlLoad(ByVal sender As System.Object,
ByVal e As System.EventArgs)

Handies MyBase.Load

FCA

Editora de Inormtlca

VISUAL BAsIc 2010

258

:s

;a

CURSO CoMPLETo

:e

ComboBoxl. Items .Add

(TI

Item 1

IT)

ComboBoxl Items .Add( Item 2)


.

ComboBoxl Items .Add( Item 3)


.

rie :s s Ls2Dx
ListBoxl Items .Add ( Item 1 )
ListBoxl Items .Add( Item 2)
.

ListBoxl Items .Add ( Item 3)


.

:DDs Ds :es e
ComboBox]. Iterns Clear
.

sa

ListBoxl Items Clear ()


.

End Sub

6.7.1.5

REMOO DE ITENS EM RUN-TIME (MTODO REMOVE)

O mtodo Remove da coleco Items


corresponde ao texto do item de lista a ser removido.
possui

apenas

um

EXEMPLO

Ass.

r :s:; vzi

:::3::;

Private Sub Forml_Load(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handies MyBase.Load

3 iters C:
ComboBoxi Items .Add ( Item 1

1)

ComboBoxi Items .Add

Item 2

ComboBoxi Items .Add

(11

Item

:-:

: 3

TI)

311)

Lst3x

ListBoxl Items .Add ( Item

111)

ListBoxl.Items.Add(Item

211)

ListBoxl.Items.Add(Item 3)
do rim

tem c Czrnbo;x

ComboBoxl Items Remove (Item


.

FCA

Editora de InformtIca

111)

argumento

que

WINDows F0RMs

259

ero: :D se;:c :e
ListBox. Items .Remove (Item 2)
End Sub

Caso exista mais do que um item com o mesmo texto, apenas eliminado o de
menor ndice. Em qualquer um dos casos, ocorre sempre uma reorganizao dos itens,
devido impossibilidade de existncia de lacunas em ndices.

6.7.1.6 REMOO DE ITENS EM RUN-TIME (MTODO REMOVEAT)


Tal como o mtodo Remove, permite remover um item de lista mas, desta

feita, por especificao do ndice do elemento em causa.


EXEMPLO

Ass ue _s:x e ur C

HoDx vz.s :s

Private Sub FormlLoad(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handies MyBase.Load

Ad: ce dois :rs


ComboBoxi Items Add ( Item 1)
.

ComboBoxi Items .Add( Item 2


.

1T)

.s ters LBx
ListBoxl.Items.Add(Item 1)
ListBoxl.Items.Add(Item 2)
ListBoxl.Items.Add(Item 3)

e CorboDx
ComboBoxi Items RemoveAt (O)
.

RemDo do terco item c Lsx


ListBoxl. Items RemoveAt (2)
.

End Sub

6.7.1.7 EDIO DE ITENS EM RUN-TIME POR ESPECIFICAO DO SEU NDICE


Neste mtodo, a alterao do texto associado a determinado item de lista
feita por indicao do ndice do mesmo entre parnteses e logo aps a coleco
a que ele pertence.

FCA

Ed(tora de tnformt(ca

260

VISUAL BAsIc 2010

CURSO CoMPLETo

EXEMPLO
AssJ re

SDX e e

Cc t:x 7eies

:ccs nrn form1D

Private Sub FormlLoad(ByVal sender As System.Object,


ByVai e As System.EventArgs) Handies MyBase.Load

A:o ce :-s t-s

C:cc::x

ComboBoxi Items .Add( Item

1TT)

ComboBox]. Items .Add ( Item 2)


.

ComboBoxi. Items .Add(Item 3)


Adc de trs tes

ListEx

ListBoxl Items .Add( Item


.

1)

ListBoxl Items .Add( Item 2)


.

ListBoxl Items .Add ( Item 3

TI)

A :e-ec do -e.c tem c


ComboBoxl.Items(O)
A

Alterado!

:e-ecc do ce-cero item de

ListBoxl.Items(2)

End

:3OX

Alterado!

Sub

EDIO DE ITENS EM RUN-TIME POR ESPECIFICAO DO SEU TEXTO

6.7.1.8

Aqui, usamos o mtodo IndexOf da coleco Items como forma de


descobrirmos o ndice do item a ser alterado.
EXEMPLO
Asscma me

s:Ex e ComboSox ezies embutioes

for o

Private Sub FormlLoad(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles MyBase.Load
AdicD de

zs :ec

ComboBoxi Items .Add ( Item 1)


.

ComboBoxi Items .Add ( Item 2)


.

ComboBoxl. Itetns .Add(Item 3)

Adico de trs trs L stBcx


ListBoxl.Items.Add(Item 1)
ListBoxl Items .Add(Item 2)
.

FCA

Editora de Informtica

WINDows F0RMs
ListBoxl.Items.Add(Item

31!)

A:te-o D o-:m&-c :e c.a CrbcH3cx


Dim item_combo As Integer
itemcornbo

ComboBoxl Items Indexof(Item 1)


.

CornboBoxl Items (itemcombo)

Alterado!

A;tec c teceo te ca stEzx


Dim item_list As Integer
itemlist

ListBoxl.Items.IndexOf(Item 3)

ListBoxl.Items(itemlist)

Alterado!

IT

End Sub

ANlisE

As variveis item_combo e item_list contm os ndices de lista a serem


alterados, obtidos por especificao do texto original aquando da execuo do
mtodo IndexOf

J semelhana do que acontece no mtodo Rnwtc, caso exista mais do que um


item com o mesmo texto, apenas alterado o de menor ndice.
6.7.1.9 CONTAGEM DE ITENS EM RUN-TIME

Para determinar o nmero total de itens de lista, recorremos ao mtodo


Count da coleco Items.
EXEMPLO
-ss_ma ue LstBDx e uma C:rD:x

azs um iccas num cZro

Private Sub Forml_Load(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles MyBase.Load

cc :cs :e.s

Cmb:Ez.

ComboBoxl Items .Add( Item 1)


.

ComboBoxl Items .Add ( Item 211)


.

c de ur te-

LiscX

ListBoxl.Items.Add(Item 1)

Dim conta combo,

conta list As Integer

FCA

Ed(tora de tnformt!ca

262

VISUAL BAsIc
conta combo
conta list

2010
=

CURSO COMPLETO

ComboBoxl.Items.Count()
ListBoxl.Items.Count()

O-e

C;:-s2 1

eser:a;: :e -su cs

MsgBox(A ComboBox tem


MsgBox(A ListBox tem
End

& conta_combo &

& conta_list &

IT

elementos.)

elementos.)

Sub

PROPRIEDADE SORTED

6.7.2

Define se os itens de lista devem aparecer (valor True), ou no (valor


False), ordenados alfabeticamente. Por predefinio, esta propriedade tem o valor
False.
EXEMPLO
Assrna

ni

e urna

CDrnbeex vezas ernitees nurn ftmu

Private Sub Forml_Load(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handies MyBase.Load

Je :rs ters

CcBDx

ComboBoxi Items .Add (Joo)


.

ComboBoxl Items .Add(Ana)


.

ComboBoxi. Items .Add (Filipe)


Acac ce :s tes a :.:E:x
ListBoxl Items .Add (Joo)
.

ListBoxl Items .Add (Ana)


.

ListBoxl Items .Add( Filipe)


.

ComboBoxl.Sorted

True CD:x(sCdS

ComboBoxl.Sorted

False

Lrnx (caDs -c D-eenados)

End Sub

Ao entrar em modo de execuo, constatar que a Lis tBox permaneceu


ordenada pela indexao original, mas que o controlo CornboBox foi reordenado
alfabeticamente (figura 6.39).

FCA

Editora de Informtica

WINDows F0RMs
--

Formi
-

Jogo
ria
Filipe
Joo

FIGURA

6.39

263

Filipe

Ordenao de itens de lista (propriedade Sorted)

A reordenao alfabtica provoca a reordenao dos ndices.

6.7.3

PROPRIEDADE DROPDOWNSTYLE (APENAS EM COMBOBOX)


Define um dos estilos de caixa enunciados na tabela 6.11.

CoNsTANTE

DEscRIo

O utilizador pode digitar texto e o contedo da caixa


encontra-se sempre estendido.
O texto pode ser editado e o contedo da caixa apenas
pode ser visualizado aps a extenso do controlo
(predefirilo).

COMB0B0xSrYLE. S1P4PLE

C0MB0B0xSTYLE.DRQPDQwN

O texto no pode ser editado e o contedo da caixa


apenas pode ser visualizado aps a extenso do controlo.

CoMBoBoxSTrLE. DR0PDQwNLI5T
TABELA 6.11

Diferentes estilos em caixas de combinao (propriedade DropDownStyle)

EXEMPLO

ComboBoxi .DropDownStyle

ComboBoxStyle.DropDownList

CornboBoxl DropDownStyle

ComboBoxStyle Simple \vc es

6.7.4

PROPRIEDADE MAXDROPDOWNITEMS (APENAS EM COMBQBOX)


Retorna ou define o nmero mximo de itens de lista a serem mostrados
sem recorrer ao scroll. Por predefinio, este valor igual a oito.
EXEMPLO
ComboBoxl.MaxDropDownltems

ComboBoxl.MaxDropDownltems

Dsrtesc-3-Dc

FCA

Editor-a de Informtica

264

VISUAL BAsrc 2010

CURSO CoMPLETo

Outras propriedades dos controlos da categoria ListBox e ConiboBox so: Nome,


Text, BnckColor, BorderStyle, Heiglit, Width, Left, Top, Enabled, Visible, Cursor, ForeColor, Font,
TabStop, Tabiidex e MnxLetigth. Os mtodos suportados por esta categoria de controLos
so: Hide, Focos, SelectAli, DeselectAli e Select. semelhana dos controlos estudados
anteriormente, estes objectos reconhecem os eventos Click, DoubleClick, MouseMove,
MouseHozer, MouseEn ter, MouseLeaze, KeyDozvn, KeyLJp, KeyPress, Resize, Moti, GotFocus e

Los tFocus.

CONTROLOS CHECKBOX E RADIOBU7TON

6.8

Utilize caixas de verificao para dar ao utilizador uma escolha entre dois
valores, tais como sim/no e verdadeiro/falso. Quando o utilizador activa uma
CheckBox, ela apresenta uma marca de seleco (normalmente uma cruz ou um
certo). Se o utilizador no marca essa caixa, ela parece vazia.
Desenhe botes de opo para visualizar qual dos itens de um grupo de
opes est seleccionado. O imico RadioButton escolhido surge com um ponto no
seu interior e os restantes vazios.

PROPRIEDADE CHECKED

6.8.1

Retoma ou define se a caixa de verificao ou boto de opo esto (valor


True), ou no (valor False), assinalados.
EXEMPLO

CheckBoxl Checked

True A cxa

CheckBoxl Checked

False

,-

EssnEada

c&xa

RadioButtonl.Checked

True

RadioButtonl Checked

False A p;o

ssnaiaa

: sec:iQaa

PROPRIEDADE CHECKSTATE (APENAS EM CHECKBOX)

6.8.2

Implementa um terceiro estado para as caixas de verificao. Estes


controlos passam a ter trs valores possveis: sim (Checked), no (Unchecked) e
indeterminado (indeterminate), sendo este ltimo ideal para indicar ao utilizador
que ainda no preencheu determinado campo.
FCA

Editora de Informtica

___________

WrNDows F0RMs

265

EXEMPLO

Assuma

CECk3:xes ar

u:cJas num

Private Sub Forml_Load(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handies MyBase.Load

De!D e ts seris
CheckBoxl CheckStte
.

CheckBoxl.Text

3
TI

(Checked)TT

CheckState.Unchecked

2. estado

CheckBox3 CheckState
CheckBox3.Text

CheckState Checked

1. estado

CheckBox2.CheckState
CheckBox2.Text

(Unchecked)

CheckState. Indeterminate
estado

(Indeterminate)

End Sub

Em termos de visualizao, a caixa aparece com o quadrado totalmente


preenchido (figura 6.40) ou com fundo a cinza, dependendo do sistema operativo
em que a aplicao executada.
S

Formi
1

estado Chec[ cd)

2. estado (lincheckejj

4 :3 std Indetermnate]

FIGURA

6.40 Os trs estados em caixas de verificao (propriedade CheckState)

As propriedades Name, Text, BackColor, BackCro1,1d1n1aL, Backroi,idIniaeLnyout,


in10L, Inl(R,LA1l,11, -Jtilit, Width, AutoSizL, Ltft, Top, Enabltd, Visible, Cursor, FortColor,
Font, TabStop, Tablndex e os mtodos Hide e Focus tambm esto presentes nos controlos
ClieckBox e RadioButton.

68.3

EVENTOS CHECKEDCHANGED E CHECKSTA TECHANGEO

O evento CheckedChanged ocorre sempre que h mudana do valor da


propriedade Checked da CheckBox ou no RadioButton. O evento CheckStateChanged
dispara quando verificada uma mudana de valor na propriedade CheckState.
O evento

C1itckStittCIia,itd

apenas pode ser aplicado em caixas de verificao, j

que os botes de opo no possuem um terceiro estado.


FCA

Editora de Informtica

266

VISUAL BAsIc

2010

CURSO COMPLETO

ExEMPLo
EvertD C::;:
Pri.rate Sub RadioButtonl_CheckedChanged (ByVal sender
As System.Object, ByVal e As System.EventArgs) Handies
RadioButtonl CheckedChanged
.

Msgsox(Mudou o valor da opo!)


End

Sub

EveD C::S:C:;e:
Private Sub CheckBoxl_CheckStatechanged(ByVal sender As Object,
ByVal e As System.EventArgs) Handies CheckBoxl.CheckStateChanged
MsgBox(Mudou a seleco!)
End

Sub

semelhana dos controlos estudados anteriormente, estes objectos reconhecem


os eventos Iick, 1Zoub1tC1,ck, 4ouscMoze, A4oustHovtr, A/foltstE;lhr, tvIoHeLLazt, KL/Dou;1,
KeyLJp, KeyPress, Resize, Move, GotFocus e LostFoci,s.

EXERCCIOS RESOLVIDOS

6.9

Neste tpico, so estudados numa vertente terico-prtica outros tipos de


controlos, cujos mtodos, propriedades e eventos no foram abordados nos
tpicos anteriores.

SITES

6.9.1

Recorrendo a controlos do tipo LinkLabel, pretende-se embutir num


formulrio hiperligaes para os seguintes sites:
FCA (www.fca.pt);
Microsoft (www.microsoft.com);
Sapo (www.sapo.pt).
Aps o utilizador fazer dique sobre os links, os contedos devero surgir
embutidos num controlo do tipo WebBrowser. O formulrio dever ser dividido
em duas seces por intermdio de um SplitContainer. A seco esquerda conter
as hiperligaes e a seco direita servir para a apresentao das respectivas
pginas.
FCA

Editora de Informtica

WIND0wsF0RMs

267

RESOLUO

1)

Crie um novo projecto do tipo Windows Forms Application com o


nome Sites;

2)

Mantenha-se em modo de desenho com a janela de propriedades do


formulrio visvel;

3)

Altere o texto da barra de ttulo do formulrio (propriedade Text) para


Sites;

4) Faa com que o formulrio surja maximizado quando apresentado


ao utilizador, alterando a propriedade WindowState para Maximized;
5) Divida o formulrio em duas seces. Para isso, expanda a categoria
Containers presente na Toolbox e localize o tipo SplitContainer (ver
indicao na figura 6.41);
4

Pointer
FiowLayoutPanei
Groupox
Panei

* flEj

3IitCoriaine
TabControl
TableLayoutPanel

FIGURA 6.41

A categoria Containers da Toolbox

6) Arraste o SplitContainer directamente da caixa de controlos para o


interior do formulrio, de forma a obter dois painis (figura 6.42);

1Hi

Pendi

PneI2

o
FIGURA 6.42

Diviso de um formulrio em dois painis


FCA Editora de Informtica

-..,,.

VISUAL BAsIc 2010

CURSO CoMPLETo

Para alterar as dimenses dos painis, faa dique com o boto direito do rato
L-J
sobre uma das seces e escolha a opo Select SplitContainerl ou utilize as respectias
linhas a tracejado. Depois, ajuste o objecto com o auxlio dos ponteiros de
redimensionamento habituais.
7) Incorpore no painel esquerdo trs LinkLabels para os sites FCA
(LinkLabell), Microsoft (LinkLabel2) e Sapo (LinkLabel3) e altere
as respectivas propriedades Text at obter o aspecto apresentado na
figura 6.43;

R Editora de Inlorreatica
Microsott Eororatrori
Sano Motor de Peguisa
-

PneI2

FIGURA 6.43

Desenho de LinkLabels

Pode desenhar apenas um LitIkLnbLl, seleccion-lo, copi-lo para a rea de


transferncia e col-lo quantas vezes for necessrio.
8) Para a apresentao das pginas, inclua um controlo do tipo
WebBrowser no painel direito (figura 6.44);

Editora de rilc,rrntrca
N1iciouit [ororation
Sapo Motor de Pe&uia
-

FIGURA

FCA

6.44

Editora de Informtica

Desenho de um controlo do tipo WebBrowser

WINDOWS F0RMs
9)

269

Aceda ao mdulo de programao do formulrio e


programe os

eventos LinkClicked dos trs LinkLabels da seguinte forma:


Eveo LkCckad ct cre

:-<

Private Sub LinkLabell_LinkClicked(ByVal sender As


System.Object,
ByVal e As System Windows Forms LinkLabelLinkClic
kedEventArgs)
Handles LinkLabell LinkClicked
.

WebBrowserl .Navigate (www. fca .pt)


End Sub
EvetD L

kCcd dc seg-dc rk

Private Sub LinkLabel2_LinkClicked(ByVal sender


As System.Object,
ByVal e As System. Windows Forms LinkLabelLinkClic
kedEventArgs)
Handies LinkLabel2 LinkClicked
.

WebBrowserl .Navigate (www.microsoft com)


.

End Sub
vec J-kC:k

:e:r: lirk

Private Sub LinkLabel3 LinkClicked(ByVal sender


As System.Object,
ByVal e As System.Windows Forms LinkLabelLi
nkClickedEventArgs)
Handies LinkLabel3 .LinkClicked
.

WebBrowserl Navigate (www. sapo. pt)


.

End Sub

10) Programe o evento Load do formulrio com as instrues que


se
seguem:
Private Sub FormlLoad(ByVal sender As System
.Object,
ByVal e As System.EventArgs) Handies MyBase.Load
Dim largura form As Long

largura form

Me.Width

SplitContainerl PaneilMinSize

200

SplitContainerl.Panel2MinSize

largura_form

200

End Sub

ANLIsE

O evento LinkClicked ocorre sempre que o utilizador faz dique sobre


a
hiperligao. Para cada um dos links, recorreu-se ao mtodo Naviga
te do objecto
WebBrowser para actualizar o controlo de acordo com a pgina
escolhida, por
indicao do URL absoluto.
FCA

Editora de Informtlca

270

VISUAL BAsIc

2010

CURSO COMPLETO

da
Quando o formulrio surge no ecr, obtida a sua largura (valor
l numrica
propriedade Width), cujo resultado armazenado na varive
o, foi definido um
largura_form. Para que o painel esquerdo no surja cortad
funo da resoluo
tamanho mnimo de 200 pixeis (dever ajustar este valor em
fica com uma
direito
do ecr e dimenses dos controlos que utilizar). O painel
rio e a largura do
largura mnima igual diferena entre a largura do formul
til.
painel esquerdo. Desta forma, consegue-se ocupar toda a rea
TESTE

r
Ao executar, o formulrio aparece maximizado e no dever mostra
lo
do do contro
qualquer pgina. Ao fazer-se dique sobre um dos links, o conte
do do acesso
resulta
WebBrowser dever ser actualizado. A figura 6.45 mostra o
pgina da Microsoft.
Q
h

M,c,ost o,oaflion
-_-_r

If

Mcaf

2D1
0
.Office
Learn aboUt the
Iatest tools
o
o

DOWNLOADTHE BETA

OLjNj

L
IkW5

FIGURA 6.45

O exerccio resolvido 6.1 em execuo

Li,ikChr, iitLdLiIlkC1w e ActizLLi,kCohr para


o, j foi visitado e foi
alterar as cores indicativas de quando o link ainda no foi visitad

Sirva-se das propriedades

activado, respectivamente.

FCA

Editora de Informtica

WrNDows F0RMs

6.9.2

271

FICHEIROS

Pretende-se criar um programa capaz de aceder a uma determinada


pasta
contendo um nmero indeterminado de ficheiros de imagem e mostr-los (um-a
-um) num controlo do tipo PictureBox. A escolha da imagem a ser visualizada

feita com a ajuda de um controlo do tipo NumericUpDown. Quando o utiliza


dor
posiciona o cursor do rato sobre a imagem apresentada, dever surgir (em
tooltip)
o nome do ficheiro.
Os caminhos completos para todos os ficheiros sero guardados
num arrny
unidimensional.
RESOLUO

1) Crie um novo projecto do tipo Windows Forms Application com


o
nome Imagens;
2) Em design-time, altere o texto da barra de ttulo do formulrio
(propriedade Text) para Imagens;
3) Desenhe um controlo da categoria PictureBox e outro do tipo
NumericUpDown, como na figura 6.46;

Imagens

I_J

FIGuRA 6.46

Interface para o exerccio resolvido 6.2

4) Permita o auto-redimensionamento das imagens, com a alterao da


propriedade BackgroundlmageLayout da PictureBox para Stretch;
5) Para apresentar informaes adicionais aos utilizadores em estilo de
dica, recorre-se a um controlo especial o controlo ToolTip. Da caixa
dos controlos, arraste um objecto deste tipo at o visualizar na rea
inferior da estruturao do formulrio (figura 6.47);

FCA

..

L,

Editora de Informtica

272

VISUAL BAsIc 2010

CURSO COMPLETO
RadioButton

L.

..

..

aj RichTextBox
ebi TextBox
ToolTip

ToolTipi

TreeView
FIGURA

6.47

Implementao de um controlo ToolTip

Os controlos que no permitem uma interaco directa utilizador/aplicao no


parte (numa seco inferior espectica
so embutidos na rea do formulrio, mas sim
para agrupar esse Conjunto de controlos especiais).
Para
6) Por predefinio, a dica apresentada sob a forma rectangular.
aplicar o estilo balo, seleccione o controlo ToolTip e altere a sua
propriedade IsBalion para True;
ipTitie
7) Defina um ttulo para a dica, alterando a propriedade ToolT
para Imagem;
lo,
8) possvel associar um cone ao ToolTip. Escolha, a ttulo de exemp
);
iplcon
o cone de informao (valor Info na propriedade ToolT
Pode, ainda, alterar as propriedades BackC1or e F ,cCIa, para definir
.
1
cores de fundo e do tipo de letra usadas pelo controlo TsI Ti

outras

os de
9) Crie uma pasta com o nome Imagens e inclua alguns ficheir
imagem ao seu gosto;
usar outro
No exemplo apresentado, foi criado o directrio C:\lmagens. Pode
para que tudo
caminho para a pasta contendo as imagens, mas dever alterar o cdigo
funcione correctamente.

entam
10) A namespace Sytem.IO (InputlOutput) contm classes que implem
indo,
a manipulao do sistema de ficheiros do Windows, permit
ainda, obter diversas informaes acerca dos ficheiros e pastas
,
(caminho completo, tamanho, data de ltimo acesso, etc.). Assim
s,
proceda importao da System.IO atravs de uma instruo Import
como habitual:
Imports System.IO

FCA

Editora de Informtica

WrNDows F0RMs

273

11) Programe o evento ValueChanged do controlo NumericUpDownl com o


conjunto de instrues que se seguem:
Private Sub NumericUpDownl ValueChanged(ByVal sender
As Object,
ByVal e As System.EventArgs) Handies NumericUpDownl.V
alueChanged
Dim pasta_imagens As New Directorylnfo(C:\Imagens)
Dim

ficheiros()

ficheiros

As Filelnfo

pasta_imagens .GetFiles

()

Dim num_ficheiros As Long


num_ficheiros

ficheiros.Length

NumericUpDownl.Minimum

NumericUpDownl Maximum

num_ficheiros

Dim num fich escolhido As Long


num_fich_escolhido

NumerictJpDownl.Value

Dim caminho_fich_escolhido As String


caminho fich escolhido

ficheiros (num fich escolhido) .FullName

PictureBoxi Backgroundlmage
.

Image FromFile (caminho fich escolhido)


.

ToolTipi SetToolTip (PictureBoxi,


.

caminho fich escolhido)

End Sub

ANUsE

Sempre que ocorre mudana de valor (evento ValueChauged), dever ser


executada, na caixa NumericUpDownl, uma srie de instrues que faam
com
que a imagem escolhida aparea no ecr.
A varivel pasta_imagens aponta para um objecto Directorylnfo, que faz
referncia a um directrio do sistema operativo. A construo desta classe feita

por especificao do caminho completo at pasta Imagens. A varive


l
ficheiros (classe Fileinfo) consiste num array de objectos que agrupa
todos os
ficheiros existentes na pasta de imagens. O mtodo GetFiles da classe Directo
rylnfo
retoma esse conjunto de ficheiros.

limite.

Como o nmero de ficheiros partida desconhecido, declarou-se n,rai,


o
sem

FCA

Editora de Informtica

274

VISUAL BAsIc 2010

CURSO COMPLETO

A contagem de ficheiros necessria para, posteriormente, se definir o


o
limite mnimo (propriedade Minimum) e mximo (propriedade Maximum) para
da
controlo NumericlJpDownl. O nmero de ficheiros existentes obtido custa
o foi
propriedade Length do array de ficheiros. A varivel num_fich_escolhid
Foi
declarada com o objectivo de se obter o ndice de ficheiro a ser mostrado.
o
retorna
own
que
obtida atravs da propriedade Value do controlo NumericUpD
ma;
valor escolhido pelo utilizador em determinado ponto de execuo do progra
a de
como as imagens se encontram num array e como a primeira imagem
l
varive
A
rado.
ndice O, subtraiu-se uma unidade ao valor encont
can-iinho_fich_escolhido contm o caminho completo at ao ficheiro de imagem
.
escolhido (recorreu-se propriedade Fuliname do ndice de imagem actual)
do
mage)
Depois, definiu-se a imagem de fundo (propriedade Backgroundl
rmente.
controlo PictureBox, atravs do mtodo FromFile, como estudado anterio
icao do
Por fim, aplicou-se a dica atravs do mtodo SetToolTip, por especif
eto
o
controlo responsvel por mostr-la e pelo texto associado (o caminh compl
do ficheiro).
TEsTE

Execute o formulrio. Quando este surge no ecr pela primeira vez,


O.
nenhuma imagem est disponvel e o controlo NumericUpDown dever conter
medida que for alterando o nmero de imagem, os ficheiros vo sendo
apresentados, bem como o ToolTip correspondente (figura 6.48).

Imagem

:\ImagensbaIjpg

FIGURA

1
J

ik j

6.48

O exerccio 6.2 em execuo

O ndice para cada imagem atribudo seguindo uma ordenao alfabtica.

FCA

Editora de Informtica

WINDows F0RMs
6.9.3

27

DATAS

Um formulrio dever permitir a introduo de uma data a partir de duas


origens distintas:
Atravs do controlo MonthCalendar;

Atravs dc um controlo MaskedTextBox que apenas aceite datas no


formato #dd-mm-aaaa# (2 dgitos obrigatrios para o dia, 2 dgitos
obrigatrios para o ms e 4 dgitos obrigatrios para o ano, com o
hfen como separador).
Obtida uma data correcta, a mesma dever ser apresentada por extenso
num controlo do tipo DateTimePicker.
Neste exemplo em concreto, o controlo Pt?tLTinILPi*Lr no pode permitir edio.
REsoLuo
1)

Crie um novo projecto do tipo Windows Forms Application;

2)

Atribua o nome Datas ao projecto;

3)

Em design-time, altere o texto para a barra de ttulo do formulrio


(propriedade Text) para Datas;

4) Desenhe os controlos MonthCalendar, MaskedTextBox e DateTimePicker,


como na figura 6.49;
Dat.s
Maiode2Ol

1234567
8 jio 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
28 30 31 1
4
2
Hoje: D9-03-201 O

tera-leira

FIGu 6.49

9 de

Maro

de 2010

Interface para o exerccio resolvido 6.3


FCA

Editora de Informtica

-.

76

VISUAL BASIc

2010

CURSO COMPLETO

5) Uma vez que o controlo DateTirnePicker ser bloqueado para edio,


seleccione-o e altere a sua propriedade Enabled para False;
A propriedade ReadOnly no existe em controlos do tipo DateTirnePicker.
6) Defina uma mscara de introduo para o controlo MaskedTextBox de
modo a que aceite apenas datas no formato pretendido. Para aplicar a
mscara, recorra propriedade Mask e escolha Short date da caixa de
dilogo Input Mask (figura 6.50);
(nput

Mask

Select a predahried n,ask description From ttie Iist belom or select Custos- ro dehrie a cijstors
mask,
Masir Deecription
Numaric (5-digite)
Pirone numbar
Phona number no arca cade

Data Format
12345
(574) 555-0123
555-0123

Validatinq Type
1nt32
(nona)
(nona)

Short date ar-) tma (LIS)


Social security numbar
Time (European/Military)
Time (US)
Zip Code
<Custom>

12I1 1/2003 11:20


000-00-1234
23:20
11:20
98052-6399

DateTime
(nona)
DataTime
Dateflme
(nona)
(nona)

Mask:

j Use ValidabriqType

00/0010000

ereviem:

.--

OK

FIGuRA

6.50

Cansei

Seleco de uma mscara de introduo predefinida

as de
Consulte em anexo a simbologia utilizada para a criao de mscar
introduo personalizadas.

7) Confirme a criao da mscara em 0K;


Por
Pode alterar o carcter de posio atravs da propriedade ProniptCliar.
predefinio, usado o iiiidcrscors ().
8) O controlo MonthCalendar permite seleccionar mais do que uma data.
Como o objectivo apenas a seleco de uma, dever alterar a
propriedade MaxSelectionCount de 7 (valor predefinido) para 1;

FCA

Editora de Informtica

WINDows F0RMs

9)

277

Programe o evento DateChanged do controlo MonthCalendar:

Private Sub MonthCalendarl_DateChanged(ByVal sender As


System. Object, ByVal e As System. Windows Forms DateRangeEv
entArgs)
Handies MonthCalendarl .DateChanged
.

DateTimePickerl .Value

MonthCalendarl SelectionStart
.

End Sub

10) Crie o procedimento de evento TextChanged da caixa de texto com


validao (controlo MaskedTextBox) de acordo com as instrues que
se seguem:
Private Sub MaskedTextsoxl_TextChanged(ByVal sender As Object
,
ByVal e As System.EventArgs) Handies MaskedTextBoxl.Te
xtChanged
Dim dia, ms, ano As Integer
Dim texto_data As String
Dim data As Date
If MaskedTextBoxl.MaskCompleted
texto_data

True Then

MaskedTextBoxl.Text

dia

Microsoft.VisualBasic.Left(texto data,

ms

Microsoft.VisualBasic.Mid(texto data,

ano

Microsoft .VisualBasic.Right (texto data,

2)
4,

2)
4)

Try
data

dia &

& ms &

DateTimePickerl.Value

& ano

data

Catch ex As Exception
MsgBox(Data incorrecta!
ITErro!

hT

MsgBoxStyle.Critical,

End Try
End If
End Sub

ANLIsE

Este procedimento de evento ocorre sempre que o utilizador altera a data


apresentada no controlo supracitado. constitudo apenas por uma instruo
que permite obter a data seleccionada (propriedade SelectionStart) e aplic-la no
controlo DateTimePicker por redefinio da sua propriedade Value. Sempre que o
FCA

Editora de Informtica

278

VISUAL BAsIc 2010

CURSO COMPLETO

.
utilizador altera o texto contido neste controlo, ocorre o evento TextChanged
o
Aqui, recorreu-se propriedade booleana MaskCompleted para detern-iinar
momento exacto em que todos os caracteres obrigatrios se encontram formados
diferentes
no controlo MaskedTextBox. Aps esta verificao, obtiveram-se as
partes que constituem a data (dia, ms e ano) e tentou-se formar uma data vlida
ker
(bloco Try... Catch). Se a data tiver sido vlida, o controlo DateTimePic
actualizado; caso contrrio, apresentada uma mensagem de erro ao utilizador.
TEsTE

1) Execute o formulrio. De incio, dever surgir a data actual nos


controlos MonthCalendar e DateTimePicker (a caixa de texto mostrar
somente os caracteres de introduo);
2) Seleccione uma data diferente no controlo MonthCalendar. O controlo
DateTimePicker dever ser actualizado com a nova data;
3) Forme uma data incorrecta no controlo MaskedTextBox como, por
exemplo, 10-20-2008;
4) Dever aparecer a caixa de erro;
5) Forme uma data correcta na caixa texto (por exemplo, 10-02-2008);
6) O controlo DateTimePicker dever ser devidamente actualizado.
TIPOS DE LETRA

6.9.4

Pretende-se criar um formulrio que permita a alterao do tipo de letra,


tamanho e estilo para o texto contido numa RichTextBox. Para isso, teremos trs
controlos do tipo ComboBox para cada tipo de formatao.
Os tipos de letra possveis so:
@

Anal;
Times New Roman;

Verdana.

Os tamanhos a utilizar devero ser, alternativamente:

FCA

10;

12;

Editora de Informtica

______

WINoows F0RMs

279

14.

Os estilos disponveis so:


Normal;
@

Negrito;
Itlico;
Sublinhado.

O formato predefinido Anal, tamanho 10, estilo normal e deve ser aplicado
aps a seleco do texto a ser tormatado e a alterao de uma das opes disponveis nos
controlos Con,bo&x. Caso o utilizador no seleccione qualquer poro de texto, o texto
dever surgir com as opes que estiverem seleccionadas no momento.

REsoLuO

1)

Crie um novo projecto do tipo Windows Forms Application com o


nome Formatos;

2)

Altere o texto da barra de ttulo do formulrio (propriedade Text) para


Formatos;

3) Desenhe o controlo RichTextBox, as trs ComboBoxes e as trs Labeis


informativas (defina as respectivas propriedades Text dos rtulos,
como na figura 6.51);

Fimtos

To Je Llr
1 -mnhc
E,iIo

FIGURA 6.51

Interface do exerccio resolvido 6.4

4) Altere o estilo (propriedade DropDownStyle) dos trs controlos da


categoria ComboBox para DropDownList (o utilizador pode seleccionar
FCA

Editora de Informtica

280

VISUAL BASIc 2010

CURSO CoMPLETO

apenas uma opo por caixa e no pode aplicar novos tipos de letra,
tamanhos ou estilos por edio de texto);
5) O evento Load do formulrio responsvel pelo carregamento das
caixas de combinao e pela aplicao do formato predefinido:
Pri-vate Sub Forml_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handies MyBase.Load

ComboBoxi. Items .Add ( Anal)


ComboBoxi Items .Add ( Times New Roman)
.

CornboBoxl Items .Add ( Verdana)


.

ComboBoxl.Text

Anal

Tipo de et :dc

C3-c,e-to c:s tanHs


ComboBox2 Items .Add( 10)
.

ComboBox2 Items .Add( 12)


.

ComboBox2 Items .Add (14)


.

ComboBox2.Text

10

rnEc

D9

dos estil::

ComboBox3

Items .Add (Normal)

ComboBox3

Items .Add(Negrito)

ComboBox3 Items .Add (Itlico)


.

ComboBox3

Items .Add (Sublinhado)

ComboBox3 Text
.

Normal

do

End Sub

6) Como a aplicao de formatos ser realizada mediante a alterao de


valores em controlos diferentes, faz sentido criar-se um procedimento
Sub de forma a evitar a repetio exaustiva de cdigo:
Sub

Formatar()

-:io do tipo

t-a

Dim tipo As String

tipo

FCA

ComboBoxl.Text

Editora de Informtica

ecciondo

WIND0wsF0RMs
Ver
Dim

do

tamani-io As Integer

tamanho

Microsoft .VisualBasic.Val (ComboBox2 .Text)

Ver:;o
Dim

281

o s

estilo As FontStyle

Select Case ComboBox3.Text


Case TTNormalTl
estilo

FontStyle.Regular

Case Negrito

estilo

FontStyle.Bold

Case Itlico
estilo
Case

FontStyle.Italic

Sublinhado

estilo

FontStyle.Underline

End Select

ACaD
RichTextBoxl.SelectionFont

New Font(tipo,

tamanho,

estilo)

End Sub

7) Os procedimentos de evento SelectionlndexChanged dos


CombBox so exactamente iguais:

trs

controlos

C&>a oara o ti:c co


Private Sub ComboBoxl SelectedlndexChanged(ByVal sender As Object,
ByVal e As System.EventArgs)
Handles ComboBoxl SelectedlndexChanged
If RichTextBoxl.SelectionLength

>

O Then Formatar()

End Sub

C;: jra
Private Sub ComboBox2 SelectedlndexChanged(ByVal sender As Object,
ByVal e As System.EventArgs)
Handies ComboBox2 SelectedlndexChanged
If RichTextBoxl.SelectionLength

>

O Then Formatar()

End Sub

FCA

Editora de Informtica

282

VISUAL BASIC 2010

Caxa DrE

CURSO CoMPLETo

esc

,
Private Sub ComboBox3_SelectedlndexChanged(ByVal sender As Object
tArgs)
System.Even
As
e
ByVal
Haridies ComboBox3 Selectedlndexchanged
.

If RichTextBoxl.SelectionLength

>

O Then Formatar()

End Sub

8) Por fim, programe o evento TextChanged da RichTextBox:


,
Private Sub RichTextBoxl_TextChanged(ByVal sender As Object
hanged
ByVal e As System.EventArgs) Handies RichTextBoxl.TextC

Formatar

()

End Sub

ANUsE

Como as caixas de combinao produzem valores do tipo String,


recorreu-se funo Vai, que capaz de converter a cadeia de caracteres obtida
na ComboBox2 para um valor numrico inteiro correspondente ao tamanho do
tipo de letra a ser aplicado. Foi tambm declarada a varivel estilo como sendo
do tipo FontStyie, que representa um dos estilos possveis de aplicar (negrito,
itlico, etc.); a converso do texto proveniente da ComboBox3 foi feita custa de
um bloco Select Case... End Seiect. A aplicao de formatos ao texto actualmente
seleccionado feita por redefinio da propriedade SeiectionFont. Quando ocorre
alterao de texto, deve ser aplicado o formato actual (ditado pelas trs caixas de
combinao). Por outro lado, quando uma poro de texto est seleccionada e o
utilizador altera um dos valores de qualquer uma das Combos, a alterao de
formato tambm deve ser efectuada. Por esse motivo que o evento TextChanged
da RichTextBox efectua sempre uma chamada Sub Formatar, enquanto que os
diversos eventos SeiectionlndexChanged das caixas de combinao apenas aplicam
novos formatos quando algo est seleccionado (avaliao da propriedade
SeiectionLength).
TESTE

Execute o formulrio e simule os dois modos de aplicao de formatos


(com e sem seleco de texto). A figura 6.52 apresenta duas das combinaes
possveis.

FCA

Editora de Informtica

WINDows F0RMs
G

283

Formatos

ietrredefinido.
Times NewRoman, 12,
negrito

Tipo de Leha:
Tamanho:
Estilo:

FIGURA 6.52

12
Negrito

O exerccio 6.4 em execuo

As funcionalidades dos controlos TreeView, ListVicw e DnfaGridViezt sero


aprofundadas no Captulo 7.

REsuMo
Para apresentar texto informativo, utilizam-se controlos da categoria LA BEL.
Para incutir um estilo web s operaes que os utilizadores podem levar a cabo na
aplicao, recorre-se a controlos do tipo L INK LA BEL.

Os controlos do tipo TExTB ox obtm informaes do utilizador sob a forma de


texto.
Os controlos do tipo MAsKEDTExTB0x podem ser configurados de forma a
validarem a informao introduzida, antes do programa poder levar a cabo
determinada tarefa.
Quando pretendemos apresentar texto com diversos formatos de cor e de tipo de
letra, recorremos s caixas de texto RIcHTExTBOx.
Os controlos do tipo RADIOB 1JTTON so ideais para um nmero reduzido de
opes. Este tipo de controlos apenas pode conter dois valores (True ou False).
A categoria de controlo CHE CKB ox relevante quando se pretende obter uma
resposta do tipo sim ou no por parte do utilizador.
Os controlos CoMBoBox e LIsTBox so utilizados para listar um conjunto de
opes em nmero indeterminado.

FCA

Editora de Informtica

284

VISUAL BAsIc

2010

CURSO CoMPLETo

Os controlos do tipo B lJTTON executam determinadas tarefas especficas e so


normalmente responsveis por invocar procedimentos.
Os controlos M0NTHCALENDAR e DATETIMEPICKER so frequentemente
utilizados na escolha de datas e horas.
Os controlos do tipo CHEcKEDLIsTB0x possuem todas as funcionalidades das
ListBoxes, mas incluem uma caixa de verificao por cada item de lista.
O controlo Lis TVIEW apresenta uma lista de itens ao utilizador, porm,
implementa uma grande variedade de estilos e funcionalidades extra.
As TREEVJEwS apresentam a informao hierarquizada e agrupada num
nmero indefinido de ns e subns extensveis.
O controlo NUMERIcLJPD0wN ideal para o preenchimento de campos por
incremento ou decrscimo de valores numricos.
Os controlos do tipo PIcTUREB0x incorporam imagens atravs de ficheiros
grficos.
O controlo WEBBR0wsER simula um navegador de Jntemet, permitindo a
visualizao de pginas web.
O PR0GRES5BAR um controlo ideal para informar o utilizador acerca da
evoluo de um determinado processo enquanto o mesmo est a ser executado.
A associao de texto informativo adicional em estilo de dica a formulrios e/ou
controlos feita custa dos controlos TooLTiP.
Para adicionar um cone barra de notificao do Windows que represente a
aplicao, recorre-se ao controlo No TIF YIC ON.

PERGuNTAs DE REVISO

1)

possvel justificar o texto constante de um rtulo?


u

Sim.

No.

Depende do tipo de letra usado.


Depende do tamanho do tipo de letra usado.

FCA

Depende das dimenses do controlo.

Editora de Informtica

WINDows F0RMs

A propriedade ImageAlign permite redimensionar imagens.

2)

ci

A afirmao verdadeira.

ci

A afirmao falsa.

Um controlo da categoria ComboBox:

3)

ci

Pode apresentar apenas barras de deslocamento verticais.

ci

Pode apresentar apenas barras de deslocamento horizontais.

ci

Pode apresentar barras de deslocamento horizontais e verticais.


No pode apresentar barras de deslocamento.

ci

4)

Qual(is) do(s) seguinte(s) controlos(s) no possui(em) a propriedade


Text?
ci

Label.

ci

Button.

ci

Form.

ci

DateTimePicker.

ci

MonthCalendar.

ci

TextBox.

ci

ComboBox.

ci

RichTextBox.

ci

ListBox.

5) O terceiro estado de uma caixa de verificao retorna:


ci

Um valor lgico.

ci

Um valor numrico.

ci

Um valor de outro tipo de dados.


FCA

Editora de

Informtica

VisuAL BASIC 2010

CURSO COMPLETO

6) Numa TextBox, qual a propriedade que possibilita ou impede que o


utilizador altere o texto nela contido?
o

Allow.

Locked.

ReadOnly.

7) O mtodo Focus surte efeito em controlos ReadOnly?


o

Sim.

No.

8) A propriedade Items de uma ComboBox retorna:


o Uma cadeia alfanumrica de caracteres.
o

Um array.

Um objecto.

Nenhuma das afirmaes anteriores correcta.

9) A classe Directorylnfo encontra-se definida na namespace:


o

Microsoft.VisualBasic.

System.IO.

System.Windows.

Nenhuma das afirmaes anteriores correcta.

or ter
10) Qual o evento que ocorre imediatamente aps o utilizad
mudado o valor da opo num RadioButton?

FCA

StateChanged.

CheckedChanged.

Editora de Informtica

WrNDows F0RMs

287

EXERCCIOS PROPOSTOS

1)

Considere o exerccio resolvido 6.1 (Sites). Altere-o de forma que o


utilizador, ao passar o cursor do rato sobre determinado link, este
aparea em fundo laranja (efeito highlight). Quando o utilizador move
o cursor do rato para outra zona, a cor de fundo do controlo dever
desaparecer;

2)

Modifique o formulrio criado no exerccio anterior, substituindo os


trs controlos LinkLabel por rtulos normais (controlos Label);

O aspecto grfico dever permanecer exactamente igual (cores dos li;ik,


sublinhados e efeitos Iiih1iIit).
3)

Considere o exerccio resolvido 6.2 (Ficheiros). O que acontece


quando inclui um ficheiro que no do tipo imagem, logo, incapaz de
ser mostrado como uma imagem no controlo PictureBox? Simule o
erro, copiando para a pasta Imagens alguns ficheiros de outros tipos,
tais como documentos do Microsoft Office e de texto e altere o cdigo
para que o programa continue a apresentar imagens;

Utilize um bloco Tri


... Cu,tcii... End Tri.
1
4)

Resolva o exerccio anterior apresentando os nomes dos ficheiros em


vez dos valores numricos;

Substitua o

5)

controlo

1
iJ,ln,cr

flm1
uLJ
,;

por uma ListRr.

Considere o exerccio resolvido 6.3 (Datas). Substitua o controlo


MaskedTextBox por um controlo TextBox (caixa de texto simples), mas
que implemente todas as funcionalidades do controlo substitudo (
excepo da visualizao do carcter de introduo). Os separadores
(hfenes) devero surgir automaticamente em funo da posio
actual do cursor do teclado e do nmero de dgitos actualmente
formados na caixa;

Recorra ao evento KeyPress da TextBox para ir verificando (carcter-a-carcter) o

tipo de informao que o utilizador vai introduzindo.

FCA

Editora de Irformtica

VISUAL BASIc 2010

288

CURSO C0MPLEr0

6) Considere o exerccio resolvido 6.4 (Tipos de Letra). Altere o cdigo


e a interface para que o utilizador possa aplicar mltiplos estilos
(exemplos: itlico + sublinhado, sublinhado + negrito, itlico +
sublinhado + negrito);
Substitua a caixa de combinao de estilos por caixas de verificao.
7) Desenhe um formulrio capaz de alterar a cor de fundo de um
controlo Label, recorrendo ao sistema de cores RGB e a trs controlos
NumericLJpDown com valores compreendidos entre O e 255;
8) Crie um formulrio que funcione como uma mquina calculadora de
bolso, com as operaes bsicas de adio, subtraco, multiplicao e
diviso. Utilize o controlo Button para incluir os algarismos e os
smbolos de operaes e o controlo TextBox como visor;
9) Construa um procedimento responsvel por desenhar num novo
formulrio, previamente criado, um tabuleiro ao estilo xadrez com
um total de 40 casas (20 casas brancas e 20 casas pretas). Utilize
controlos do tipo Label e tenha em ateno que a incluso dos 40
rtulos no formulrio dever ser feita, nica e exclusivamente, atravs
de programao;
Recorra ao operador Ntw para construir os controlos LnlkI em srie.
10) Altere o exerccio anterior de modo a que surjam 10 tabuleiros no
ecr.

FCA

Editora de Informtica

You might also like