Escolar Documentos
Profissional Documentos
Cultura Documentos
USANDO CONTROLES
CONVENES DE NOMES PARA CONTROLES
sempre bom estabelecer convenes de nomes para objetos do Visual Basic, sob risco
de no se saber, no meio de um projeto mais complicado, qual o tipo de um objeto cujo nome ,
por exemplo, dados. A tabela 3 a seguir apresenta alguns exemplos para os controles mais
comuns.
Tabela 3
Objeto. Setfocus
O Foco uma propriedade comum a todos os controles do VB. Apenas um objeto pode
ter o foco de cada vez e apenas objetos visveis podem receber o foco. Geralmente, o objeto que
tem o foco diferenciado dos outros por uma legenda ou ttulo realado. Em tempo de execuo, o
usurio define o foco clicando sobre os objetos ou usando a tecla TAB. O mtodo Setfocus
tambm define o foco para um objeto em tempo de execuo, mas de maneira automtica. Se
ocorrer uma tentativa de definir o foco em um objeto invisvel, um erro de execuo ser gerado.
Inicie um novo projeto e desenhe, no formulrio, uma Caixa de Texto e quatro botes de
comando, conforme ilustrado na figura 8 a seguir.
Tabela 4
Note que a caixa de textos suporta textos com vrias linhas, por causa da propriedade
Multiline e tem uma barra de paginao vertical. Esta barra de paginao no um objeto
adicional, mas faz parte da caixa de textos. O VB cuida de toda a automao necessria para a
rolagem do texto. A caracterstica de edio em linhas mltiplas seria perdida caso definssemos
tambm uma barra de paginao horizontal para a caixa. por esta razo que estamos usando
apenas uma barra de paginao vertical.
c) Escrevendo o cdigo
Neste aplicativo iremos precisar de uma varivel Public 1, ou seja, uma varivel que seja
vista por todas os procedimentos de todos os objetos do aplicativo. Estas variveis s podem ser
declaradas dentro de mdulos. Portanto, a primeira coisa que devemos fazer inserir um mdulo,
o que pode ser feito no menu Insert|Module. A seguir, escreva a seguinte linha dentro da seo
General - Declarations:
O primeiro boto a ser implementado o Apagar. Este boto apagar todo o texto da
caixa de texto, indiscriminadamente. Tudo o que temos a fazer anular a propriedade text da
caixa de textos. Para tanto, d dois cliques sobre o boto apagar e escreva o seguinte cdigo:
Aps apagar o texto, o que feito na primeira linha, devemos jogar o foco novamente na
caixa de textos, pois aps clicar o boto Apagar o foco ficou com ele. Seria desagradvel se o
usurio tivesse que clicar na caixa de textos toda vez que usasse o boto Apagar. O computador
no se importa de prestar este pequeno favor.
1 Variveis Public, at a verso 3.0, eram denominadas Globals. Esta ltima palavra ainda aceita nas
declaraes, mas est definitivamente fora de moda.
Os procedimentos para os botes Cortar e Colar requerem um raciocnio adicional. O
que desejamos fazer cortar um trecho de texto, provavelmente, mas no necessariamente, para
ser colado em algum outro lugar. Logo, ser necessrio armazenar o texto recortado em alguma
varivel temporria, o que ser conseguido com a varivel CortaTexto. Clique sobre o boto
Cortar e escreva o seguinte trecho:
Clique o formulrio duas vezes, em tempo de projeto, e procure o evento Resize na caixa
Drop-Down com o nome Proc:. Nesta procedure, escreva o cdigo abaixo.
Estudando a procedure de Resize com cuidado voc ver que estamos simplesmente
alterando valores de propriedades dos controles (em VB isto feito com muito mais freqncia do
que voc pode imaginar). As primeiras quatro linhas ajustam a caixa de textos propriamente dita,
de forma que sobre espao em baixo para os botes ( por isso que a altura do boto Cortar -
cmdCortar.Height - descontada). As linhas seguintes ajustam a posio de todos os botes,
atuando sobre as propriedades Left e Top.
Como exerccio, fica a tarefa de descobrir qual a finalidade do comando If ... Then.
KeyAscii o cdigo ASCII da tecla pressionada. Controle o controle do Visual Basic que
usamos para capturar o evento KeyPress.
KeyCode o cdigo ANSI da tecla acionada. Shift um campo de bits que corresponde ao
estado das teclas Shift, Ctrl e Alt no momento do evento, de acordo com a tabela 5 a seguir.
Tabela 5
Dois Rtulos;
Dois Botes de Opo;
Um Timer.
Um rtulo, ou label, basicamente um controle no editvel para sada de dados. Deve ser
usado em substituio caixa de texto sempre que no for necessrio que o usurio edite o
texto. Estaremos usando dois rtulos neste projeto: um deles servir de display para mostrar as
horas. Este controle deve ser um rtulo, pois no queremos, evidentemente, que o usurio edite a
hora atual !; o outro rtulo ter uma finalidade mais prosaica, servindo apenas para indicar a funo
da caixa de textos. Rtulos constituem, portanto, um maneira fcil de se imprimir textos no
formulrio. Para modificar o texto em tempo de execuo, mude a propriedade caption (rtulos
no tm a propriedade text).
O controle de timer tem a propriedade Interval ajustada para 1000 ms, ou 1 s, pois
desejamos que a hora seja mostrada no display a intervalos de 1 segundo.
Tabela 6
Tabela 6 (contiuao)
Para comear a insero do cdigo de optOpo, clique duas vezes em um dos botes de
opo e digite o seguinte trecho:
AlarmOn uma varivel Public booleana que definir se o som de alarme deve estar ligado
ou desligado. Para declarar esta varivel, insira um mdulo de programao (menu Insert|Module)
e digite a seguinte linha na seo General-Declarations:
O prximo cdigo pertence ao objeto Timer. Devemos simplesmente mostrar a hora atual,
com auxlio da funo Time$. Alm disso, caso a varivel AlarmOn seja verdadeira, devemos soar
um bip, mostrando que o alarme est ativado. Naturalmente, esta ltima condio s deve ocorrer
se a hora ajustada em txtAjuste for maior do que a hora atual, conforme mostra a rotina abaixo.
O som gerado pelo alarme no muito emocionante e poderamos pensar em tocar uma
msica de qualquer espcie (que tal aquela musiquinha do gs ?). Linguagens convencionais
escritas para DOS resolviam este problema fornecendo funes que faziam soar uma nota musical
de freqncia escolhida pelo programador. Trabalhando com a freqncia e durao de cada nota
era possvel compor trechos de musicas (nada de acordes, portanto). O VB trata o assunto de
maneira muito mais eficiente e moderna, executando arquivos .wav, desde que se tenha uma placa
de som instalada. Entretanto arquivos .wav so assunto da ferramenta multimdia do VB e ficaro
para mais tarde. Por enquanto ficamos apenas com o bip, por mais montono que seja.
O Visual Basic oferece mais de uma soluo para este problema da densidade grfica,
tais como controles giratrios (spin buttons), caixas drop-down, pginas tab-strip e outros. A
melhor ferramenta, contudo, uma boa programao grfica dos formulrios.
O Visual Basic no exige que voc idente o cdigo e compilar trechos de cdigo
identados ou no exatamente da mesma maneira. Ainda assim, voc descobrir que a identao
uma ferramenta poderosa na documentao de programas. Por exemplo, compare os seguintes
trechos.
2 Se voc um micreiro, talvez fique espantado em saber que os mainframes ainda existem e que, mais incrvel ainda,
ainda existem programadores que s programam para mainframes. Eles esto tendo muito trabalho atualmente para
minimizar os estragos futuros do bug milnio, quando todos os computadores, na virada do sculo, mudaro as datas de
99 para 00 (2000).
USAR NOMES LONGOS
Outra prtica desaconselhvel usar nomes longos para variveis e constantes. Alguns
desenvolvedores, em vez de chamar um simples boto de cmdOK, preferem escrever
cmdOKformulrioFechaArquivoSemSalvar. Esta prtica totalmente desnecessria e dificulta
enormemente a leitura (se bem que eu tenha a impresso que a inteno destes programadores
justamente esta.).
PROCEDIMENTOS LONGOS