Iniciando no Visual Basic

Para demonstrar como é fácil começar a trabalhar com o Visual Basic e quão rapidamente você poderá aprender a criar aplicativos úteis, este capítulo o conduzirá a um verdadeiro mergulho de cabeça, fazendo-o escrever um programa simples. Indubitavelmente, a experimentação com o Visual Basic é a melhor forma de obter uma visão das ferramentas com as quais você trabalhará, e isso lhe dará um lampejo do potencial excitante do Visual Basic. Após esta pequena experiência prática, os capítulos seguintes oferecerão uma visão mais detalhada dos "comos e porquês" do Visual Basic.

Iniciando o Visual Basic

  1. Clique Iniciar na barra de tarefas
  2. Selecionar Programas, e então Visual Basic 5.0.

–ou–

Clique Iniciar na barra de tarefas.

Selecionar Programas.

Use o Explorer do Windows para achar o arquivo executável Visual Basic (VB5.exe).

3. Clique duas vezes o ícone Visual Basic.

Você também pode criar um atalho para o Visual Basic, clicar duas vezes no atalho. Quando você inicia o Visual Basic, você vê as janelas do ambiente de desenvolvimento integrado, como mostrado em Figura 1.1.

Figura 1.1 O ambiente de desenvolvimento integrado do Visual Basic

Explorando o Vídeo

Após você iniciar o Visual Basic, um conjunto de janelas aparecerá no seu vídeo, conforme ilustrado pela Figura 1.1. Na parte superior da janela principal estão menus padronizados File e Edit, os outros menus do Visual Basic, bem como a barra de ferramentas. Na parte central do vídeo, encontra-se a janela de form, uma janela grande e vazia intitulada Form1. Diretamente à esquerda, vê-se a janela de palhetas chamada caixa de ferramentas. À direita da janela de form, situa-se a janela de propriedades, chamada Properties, e acima dela aparece a janela de exploração do projeto, intitulada Project. Uma pequena janela com uma representação do vídeo em miniatura também é vista. Trata-se da janela de Layout de Formulário.

Eu quase posso escutar sua reclamação: "Isso pode ser complicado". Realmente, pode ser complicado. Entretanto, a chave para gerenciamento de complexidade é a organização, e o ambiente do Visual Basic foi projetado para que você se mantenha organizado. Vamos dar uma olhada em cada uma das janelas

A Janela Principal

A janela principal contém a barra de menu, com onze menus drop-down. Um dos mais importantes, especialmente enquanto você estiver aprendendo o Visual Basic, é o menu Help. A partir desse menu, você poderá acessar uma vasta documentação sobre o Visual Basic na forma de manuais (Books Online), encontrar informações sobre como contatar o serviço de suporte a produtos da Microsoft e explorar o sistema de ajuda online do Visual Basic.

Por exemplo, ao selecionar a opção Microsoft Visual Basic Help Topics do menu Help, você verá uma janela com divisões em forma de fichas de arquivo. Uma divisão apresenta o conteúdo do sistema de ajuda na forma de livros, que ao serem abertos exibem novas subdivisões ou tópicos de ajuda como seções de um livro. Ao dar um clique duplo num dos tópicos ou selecioná-lo e clicar no botão Exibir, uma janela contendo o tópico lhe será apresentada. Se preferir procurar por um tópico dentro da ordem alfabética de tópicos, escolha a divisão Índice. Caso tenha uma palavra que não corresponde a nenhum tópico presente no Índice, use a divisão Localizar.

Adicionalmente, o sistema de ajuda fornece informações associadas ao contexto. Se você precisar saber mais sobre um botão, uma caixa de diálogo, uma janela ou qualquer outro elemento enquanto estiver trabalhando com o Visual Basic, basta pressionar a tecla F1 quando o elemento em questão estiver destacado, e o sistema de ajuda exibirá imediatamente as informações pertinentes.

A janela principal ainda contém a barra de ferramentas. Os botões da barra de ferramentas mostrados na Figura 1.2 são atalhos para comandos usados mais freqüentemente. Por exemplo, em vez de abrir o menu File e selecionar a opção Open Project, você pode simplesmente dar um clique no botão Abrir Projeto.

Figura 1.2 A barra de ferramentas do Visual Basic.

 

A Janela de Explorador do Projeto

A janela de Explorador do Projeto contém uma árvore de pastas com todos os arquivos necessários para executar o programa Visual Basic que você está criando. Ainda que você não tenha começado, já aparece uma entrada na janela de Explorador do Projeto, como foi visto na Figura 1.1. Esta primeira entrada é a pasta Forms com o arquivo Form1.frm; o rótulo do arquivo (Form1) indica que ele se encontra associado à janela de form, chamada Form1. Se você salvar o form em disco, sem alterar seu nome, o Visual Basic usará o nome de arquivo default: Form1.frm. Um aplicativo pode conter vários forms, sendo cada um deles armazenado em um arquivo separado. (O armazenamento em arquivos distintos torna possível o compartilhamento de um form com vários aplicativos.)

A janela de Explorador do Projeto também contém três botões: View Code, View Object e Toggle Folders. Por default, o Visual Basic exibe na janela de form o form correspondente à entrada que for selecionada na janela de Explorador de Projeto. Essa visão lhe permite projetar a interação que o seu aplicativo terá com o usuário final - a parte do aplicativo que o usuário vê e com a qual interage. Se você der um clique no botão View Code da janela de Explorador do Projeto, o código para o arquivo selecionado será exibido em uma janela diferente. O código refere-se às instruções em linguagem de programação.

O processo de programação é chamado de codificação. Quando você cria um programa em Visual Basic, o seu trabalho se divide entre o projeto do Form, que eventualmente será visto pelo usuário, e a codificação, que controlará as operações do programa. Para mover-se da janela de código para a janela de form, basta dar um clique sobre o form, ou então acionar o botão View Form da janela de Explorador do Projeto.

A Janela de Form e a Caixa de Ferramentas

Um form é uma área de exibição que corresponde à janela que você verá quando o seu aplicativo estiver sendo processado. Quando você inicia um novo projeto, o Visual Basic cria um form vazio com o titulo Form1. Enquanto você desenvolve seu aplicativo, o form serve como uma prancheta, sobre a qual são desenhadas as várias partes do aplicativo. Os componentes do aplicativo que você coloca no form são chamados objetos ou controles, tais como caixas de imagens, botões de opções e barras de deslocamento. (O Visual Basic considera o próprio form como um objeto.)

Figura 1.3 A caixa de ferramentas do Visual Basic.

Os controles são criados a partir da palheta caixa de ferramentas, que é apresentada na Figura 1.3. Cada controle é representado por uma ferramenta ou ícone da caixa de ferramentas. A maioria dos controles vistos na Figura 1.3 é intrínseca ao Visual Basic. Entretanto, essa caixa de ferramentas pode ser estendida de forma a incluir ferramentas adicionais. Clicando no submenu Components do menu Project, lhe será apresentada uma janela com muitos outros controles que podem ser adicionados à caixa de ferramentas. Basta marcá-los como selecionados e dar um Ok para que eles apareçam na caixa de ferramentas.

Você constrói a aparência de seu programa escolhendo controles da caixa de ferramentas e colocando-os sobre um form. Enquanto você está desenvolvendo um aplicativo, o Visual Basic opera de forma diferente de quando o aplicativo está sendo processado. Durante a fase de desenvolvimento, o Visual Basic provê ferramentas para auxiliá-lo a criar objetos de exibição e escrever seu programa. Você interage com os objetos colocados em um form, alterando seu tamanho, sua posição e outros atributos. Porém, durante a fase de desenvolvimento, os objetos estarão sempre inativos e o código de seu programa não será executado - por exemplo, caso um objeto barra de deslocamento seja colocado em um form, você poderá alterar o seu tamanho e sua posição, mas ele não poderá ser usado para deslocar coisa alguma.

Ao iniciar a fase de processamento ou execução, o Visual Basic remove as ferramentas de desenvolvimento. O layout da janela é fixado, os objetos na tela podem então ser ativados e o usuário pode interagir com a exibição, como foi planejado no aplicativo. Nesse momento, o aplicativo ganha espaço e o Visual Basic executa as instruções de seu programa. (Na barra de titulo da janela principal, o Visual Basic identifica quando você está em fase de desenvolvimento ou de execução.)

A Janela de Propriedades

As propriedades do Visual Basic são mecanismos formais para descrição dos

atributos de um objeto. No mundo real, você pode perguntar: "Qual a cor daquele carro ?". Em Visual Basic, essa pergunta deveria ser: "Qual o valor da propriedade cor daquele carro ?" Naturalmente, a resposta em ambos os casos poderia ser "azul". Marca é outra propriedade típica de carros. Valores esperados, ou configurações, para a propriedade marca poderiam incluir Ford, Volkswagen e GM.

Cada objeto do Visual Basic tem propriedades específicas, cuja configuração controla a aparência e o comportamento do objeto no aplicativo. Algumas propriedades são restritas a um conjunto prefixado de valores. Por exemplo, a propriedade Visible (visível) de um objeto apenas pode assumir o valor True ou False (verdadeiro ou falso). Outras propriedades, como Caption (título) de uma janela de form, podem assumir qualquer valor. É importante notar que não é necessário informar o valor para todas as propriedades de todos os objetos; os valores atribuídos automaticamente para muitas propriedades, via de regra, são perfeitamente aceitáveis.

Ainda que muitas propriedades possam ser alteradas, tanto em tempo de desenvolvimento quanto em tempo de execução, a janela de propriedades, mostrada na Figura 1.4, estará ativa apenas na fase de desenvolvimento. Você pode ativar a janela de propriedades de várias formas: dando um clique nela, pressionado F4 ou, ainda, dando um clique no botão Janela de Propriedades na barra de ferramentas.

Figura 1.4 A janela de propriedades.

A caixa de lista drop-down no topo da janela de propriedades é chamada de caixa de objetos. Ela exibe o nome de todos os objetos contidos em um aplicativo, bem como o tipo de cada objeto. Inicialmente, a caixa de objeto contém apenas informações a respeito do objeto form, porém, à medida que você adiciona outros controles ao form, o Visual Basic incorpora esses objetos à lista drop-down da caixa de objetos.

Abaixo da caixa de objetos, você encontrará a lista de propriedades. A lista de propriedades permite percorrer todas as propriedades do objeto mostrado na caixa de objetos e ver os valores de cada propriedade. Dividida em duas colunas, uma para o nome da propriedade (esquerda) e outra para os valores das propriedades (direita), a lista de propriedades é onde você modificará as características dos objetos. Para modificar uma propriedade, você deve digitar o novo valor na área à direita do nome da propriedade na lista de propriedades ou escolher a nova configuração a partir de uma lista drop-down contendo as possíveis configurações para a propriedade em questão.

Para demonstrar como usar essas várias janelas do Visual Basic para criar um aplicativo, vamos desenvolver seu primeiro projeto.

Criando a Interação com o Usuário

Como primeiro projeto, vamos criar um programa que simplesmente meça o tempo decorrido, semelhante ao que faz um cronômetro. Um cronômetro tem um botão onde se dá um clique para iniciar a contagem do tempo, outro botão que permite parar essa contagem e um mostrador no qual se vê o tempo decorrido. Você pode usar esse modelo básico para seu programa. Em Visual Basic, um form servirá como o mostrador do relógio e para o posicionamento dos botões de início e parada. Para iniciar o desenvolvimento de seu aplicativo, você terá de examinar e modificar algumas das propriedades do form.

Configurando as Propriedades do Form

Quando o aplicativo estiver sendo processado, o form será apresentado em uma janela padronizada para aplicativos. Se você desejar que essa janela se pareça com aquelas apresentadas por outros aplicativos escritos para Windows, certos atributos devem ser semelhantes. Por exemplo, um atributo comum a todos os aplicativos Windows é o nome do aplicativo aparecer como um título na barra de título do form. Em Visual Basic, a maioria desses atributos é controlada por meio das propriedades dos objetos.

Para começar a configurar as propriedades do form, selecione-o como objeto atual, dando um clique em qualquer lugar da janela intitulada Form1. Agora, olhe para a janela de propriedades, onde Form1 é exibido na caixa de objetos. Para alterar o título do form, dê um clique na propriedade Caption na lista de propriedades. Digite Cronômetro como novo título. À medida que você digita, o novo título é exibido na barra de título da janela de form.

Quando uma propriedade somente puder assumir determinados valores, no local de entrada de valores aparece uma caixa de lista drop-down e não um campo para entrada de dados. Por exemplo, percorra a lista de propriedades e selecione a propriedade Visible. A seta para baixo, colocada no lado direito do campo de valores, agora se torna habilitada, indicando que as configurações para a propriedade Visible estarão restritas às que serão exibidas na lista drop-down. Se você der um clique no botão de seta para baixo, uma lista aparecerá abaixo para mostrar as configurações True e False, conforme mostrado na Figura 1.5. Assegure-se de que a propriedade Visible seja configurada como True.

Figura 1.5 Configurando a propriedade Visible do Form.

Outra propriedade relacionada com a aparência do form é BorderStyle (estilo da borda), que controla quando o usuário pode ou não redimensionar a janela de exibição durante a execução do aplicativo. Uma vez que o aplicativo Cronômetro deverá ter aparência fixa, a sua janela não poderá ser redimensionada. Selecione a propriedade BorderStyle da lista de propriedades e então configure-a para 3 - Fixed Dialog, selecionando-a a partir da lista drop-down à direita da propriedade. (Esta opção indica que a janela terá uma borda não-redimensionável, sem botões para minimização ou maximização.)

A Propriedade Name

Todo objeto Visual Basic tem uma propriedade chamada Name (nome). Ao configurar essa propriedade, você dá ao objeto uma identidade por meio da qual é possível referenciá-lo dentro do programa. Na janela de form, você pode acessar um objeto dando um clique nele. Na porção de código do programa, é preciso referenciar-se ao objeto por meio do nome que for dado a ele mediante a propriedade Name. (Note que as propriedades Name e Caption são diferentes. O nome de um objeto é sua identificação para efeito das instruções do programa; o título (Caption) é aquilo que o usuário vê na tela - um texto identificador que é exibido na janela do aplicativo.)

Na lista de propriedades, selecione a propriedade Name. Seu valor default, mostrado na lista de propriedades, é Form1. Edite a propriedade Name do seu form, digitando o texto MeuForm no campo de valor.

Nota: Quando você altera o nome de um form, o Visual Basic reflete essa modificação na lista de arquivos exibidos na janela de Explorador do Projeto. Lembre-se de que a definição de cada form é armazenada em um arquivo separado. Quando o aplicativo é salvo, você pode escolher o nome de arquivo que deseja para seu form, porém o Visual Basic sugerirá um nome de arquivo baseado no nome do form.

Adicionando Objetos de Exibição

Retornemos ao projeto do form para criar os botões que iniciarão e pararão o cronômetro:

1. Dê um clique na ferramenta Botão de Comando na caixa de ferramentas e movimente o ponteiro do mouse para a janela de form em branco. O cursor irá transformar-se numa cruz, indicando que você se encontra em modo de tracejamento.

2. Posicione o cursor no canto superior esquerdo do form.

3. Pressione o botão do mouse e arraste o cursor para baixo e para a direita.

4. Solte o botão do mouse

Quando você soltar o botão do mouse, o Visual Basic criará o objeto botão de comando na área delineada pela operação de arrasto. O seu botão de comando deverá ser semelhante ao mostrado na Figura 1.6.

Após a criação do botão de comando, a ferramenta Ponteiro irá tornar-se novamente a ferramenta ativa da caixa de ferramentas. Quando a ferramenta Ponteiro está ativa, você pode editar o form, deslocando objetos e redimensionando-os. Para deslocar um objeto, basta arrastá-lo para a nova posição. Para redimensionar um objeto, arraste uma de suas alças (mostradas na Figura 1.6) para expandi-lo ou encolhê-lo. Caso as alças não estejam visíveis, dê um clique sobre o objeto, para selecioná-lo.

Agora, crie um segundo botão de comando, desta vez usando um atalho. Dê um clique duplo sobre a ferramenta Botão de Comando na caixa de ferramentas. O Visual Basic criará um botão de dimensões padronizadas, colocando-o no centro do form. Após isso, posicione-o e altere suas dimensões, de forma que ambos os botões de comando apareçam do lado esquerdo da tela, um abaixo do outro, e tenham o mesmo tamanho.

Figura 1.6 O botão de comando recém-criado.

Esses dois botões, agora rotulados automaticamente como Command1 e Command2, servirão como botões de início e parada para o aplicativo Cronômetro. Por questões de clareza, você deveria assinalar seus títulos (Caption) coerentemente. Para assinalar essa propriedade dos botões, siga o mesmo processo que foi adotado para assinalar as propriedades do form:

1. Dê um clique no botão de comando superior para selecioná-lo.

2. Selecione a propriedade Caption da lista de propriedades na janela de propriedades.

3. No campo de valor, altere a propriedade para Iniciar.

4. Dê um clique no botão de comando inferior e altere a sua propriedade Caption para Parar.

Ainda que tenha alterado apenas a propriedade Caption, você deveria modificar os nomes dos botões (a propriedade Name), para poder referenciá-los mais facilmente no código de seu programa. (Lembre-se de que a propriedade Caption e Name não representam a mesma coisa. A alteração de uma não afeta a outra.) Dê um clique no botão superior e selecione sua propriedade Name. Na campo de valor da propriedade, altere o nome Command1, assinalado automaticamente, para Btnlniciar. A seguir, dê um clique no botão inferior e altere a sua propriedade Name para BtnParar.

Escolhendo Nomes

Não é imprescindível renomear os botões no aplicativo Cronômetro que se está criando, porém você poderá achar que fazer referência a BtnIniciar em seu aplicativo é mais claro do que referenciar a Command1. T.S. Eliot dizia: "É muito difícil dar nome a Gatos"; o mesmo também é verdadeiro para objetos em programas. Você pode concluir que nomes abreviados são mais fáceis de usar, ou pode achar conveniente deixar que o sistema forneça os nomes. No entanto, quando você retornar ao programa seis meses depois de criá-lo, certamente será muito difícil determinar o que exatamente o programa faz, se não tiver atribuído nomes que contenham algum significado.

Você deveria tentar aplicar na designação de nomes uma convenção que permitisse especificar tanto o contexto quanto a descrição. Os nomes BtnIniciar e BtnParar, por exemplo, têm um prefixo de três letras que identifica o tipo de objeto no programa. Em português, freqüentemente usamos frases para estabelecimento do contexto, por exemplo, em vez de simplesmente fazer menção a "Deputado João", eu poderia referir-me usando a frase "meu gato, Deputado João", para evitar prováveis conflitos entre meu gato e algum representante de nossa classe política. Em Visual Basic, entretanto, não é possível usar a referência "O botão chamado Iniciar", assim é muito útil abreviar o contexto (Btn) e o nome (Iniciar) em um identificador simples (Btnlniciar).

Completando o Visual do Aplicativo

Agora que você já posicionou os controles do usuário para o aplicativo Cronômetro na tela, é necessário exibir os resultados produzidos quando o programa estiver sendo processado. Vamos adicionar algumas caixas de texto ao form:

1. Dê um clique duplo na ferramenta Caixa de Texto na caixa de ferramentas para criar uma caixa de texto. Ela aparecerá no centro do form.

2. Desloque a caixa de texto para a área superior do form, à direita dos botões de comando.

3. Usando o mesmo método, crie mais duas caixas de texto, dispondo as três caixas conforme mostrado a seguir:

4. Use o mouse para selecionar o conjunto dos controles e posicioná-los no centro do form. Para isso clique numa área do form próxima ao canto inferior direito de Text3 e, mantendo o botão pressionado, arraste o mouse até que o retângulo tracejado de seleção envolva todos os controles. Solte o botão do mouse. Clique sobre qualquer um dos controles e arraste-os para a posição desejada antes de soltar o botão.

É necessário nomear esses novos objetos. Dê um clique em cada caixa de texto e modifique a propriedade Name, usando o nome TxtInicial para a caixa de texto superior, TxtFinal para a caixa de texto intermediária e TxtDecorrido para a caixa de texto inferior.

É preciso também remover os textos defaults que aparecem dentro das caixas de texto. Para cada caixa de texto, selecione a propriedade Text: da lista de propriedades e apague todos os caracteres do campo de valor da propriedade. Isso fará com que o valor da propriedade Text seja assinalado para "vazio" (uma cadeia de caracteres de comprimento zero).

Todos os elementos necessários para a parte de seu aplicativo com a qual o usuário interagirá já estão em seu lugar. De fato, você pode "rodar" o aplicativo como ele se encontra no momento. Escolha a opção Start do menu Run, dê um clique no botão Iniciar da barra de ferramentas ou pressione a tecla F5. A palheta caixa de ferramentas desaparece, como também a versão de desenvolvimento do form, e a janela Cronômetro é exibida, como mostrado na Figura 1.8. Você pode deslocá-la através do vídeo, e ainda pode dar um clique nos botões Iniciar e Parar. (Evidentemente, nada acontecerá, pois você ainda não escreveu em Visual Basic as instruções que calcularão o tempo decorrido.) Escolha a opção End do menu Run do Visual Basic ou dê um clique no botão Encerrar contido na barra de ferramentas para deixar o ambiente de processamento e retornar ao ambiente de projeto do Visual Basic.

Figura 1.7 A janela do aplicativo Cronômetro em tempo de execução.

Escrevendo o Código

Codificar - escrever as instruções de linguagem que controlarão a operação do programa - é o coração da programação. Agora que você já completou a parte de interação do seu aplicativo, é preciso fazer o programa funcionar. Uma vez que você estará escrevendo comandos na linguagem Visual Basic, é razoável imaginar que esses comandos estarão controlando o computador, ainda que indiretamente. Para entender essa noção, considere um avião a jato.

Quando o piloto do jato deseja voar mais alto, ele puxa a alavanca de controle. O resultado dessa ação é uma alteração na posição dos flaps do avião, e o jato começa a subir. Em jatos modernos, não há qualquer conexão física entre a alavanca e os flaps. Quando o piloto puxa a alavanca, um sensor mede o quanto ela foi deslocada e envia um sinal para o dispositivo hidráulico que controla a posição dos flaps. Entretanto, do ponto de vista do piloto, é a alavanca que controla o avião.

Não é primordial para o piloto saber que o deslocamento de um centímetro na alavanca corresponde a uma elevação de cinco ou dez graus dos flaps. É suficiente que ele saiba como o avião responde à alteração.

Da mesma forma que o piloto de um jato, você está no controle de seu computador, e o Visual Basic é o seu painel de instrumentos. A seção a seguir tem por objetivo lhe dar uma visão da cabine de seu sistema - isto é, com o que ele se parece para um programador Visual Basic. Naturalmente, fora dessa cabine de controle, muita coisa estará acontecendo, porém por alguns instantes concentrar-nos-emos numa discussão geral, deixando a abordagem dos detalhes relevantes sobre o sistema subjacente para os próximos capítulos.

Procedimentos de Eventos

Você já estudou propriedades de objetos e como elas podem ser modificadas para afetar um objeto. Similarmente, cada objeto pode ser associado a uma coleção de procedimentos que são executados em instantes específicos. Um procedimento é um grupo de instruções na linguagem Visual Basic. As instruções contidas no procedimento serão executadas quando o procedimento for executado. Todo código executável que você escreve será encapsulado em um ou outro tipo de procedimento.

Cada procedimento associado a um objeto está ligado a um determinado evento ou ação, portanto é chamado de procedimento de evento. Eventos incluem ações como dar um clique, um evento disparado quando o usuário pressiona o botão do mouse, e redimensionar, um evento que ocorre quando o usuário altera a dimensão de uma janela de form. Eventos podem ocorrer apenas em tempo de execução, e não durante a fase de desenvolvimento. Para todo e qualquer objeto, há uma certo número de eventos que podem ser disparados; esses eventos são descritos no Capítulo 5.

Retornemos ao nosso aplicativo Cronômetro. Dê um clique duplo no botão Iniciar no form. O Visual Basic abrirá uma janela de código, semelhante à mostrada na Figura 1. 8. A janela de código contém o título MeuForm.frm, que indica a relação entre o código e o form. O código que você introduzir nessa janela será armazenado no mesmo arquivo que contém os objetos de exibição do form.

Figura 1.8 A janela de código para o aplicativo Cronômetro.

A caixa Object, na região superior esquerda da janela de código, exibe o nome do objeto selecionado: Btnlniciar. A caixa de procedimento, ao lado da caixa Object, mostra qual procedimento está sendo editado. Como você ainda não selecionou um dos procedimentos associados ao objeto Btnlniciar, o Visual Basic selecionou automaticamente o procedimento Click. O procedimento mostrado na janela de código é o que será executado quando o usuário der um clique no botão Iniciar durante a fase de execução do aplicativo. Embora você ainda não tenha escrito qualquer código, já aparecem duas instruções na região de texto da janela de código:

Private Sub Btnlniciar_Click ()

End Sub

Quando o botão de comando foi criado, o Visual Basic criou automaticamente um conjunto de procedimentos de eventos para o objeto. Como você já deve ter imaginado, esses procedimentos criados automaticamente nada fazem; eles contêm apenas uma declaração do procedimento (primeira linha) e a instrução marcando o final do procedimento (End Sub).

Declarações de Procedimento

Na declaração do procedimento, a palavra Sub identifica o início do procedimento. A seguir, vem o nome do procedimento neste caso, BtnIniciar_Click. Após isso, encontra-se uma lista de parâmetros, os quais completam a definição. (Apesar de não serem usados no procedimento, os parênteses são obrigatórios; discutiremos a sua função no Capítulo 4). A palavra Private significa que o procedimento só existe para o código pertencente ao arquivo do Form. Outras partes do programa não podem fazer referência a este procedimento.

O nome de um procedimento serve para caracterizá-lo como um procedimento de evento. Nem todos os procedimentos são procedimentos de eventos. Você pode criar um procedimento em Visual Basic, dando um nome qualquer, tal como lâmpada ou almofada. Entretanto, o nome de um procedimento de evento deve concordar com as seguintes regras:

O objeto associado ao procedimento BtnIniciar_Click é o botão de comando Iniciar (Btnlniciar), e o evento é o Click. Quando o programa estiver sendo processado, acontecerá mais ou menos o seguinte: o aplicativo estará em algum lugar do vídeo aguardando que algo aconteça. Enquanto isso, aparece a usuária Marta, com seu mouse. Ela movimenta o ponteiro do mouse sobre a imagem na tela e dá um clique. O Windows cutuca o aplicativo e lhe diz: "Ei, faça alguma coisa!". Quando o Visual Basic determinar que o clique foi produzido sobre o botão chamado BtnIniciar, ele procurará o procedimento BtnIniciar_Click e executará as instruções contidas naquele procedimento. Como programador, seu trabalho é decidir o que aquelas instruções deverão fazer.

Para verificar como isso funciona, digite a instrução Debug.Print "Alô, marinheiro" na linha em branco que há entre as instruções Sub e End. A janela de código deverá ser semelhante a:

Private Sub BtnIniciar_Click ()

Debug.Print "Alô, marinheiro"

End Sub

A instrução Debug.Print faz com que o Visual Basic escreva o texto em uma janela especial chamada de janela Immediate. Pressione F5 para deixar o ambiente de desenvolvimento e iniciar a execução do aplicativo (da forma que ele se encontra). Quando você der um clique sobre o botão Iniciar, as palavras Alô, marinheiro serão escritas na janela Immediate.

Agora, escolha a opção End do menu Run do Visual Basic. O Visual Basic parará a execução do aplicativo e retornará ao ambiente de desenvolvimento, onde você pode continuar o projeto de seu aplicativo. (Antes de abandonar a janela de código, lembre-se de eliminar a instrução Debug.Print do procedimento BtnIniciar_Click.)

Dica: Note que palavras como Private, Sub, Debug, Print e End aparecem na tela da janela de código, com cores diferentes do restante do código. O Visual Basic destaca partes diferentes do código com várias cores para facilitar a localização de componentes individuais. Você pode controlar as cores que serão usadas, escolhendo sua opção em Editor Format da caixa de diálogo exibida pelo comando Options do menu Tools. Nela você pode assinalar as cores para texto e para fundo de palavras-chave, identificadores, comentários e inúmeros outros elementos de código.

Declarações de Variável

Quando o usuário der um clique no botão Iniciar no aplicativo Cronômetro, o programa precisará indicar que horas são. (O tempo de início.) Então, quando o usuário der um clique no botão Parar, o programa deve subtrair o tempo de início do tempo de término, para calcular o tempo decorrido. Naturalmente, você terá de escrever as linhas de código para que o programa possa fazer isso.

O Visual Basic usa uma função chamada Now, para fornecer a hora atual. Uma função é um tipo especial de procedimento que retorna um valor. (As funções do Visual Basic estão intimamente relacionadas com o conceito de funções matemáticas. As funções Visual Basic chamadas Sin, Cos e Tan, por exemplo, retornam o valor do seno, co-seno e tangente de um ângulo.) Quando o usuário der um clique no botão Iniciar, o seu programa deve chamar a função Now, que retornará um valor hora atual (de início). O programa deverá então memorizar esse valor até que ele possa ser subtraído do tempo final, quando o usuário der um clique no botão Parar. Para guardar um valor em um programa de computador, você deve reservar um local para ele na memória do computador. Pode-se fazer isso com declarações de variável.

O Visual Basic Supervisiona Você

Se durante a digitação de instruções na janela de código ocorrer algum erro, o Visual Basic poderá notificá-lo colocando o erro em destaque e exibindo uma caixa de diálogo com informações. Essa supervisão, chamada verificação automática de sintaxe, é efetuada toda vez que a tecla Enter é pressionada. O Visual Basic, naturalmente, não pode detectar todos os tipos de erro que se podem cometer, mas ele faz uma verificação de erros de sintaxe, isto é, enganos cometidos sobre a forma que a linguagem Visual Basic é usada, tais como palavra-chave ausente, palavras fora de ordem dentro de uma instrução, pontuação incorreta e assim por diante. Por exemplo, se você digitar TxtFinal..Text em vez de TxtFinal.Text, o Visual Basic informar-lhe-á sobre o engano ou erro. É possível desativar a verificação automática de sintaxe: escolha a opção Options do menu Tools e desmarque a opção Auto Syntax Checking na caixa de diálogo de opções.

Na janela de código, dê um clique sobre o botão de seta para baixo, ao lado da caixa Object, para que seja exibida uma lista com todos os objetos criados no form. A partir dessa lista, selecione a entrada (General), que é a categoria na qual se incluem todos os procedimentos não-associados a um objeto em particular. Então, o Visual Basic altera automaticamente o titulo da caixa de procedimentos para Declarations. (Chamaremos essa parte do código de programa de seção de declarações gerais de seu código.) Agora, introduza as seguintes linhas na área de texto da janela de código:

Dim TempoInicial as Variant

Dim TempoFinal as Variant

Dim TempoDecorrido as Variant

Esses comandos avisam ao Visual Basic que você deseja reservar a área de memória para os valores de tempo Inicial, Final e Decorrido, nas variáveis chamadas TempoInicial, TempoFinal e TempoDecorrido. Variáveis são, em essência, nomes para porções reservadas da memória do computador. (Mais detalhes sobre isso nos Capítulos 2 e 3.) A instrução Dim diz ao Visual Basic para reservar memória e como designar essa área de memória. A instrução Dim é uma declaração, pois indica ao Visual Basic como o programa deve ser configurado.

Cada uma das três instruções mostradas acima declara uma variável simples e todas têm este formato:

Dim nome As Variant

Dim e As são palavras-chave, palavras reservadas que têm significado especial para o Visual Basic. As instruções diferem apenas pelo nome único que deve ser dado para cada variável. A palavra-chave Variant instrui o Visual Basic para reservar memória suficiente para qualquer tipo de valor. (Você poderia usar palavras-chave diferentes para fazer uma declaração mais específica. Por exemplo, ao usar Integer em vez de Variant, o Visual Basic seria instruído a reservar somente a memória suficiente para armazenar um valor inteiro.)

Instruções Executáveis

Agora que você reservou memória para salvar valores correspondentes a instantes do tempo, pode escrever o código executável do programa. Ao contrário de uma declaração, que estabelece uma configuração para o programa, uma instrução executável provoca alguma coisa quando é executada. Por exemplo, a instrução Debug.Print que foi usada anteriormente é uma instrução executável.

Terminologia

Se a palavra Dim lhe parece sem significado e você acha que Declare seria mais apropriado, tem razão. Dim, entretanto, é a abreviatura para Dimension, proveniente das primeiras versões da linguagem Basic, datadas da década de 1960. Por questões de compatibilidade, as novas versões de linguagens de programação mantêm características das versões anteriores.

Selecione o objeto BtnIniciar na caixa Object da janela de código. Edite o procedimento BtnIniciar_Click, introduzindo estas instruções entre as linhas Private Sub BtnIniciar_Click () e End Sub:

TempoInicial = Now

TxtInicial.Text = Format(TempoInicial, "hh:mm:ss")

TxtFinal.Text = ""

TxtDecorrido.Text = ""

Quando o programa estiver sendo processado e o usuário der um clique no botão Iniciar, essas instruções serão executadas. A primeira linha de código usa a função Now para recuperar a hora atual e salvá-la na posição de memória chamada TempoInicial. A próxima linha exibe a hora atual na caixa de texto superior (TxtInicial), configurando a propriedade Text desse objeto. Além disto, ela formata a hora inicial em horas, minutos e segundos, com a função Format do Visual Basic. As duas linhas seguintes apagam o conteúdo das outras duas caixas de texto (TxtFinal e TxtDecorrido), assinalando suas propriedades Text para uma string vazia.

Agora, complete o programa, selecionando o objeto BtnParar na caixa

Object da janela de código. Edite o seu procedimento de evento Click, como

mostrado abaixo:

Private Sub BtnParar_Click ( )

TempoFinal = Now

TempoDecorrido = TempoFinal - TempoInicial

TxtFinal.Text = Format(TempoFinal, "hh:mm:ss")

TxtDecorrido.Text = Format(TempoDecorrido, "hh:mm:ss")

End Sub

Esse procedimento será executado quando o usuário der um clique no botão Parar. Primeiro, a função Now retorna a hora atual, que é salva na variável TempoFinal. A próxima linha calcula o tempo decorrido, subtraindo o valor salvo em TempoInicial de TempoFinal. Então, o tempo final e o tempo decorrido são escritos na tela, por meio de sua assinalação às propriedades Text dos objetos TxtFinal e TxtDecorrido. Da mesma forma que no procedimento BtnIniciar Click, a função Format converte os valores de horas para um formato que exiba horas, minutos e segundos.

Processando o Programa

Para iniciar o aplicativo, basta pressionar a tecla F5. Para usar o "cronômetro", dê um clique no botão Iniciar, esperando alguns segundos, e então dê um clique no botão Parar. Você deverá observar algo semelhante ao resultado mostrado na Figura 1.9.

Você pode dar outro clique no botão Iniciar para reiniciar a contagem do tempo. Para fechar o aplicativo Cronômetro, dê um clique no botão Encerrar da barra de ferramentas, pressione a tecla Alt-F4,ou clique na caixa de encerramento no canto alto direito do formulário ou escolha a opção Close do menu Control (este é o menu que aparece quando você dá um clique

na caixa do canto superior esquerdo de uma janela, por vezes denominado menu de sistema).

Figura 1. 9 Processando o aplicativo Cronômetro.

Revisando o Projeto

No inicio, os detalhes de programação são tão envolventes que é comum esquecermos do ponto de vista do usuário final. Vamos olhar novamente o esquema de interação do Cronômetro: dois botões, três caixas de texto. Bastante simples. Entretanto, é preciso levar em consideração uma pessoa que não conheça o objetivo do programa. Os termos Iniciar e Parar são auto-explicativos, mas que tipo de interpretação se pode fazer das três caixas de texto em branco? Sem dúvida, uma das melhorias que você pode fazer é colocar um rótulo nessas caixas, de forma que fique mais claro o tipo de informação que elas fornecem.

O ícone da ferramenta Rótulo na caixa de ferramentas se parece com uma letra A maiúscula. Usando a ferramenta Rótulo, trace um objeto de rótulo próximo da caixa de texto superior na janela de form. Você poderá ter de redimensionar o form ou deslocar as caixas de texto para a direita, para criar espaço para os rótulos. Como já vimos, você pode deslocar as três caixas de texto como um grupo, se selecioná-las com o retângulo de seleção produzido quando se arrasta o mouse com o botão esquerdo pressionado. Uma outra forma de selecioná-las em grupo é dar um clique sobre uma e , mantendo a tecla Ctrl pressionada, dar um clique sobre as outras duas caixas de texto. Essa forma de seleção em grupo é conveniente quando há outros controles na área que o retângulo de seleção cobriria e que não desejamos ver selecionados.

Agora, dê um clique sobre o novo objeto de rótulo, selecione a propriedade Caption do rótulo na lista de propriedades e digite Hora Inicial para o valor da propriedade. Em seguida, crie mais dois objetos de rótulo, próximos às outras duas caixas de texto, e configure a propriedade Caption da primeira para Hora Final: e da segunda para Tempo Decorrido:, como mostrado na Figura 1.10.

Figura 1.10 Adicionando rótulos às caixas de texto.

Alguma outra melhoria a considerar? Pressione F5 para processar o aplicativo novamente e então dê um clique no botão Parar, antes de dar um clique no botão Iniciar. O aplicativo deveria reagir de maneira razoável a esse erro do usuário, mas, em vez disso, ocorreu um resultado inesperado: a hora final e o tempo decorrido são exibidos sem a hora inicial. Você terá de deixar o aplicativo e retornar ao ambiente de desenvolvimento para resolver esse problema.

Em função da estrutura atual, a forma mais simples de resolver esse problema é desabilitar o uso do botão Parar, enquanto o usuário não der um clique no botão Iniciar. Na janela do form, dê um clique no botão Parar para selecioná-lo e então selecione a propriedade Enabled (habilitado) da lista de propriedades. Clique na seta para baixo que exibe as opções de valores para esta propriedade e escolha a opção False. Dessa forma, o botão estará desabilitado quando o programa iniciar a sua execução.

Abra a janela de código e edite o procedimento BtnIniciar_Click como mostrado abaixo (incluindo as duas linhas que aparecem destacadas). Você pode usar as teclas de direção para se movimentar até o ponto de inserção na janela de código, ou então simplesmente dar um clique com o mouse para assinalar o novo ponto de inserção.

Private Sub BtnIniciar_Click ( )

TempoInicial = Now

TxtInicial.Text = Format(TempoInicial, "hh:mm:ss")

TxtFinal.Text = ""

TxtDecorrido.Text = ""

BtnParar.Enabled = True

BtnIniciar.Enabled = False

End Sub

A nova codificação, reabilita o botão Parar quando o usuário dá um clique no botão Iniciar. A seguir, é desabilitado o botão Iniciar. Com isso, elimina-se outro erro potencial: dar um clique no botão Iniciar repetidamente.

Para completar essas modificações, você precisa editar o procedimento BtnParar_Click adicionando as duas linhas mostradas abaixo:

Private Sub BtnParar_Click( )

TempoFinal = Now

TempoDecorrido = TempoFinal - Tempolnicial

TxtFinal.Text = Format(TempoFinal, "hh:mm:ss")

TxtDecorrido.Text = Format(TempoDecorrido, "hh:mm:ss")

BtnParar.Enabled = False

BtnIniciar.Enabled = True

End Sub

A Figura 1.11 mostra a versão final da interação do aplicativo. Nessa ilustração, o usuário deu um clique no botão Iniciar e o cronômetro está rodando.

Figura1.11 A versão final do aplicativo Cronômetro.

Existem ainda inúmeras formas de melhorar o aplicativo. Por exemplo, lembrando que alguns cronômetros possuem um único botão, seria possível modificar o programa de forma a conter apenas um botão cuja propriedade Caption fosse alterada de Iniciar para Parar (ou vice-versa) cada vez que um clique fosse dado nele. Provavelmente, você próprio pode imaginar outras melhorias.

Salvando o Seu Programa

Você tem mais uma preocupação de ordem prática: salvar o seu programa. Abra o menu File e escolha a opção Save Project ou dê um clique no botão Salvamento de Projeto na barra de ferramentas. Na caixa de diálogo Salve File As, mostrada na Figura 1.12, o Visual Basic pede o nome do arquivo e o diretório no qual o form e os procedimentos associados deverão ser salvos, sugerindo MEUFORM.FRM (o nome do form mais o sufixo FRM) como nome de arquivo default para o aplicativo Cronômetro. Após fornecer as informações necessárias, dê um clique em OK.

Figura 1.12 A caixa de diálogo Save File As.

A seguir, o Visual Basic exibirá a caixa de diálogo Save Project As, mostrada na Figura 1.13, que lhe permite salvar o arquivo do projeto. O arquivo do projeto contém os nomes de todos os arquivos forms e algumas informações adicionais sobre o projeto. (O aplicativo Cronômetro tem apenas um arquivo form.) O Visual Basic sugerirá o nome de arquivo default PROJECT 1. VBP para o arquivo de projeto do aplicativo. Por ora, salve o aplicativo Cronômetro com o nome CRONOM.VBP. (Retornaremos a esse projeto em um capítulo posterior.)

Figura 1.13 A caixa de diálogo Save Project As.

Para carregar e processar o seu aplicativo mais tarde, você precisará em primeiro lugar carregar o Visual Basic. (Para criar uma versão do aplicativo que possa ser processada independentemente do Visual Basic, você deverá compilar o programa, como será feito num capítulo à frente.) Em seguida, escolha a opção Open Project do menu File do Visual Basic, ou então dê um clique no botão Abertura de Projeto na barra de ferramentas. A caixa de diálogo Open Project exibe uma lista com todos os arquivos de projeto (todos os arquivos com extensão VBP). Abra o arquivo CRONOM.VBP dando um clique duplo no nome do arquivo da lista, ou selecionando-o e dando um clique no botão Abrir. Pressione F5 para processar o aplicativo, ou se você desejar fazer alguma modificação adicional, abra a janela do form ou de código, dando um clique no botão apropriado na janela do Explorador do Projeto.

Código colado que se ajusta ao contexto é com a linguagem de macros do RabJump