ELEMENTOS PRINCIPAIS O Visual Basic 4.0 permite a instalao para 16 Bits (Windows 3.1 e 3.11) e para 32 Bits (Windows 95 e NT). Apresentaremos, inicialmente, os objetos e rotinas para 16 Bits, que so comuns s duas instalaes. O ambiente de trabalho do Visual Basic formado por um conjunto de janelas que podem ser abertas e fechadas individualmente. A janela principal aquela que contm a Barra de Menus (Menu Bar) e a Barra de Ferramentas (Tool Bar), conforme mostrado na figura 1 abaixo Figura 1 - Barra de Menus e de Ferramentas Como pode ser visto, esta janela contm os controles usuais de qualquer aplicativo Windows, tais como Abrir Arquivo, Salvar Arquivo, Editar, etc. A figura 2 mostra a Caixa de Ferramentas (Tool Box), que contm todos os controles personalizados (objetos) do Visual Basic. A figura 3 mostra a Janela de Propriedades (Properties Window) que permite o acesso a todas as propriedades do controle selecionado. Fig. 2 Fig. 3 Fig. 4 A figura 4 mostra a Janela do Projeto (Project Window), que permite o acesso a todos os arquivos do projeto em questo. Para abrir cada uma destas janelas voc pode usar o menu View, ou, ento, digitar F4 para abrir a Janela de Propriedades e Ctrl+R para abrir a Janela do Projeto. A Caixa de Ferramentas no tem tecla de atalho associada. O ambiente de desenvolvimento integrado do VB 5.0 um pouco diferente. As diversas janelas no so mais flutuantes e no se pode mais ver o aplicativo rodando no fundo. Embora as janelas possam ser movidas e dimensionadas, elas no so mais independentes entre si. A Janela de Projeto tambm mudou, sendo capaz de identificar claramente formulrios e mdulos de programao por meio de uma rvore. Mudanas menores dizem respeito aparncia das janelas, especialmente da Caixa de Ferramentas. Talvez o melhor seja remover a Janela de Projetos, utilizando-a somente quando estritamente necessria. Voc tambm pode configurar o ambiente de trabalho do VB 5.0 de modo a ficar parecido com o do VB 4.0. Basta entrar no menu Tools|Options|, escolher a opo Advanced e verificar a janela SD Development Environment. A Caixa de Ferramentas usada para desenhar controles no formulrio. Ela contm todos os controles padronizados do Visual Basic e mais aqueles controles que tiverem sido inseridos por meio da janela Custom Controls (menu ools). O formulrio (form) uma janela do Windows, inicialmente em branco, usada para configurar a interface grfica do projeto em VB. Cada projeto pode ter um ou mais formulrios, cada um deles associado a uma janela (por exemplo, podemos ter uma janela para salvar arquivos, uma para abrir arquivos, etc.). ALGUMA TERMINOLOGIA Um o!jeto, em Visual Basic, uma conjunto de cdigos de programao (sub-rotinas) e propriedades. Na verdade, cada elemento que voc v em um programa Windows um objeto individual, dotado de propriedades caractersticas.. "xemplo: Objeto Avio: Propriedades: velocidade, altitude, inclinao, etc.; Rotinas: decolar, aterrissar, taxiar, etc. Mudando as propriedades de um objeto, podemos mudar a forma como ele interage com o ambiente. Na programao em VB no necessrio ter um conhecimento muito grande de programao orientada a objetos, como necessrio em outras linguagens. Os objetos esto prontos para serem usados e o Visual Basic cuida de quase tudo. A programao em VB no um exemplo de "Programao Orientada a Objetos (POO), como o caso do C++ ou do Object Pascal. O termo "objeto, em VB, usado de uma maneira um pouco diferente, mas isto no significa que a abordagem seja deficiente. apenas diferente da POO clssica. Projeto o nome dado a um aplicativo desenvolvido em Visual Basic. O arquivo do projeto (.vpb) apenas uma lista de todos os outros arquivos que fazem parte do aplicativo, tais como: formulrios (.FRM); mdulos de programao (.bas); controles de 16 bits (.VBX); controles de 32 bits (.OCX); bancos de dados (.mdb). Quando se gera o programa executvel, o VB cria um arquivo .EXE que tem todas as caractersticas do arquivo .VBP, mas que pode ser executado fora do ambiente do VB. Os formulrios so janelas onde se desenha #ontroles e se escreve pro#edures de e$entos. Os mdulos so arquivos que contm de#lara%&es de $ari'$eis, de#lara%&es de #onstantes e pro#edures internas. Para inserir um novo mdulo, use o menu (nsert, opo Module. Para remover mdulos e formulrios do projeto (mas no do disco rgido), use o menu File, opo )emo$e File. Esta opo remove do projeto o arquivo selecionado na Janela de Projetos. Os arquivos de projeto do Visual Basic (.VBP) so, na verdade, descries de quais arquivos .FRM e .bas esto associados ao projeto, qual o modo de associao e onde encontr-los no disco rgido. Quando for gerado o arquivo executvel *.exe, este substituir as funes do arquivo .VBP. Este ltimo continuar presente no disco, naturalmente. ALTERANDO PROPRIEDADES As propriedades de qualquer controle em VB podem ser alteradas em tempo de projeto ou em tempo de execuo. Em tempo de projeto, quando no estamos rodando o programa, devemos usar a Janela de Propriedades. Por exemplo, clique sobre um formulrio vazio e pressione F4 para abrir a janela de propriedades. Este formulrio j um programa em VB, o que pode parecer um choque para os programadores convencionais. Entretanto, no um programa capaz de fazer muita coisa. Na janela de propriedades, mude a propriedade "#aption 1 para "Minha Janela. Voc ver que a legenda (caption) do formulrio mudar de "Form1 para "Minha Janela. Voc pode, agora, pressionar F5 para rodar o programa. Em menos de um minuto voc foi capaz de criar um programa que apresenta uma janela com um ttulo personalizado. No fcil ? As propriedades dos controles tambm pode ser alteradas em tempo de execuo (quando o programa estiver rodando). Para tanto, devemos usar a seguinte sintaxe: *!jeto. Propriedade + ,o$o Valor. Por exemplo, para mudar a propriedade #aption do formulrio Form1 para "Min-a Janela, escreveramos: Form1.Caption = "Min-a Janela Note que Min-a Janela um string (cadeia de caracteres) e deve estar sempre entre aspas. O nico problema onde escrever esta frase. Todo trecho de cdigo em VB deve ser escrito dentro da Janela de C.digo. Por exemplo, em tempo de projeto, d dois cliques no formulrio para abrir a janela de cdigo. Deve aparecer o seguinte trecho 2 : Pri$ate /u! Form01oad23 "nd /u! 1 At a data de impresso desta apostila, o Visual Basic era disponvel nas seguintes lnguas: ingls, francs, alemo, italiano, espanhol, japons e chins no sei se mandarim ou cantons!" #omo, visto, nossa $uerida lngua lusa ficou de fora e o melhor $ue temos a fa%er nos virarmos com o ingls" #omo diria Vicente &ateus, '(e voc $uiser fa%er um omelete, ter) $ue chutar os ovos"""*" 2 +ara maior clare%a, indicaremos os delimitadores de uma procedure ou fun,o em negrito" - VB, naturalmente, insere estas palavras automaticamente sem o negrito" .a mesma forma, faremos a docuenta,o do programa coment)rios! em it)lico" /o VB, 0asta $ue voc colo$ue um ap1strofo na frente de uma linha para ela ser interpretada como coment)rio" Este o "esqueleto de um procedimento de eventos em VB, que ser executado toda vez que ocorrer o evento Carregar (1oad) do formulrio Form1. Agora, complete o procedimento como a seguir e pressione F5 para rodar o programa. Pri$ate /u! Form01oad23 Form1.Caption = "Outra Janela "nd /u! Voc ver que o formulrio carregado com o ttulo "Outra Janela. Entretanto, em tempo de projeto ele continua com o ttulo "Minha Janela (ou seja l o que for). Uma correta compreenso da diferena entre "tempo de projeto e "tempo de execuo vital para o programador em VB. Existem propriedades que s podem ser alteradas em tempo de execuo. CRIANDO UM APLICATIVO SIMPLES Nosso formulrio personalizado da seo anterior j um programa VB, mas ainda no alguma coisa que voc possa mostrar para os amigos (embora, se feita em C++, devesse ter mais de duzentas linhas de cdigo e um suspiro no final...). O VB dispe de recursos suficientes para comearmos a trabalhar com coisas mais complicadas. Os passo na construo de qualquer programa VB so os seguintes: Criao da interface grfica; Definio das propriedades dos controles; Escrita do cdigo de programao. a3 Criando a (nter4a#e #om o usu'rio A revoluo criada pelo aparecimento das interfaces grficas com o usurio ainda no acabou, mas algumas pessoas ainda no se deram conta de que ela tenha comeado. Programadores antigos - e tenho ouvido vrios - dizem que interfaces grficas no so coisas de programadores srios. Talvez estes sisudos senhores prefiram realmente aqueles monitores pavorosamente verdes da poca do DOS, mas a humanidade toda est contra eles. *s seres -umanos s5o seres essen#ialmente $isuais6 e no possvel exagerar a importncia da viso no desenvolvimento da inteligncia humana. Reconhecemos figuras muito mais depressa do que reconhecemos letras, tanto que uma das tcnicas da chamada "Leitura Dinmica tenta ensinar as pessoas a visualizar palavras ou frases inteiras como se fossem figuras. Neste aspecto os chineses e outros povos asiticos esto literalmente milnios nossa frente. Talvez sejam eles os verdadeiros inventores da interface grfica ! Figura 7 - 8 (nter4a#e Muito bem, se voc no se sente bem com interfaces grficas, tenho a dizer que talvez voc esteja estudando a linguagem errada. Por outro lado, se voc pertence aos 99,9% da humanidade que saliva frente figura de uma lasanha, mas sente apenas uma comicho lendo a frase "Coma uma Lasanha !, bem, ento voc est no lugar certo. O VB dispe de recursos fantsticos para o projeto de interfaces grficas. Para iniciar a interface, desenhe, com auxlio da Caixa de Ferramentas, uma Caixa de Texto e dois Botes de Comando, posicionando-os como na figura ao lado. Redimensione o formulrio de modo que ele fique do tamanho indicado na figura. Note que voc pode trabalhar com estes objetos da mesma maneira que trabalha com objetos de desenho do Word ou do Excel. A explicao das funes deste controles dada a seguir. Bot5o de Comando9 provavelmente o controle mais simples e mais utilizado no VB. Trata-se, basicamente de um boto que, quando clicado, comandar a execuo de um trecho de cdigo. O evento "default associado ao boto de comando o evento click. Este boto, ao contrrio do boto 3D (SSCommand, edies Profissional e Enterprise apenas), no suporta bitmaps e no pode ter a aparncia 3D configurada. Caixa de exto9 tambm denominado de Caixa de "di%5o, este controle permite apresentar textos editveis pelo usurio. Para apresentar textos que no possam ser editveis pelo usurio, use o controle 1a!el ().tulo). A Caixa de Texto convencional no suporta mscaras de digitao. Se isto for necessrio, melhor usar o controle Mas:"dit (edies Profissional e Enterprise apenas). !3 ;e4inindo as propriedades dos #ontroles Com auxlio da Janela de Propriedades, redefina algumas propriedades dos controles criados, conforme mostrado na tabela 1 a seguir. a!ela 1 *BJ"* P)*P)(";8;" ;"F(,(<=* formulrio Caption (Legenda) "Bom Dia ! Boto de Comando 1 Caption (Legenda) Sair #3 "s#re$endo o #.digo Cada objeto do VB, que denominamos aqui de "controle, tem vrios eventos associados. A cada um destes eventos podemos associar um "procedimento de eventos, que ser executado a cada vez que o evento correspondente ocorrer. Para associar um procedimento de eventos ao Boto de Comando 1 clique duas vezes sobre este controle, de modo a abrir a Janela de C.digo a ele associada. Escreva a linha central do procedimento a seguir. Pri$ate /u! Command10Cli#:23 Text1.Text = "At mais tarde !" "nd /u! Clicando duas vezes sobre o Boto de Comando 2, abra a janela de cdigo associada a ele e escreva a palavra "End. Pri$ate /u! Command20Cli#:23 End "nd /u! sto tudo. Cada boto de comando tem, agora, um cdigo associado, que no ser executado at que os botes sejam acionados. O primeiro boto escrever o texto "At mais tarde! na caixa de texto, enquanto o segundo encerrar a execuo do programa. Procedimentos so tambm denominados "procedures (pronuncia-se "procdiur) e comum que se use este termo em ingls, mesmo quando se escreve ou se fala em portugus (um "procedimento que nossos amigos lusos abominam). UM PROGRAMA DE ANIMAO Em Visual Basic, M>todo um procedimento reservado que atua sobre um objeto especfico. Um mtodo especialmente concebido para realizar efeitos de animao o mtodo Mo$e, cuja funo mover suavemente um objeto pela tela. A sintaxe a seguinte: [Objeto.]Mo$e Left[,Top[,Width[,Height]]], onde 1e4t a distncia medida a partir da esquerda do formulrio at o lado esquerdo do objeto, op a distncia medida do topo do formulrio at o topo do objeto, ?idt- a largura do objeto e @eig-t a altura (veja a figura 6). Colchetes indicam parmetros opcionais. Por exemplo, se *!jeto for omitido, o VB mover o objeto que tem o "foco no momento, isto , o objeto que est presentemente selecionado. A escala padro de medidas grficas no Windows o twip. Existem 1440 twips por polegada ou aproximadamente 567 twips por centmetro. A escala de medio pode ser alterada para pixels, centmetros e outras (ver propriedade ScaleMode). a3 Criando a inter4a#e de Bor!olet.$!p A finalidade de nosso aplicativo mover uma borboleta pela tela, enquanto ela bate as asas. nicie um ,o$o Projeto, atravs do menu FileA,ew Proje#t e, com auxlio da Caixa de Ferramentas, posicione os seguintes controles no formulrio: um Boto de Comando, trs Caixas de magem, e um Timer. (magem9 um controle capaz de conter imagens do tipo bitmap, metafile e outros. O VB dispe tambm do controle Pi#tureBox, que tem mais recursos do que o (magem. Contudo, o controle de magem ocupa menos memria e redesenha figuras complexas mais rapidamente. imer9 um controle de cronmetro. O timer simplesmente gera um evento de timer a cada intervalo de tempo pr-definido. (nter$al uma propriedade que pode ser definida em tempo de projeto ou de execuo. Figura B - Coordenadas de um o!jeto !3 ;e4inindo as Propriedades Com auxlio da Janela de Propriedades, defina as seguintes propriedades para os controles inseridos: a!ela 2 OBJETO PROPREDADE DEFNO formulrio Caption Borboleta BackColor White ScaleMode 3-Pixel Timer1 nterval 500 (ms) mage1 Name imgAbreAsas Visible False mage2 Name imgFechaAsas Visible False mage3 Name imgPrincipal Visible True Command 1 Name cmdSair Caption &Sair Com as propriedades acima definidas, o formulrio deve ficar com o aspecto indicado na figura 7. #3 "s#re$endo o #.digo de Bor!olet.$!p Anexe os seguintes trechos de cdigo aos controles cmdSair e Timer1: Pri$ate /u! imer10imer23 Static CarregaBmp As Boolean imgPrincipal.Move imgPrincipal.Left + 20, imgPrincipal.Top - 5 f CarregaBmp Then imgPrincipal.Picture = imgAbreAsas.Picture ' Mostra a borboleta com as asas abertas Else imgPrincipal.Picture = imgFechaAsas.Picture ' Mostra a borboleta com as asas fechadas End f CarregaBmp = Not CarregaBmp ' Inverte o valor de CarregaBmp "nd /u! Pri$ate /u! Command10Cli#:23 End "nd /u! Figura C - * apli#ati$o Bor!olet.$!p sto tudo. Quando o programa for executado (menu Run ou F5), a borboleta se mover ao longo da tela, abrindo e fechando as asas. Como funciona ? A mgica toda feita com o mtodo Move, mas alguns adereos so necessrios. O efeito de anima- o das asas conseguido com a alternao de duas imagens, como se faz em desenho animado. Em vez de buscarmos tais imagens no disco rgido, o que seria muito lento, optamos por armazen-las em controles de imagem. A cada evento Timer a outra figura carregada no controle imgPrincipal (que quem se move). Os controles de imagens imgAbreAsas e imgFechaAsas so mantidos invisveis durante toda a execuo. Note, ainda, que CarregaBmp uma varivel booleana que atua como "flag, definindo qual imagem deve ser carregada em imgPrincipal. No se preocupe, por enquanto, com a palavra usada para declarar esta varivel ("Static). sto significa simplesmente que o valor da varivel preservado entre eventos Timer consecutivos. Nossa borboleta tem um problema: quando ela vai voando e atinge a borda direita do monitor, no h como voltar. Voc pode pensar em maneiras de fazer a borboleta voltar ou, melhor ainda, aprision-la dentro da janela ? Como dica, voc pode usar as seguintes propriedades do formulrio: /#ale?idt-9 especifica a largura da parte interna do formulrio; /#ale@eig-t9 especifica a altura da parte interna do formulrio. Basta verificar o valor destas propriedades e alterar a posio de imgPrincipal. d3 /al$ando o projeto Para salvar o projeto, v at o menu File e escolha a opo Save Project. Voc pode alterar o nome do formulrio para frmBorb.frm e o nome do projeto para Borbolet.vbp. Estes sero os nomes dos arquivos em disco. e3 8sso#iando um D#one ao projeto Para criar um cone para o aplicativo, proceda da seguinte maneira: Defina a propriedade cone do formulrio principal; Gere o programa executvel (menu File, opo Make EXE file): Bor!olet.exe; No Windows 3.1 ou 3.11, crie um novo grupo e um novo item de programas; No Windows 95, crie um atalho para Bor!olet.exe e arraste-o para a janela principal. Renomeie o atalho como preferir. Agora voc poder executar o programa clicando duas vezes sobre o cone, sem que seja necessrio abrir o Visual Basic antes. sto ocorre por que o programa executvel (.EXE) independente do VB e pode ser executado em qualquer mquina, desde que voc fornea todos os controles. No nosso caso, tais controles seriam: O arquivo de formulrio: 4rmBor!.4rm; O arquivo executvel: Bor!olet.exe; O arquivo $!4EE1B.dll, se voc estiver usando a verso de 16 bits; O arquivo $!4EE32.dll, se voc estiver usando a verso de 32 bits. Os arquivos do tipo vb.dll so "Bibliotecas de Vnculo Dinmico (Dynamic Link Libraries), necessrias para que o seu programa VB possa se comunicar com o Windows e devem ser fornecidos sempre que o computador onde for instalado o programa no tiver o VB instalado. Estes arquivos podem ser encontrados no diretrio C:\Windows\System. DIERENAS ENTRE AS VERS!ES DE 1" E #$ BITS O Windows 95 e o Windows NT acessam totalmente todos os 32 bits do computador, enquanto o Windows 3.1 e o Windows 3.11 trabalham somente com 16 bits (por causa da "ditadura do DOS). Por razes de compatibilidade, possvel escolher por instalar somente a verso de 16 Bits do VB. Adicionalmente, possvel instalar a verso de 32 Bits e gerar programas executveis de 16 Bits, que podem ser executados no Windows 3.1 ou 3.11. Entretanto, se voc instalar a verso de 16 Bits, no ter acesso aos novos controles .OCX do VB 4.0, mas somente aos controles .VBX do VB 3.0 .A Microsoft afirma que estes controles .VBX so suportados completamente somente pelo VB 3.0. Minha viso particular que melhor esquecer logo essa estria de 16 Bits e partir logo para os 32, a no ser naqueles casos em que seja imperativo que o programa v rodar sob o Windows 3.1. Alm disso, problemas de instalao tm sido detectados na verso de 16 Bits do VB 4.0. DIERENAS ENTRE AS EDI!ES DO VISUAL BASIC %.& A Edio mais bsica e barata do VB a /tandard (fique longe dela !). A Edio Pro4essional do VB 4.0 apresenta, entre outras, as seguintes melhorias em relao Standard: Controles Pro4issionais9 Controles 3D, Animated Button, Gauge, Graph, Key State, BitMap Clipping, MAP, Multimedia, Communications, Outline, Masked Edit e, Spin Button; Suporte para *;BC (Open Database Connectivity); Suporte para /F1 (Structured Query Language); CrGstal )eports9 aplicativo para gerar relatrios de bancos de dados; Bitmaps H#ones e Meta4iles 9 mais de 250 arquivos com bitmaps, cones e figuras prontas para o uso; Compilador de @elp9 aplicativo para produzir arquivos de help on-line personalizados. A Edio "nterprise, em adio Professional, apresenta ainda as seguintes caractersticas: Controles )emote ;ata *!je#ts ();*) e )emote ;ata ();C): controles para criao de aplicativos cliente-servidor; Visual /our#e/a4e9 sistema de controle integrado de cdigo-fonte. Ferramenta til quando um programa desenvolvido por um equipe, com computadores em rede; 8utoma%5o )emota: extenso do *1" (*!je#t 1in:ing and "m!edding) para redes. Recomenda-se adquirir, ao menos, a Edio Professional. Esta edio contm tantos controles a mais que a diferena no preo vale a pena. A Edio Enterprise provavelmente s ser til em ambientes empresariais dedicados ao desenvolvimento de software, mas ela prov alguns controles que no esto na Edio Professional, tais como a Barra de Ferramentas e 1ista de (magens.