Você está na página 1de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

NDICE

Histrico do VB . Novidades do VB4. Novidades do VB5 O Que o VB? . Rodando o VB5. A ToolBox do VB A Janela de Projeto A Janela do Form A Janela de Cgido Criao de Menus Eventos Comuns Propriedades Gerais Variveis Constantes Escopo . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

2 3 4 8 9 15 17 17 18 19 21 22 25 27 28 31 33 35 38 41 45 46 47 55 56

A Janela de Propriedades

Passo-a-Passo para a Criao de uma Aplicao

Principais Controles do VB5

Estruturas e Loops

Subprocedimentos e Funes . Depurao do Cdigo . Dicas e Macetes Agradecimentos Bibliografia . . . .

Criando Base de Dados via Data Manager

Pg. 1 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

HISTRICO

O BASIC surgiu j h algum tempo, foi o pontap inicial na carreira de Bill Gates, quando largou a faculdade com um amigo para fundar a MICROSOFT e fazer em duas semanas um interpretador para o BASIC, primeiro produto a ser comercializado pela Microsoft. Por esta empreitada conseguiu que a IBM, que estava lanando o seu PC e no esperava tanto sucesso, a permisso para fazer o sistema operacional deste computador, o MS-DOS, que marcou o incio do monoplio da Microsoft. No Brasil, muita gente entrou em contato com ele na dcada passada com os finados computadores MSX, TK90X, TK2000 e CP500, que o utilizavam como linguagem de programao. Nesta poca era comum nos programas o uso descarado e extensivo do comando GOTO, que tornava um programa de algumas dezenas de linhas muito confuso e ilegvel. Quando o Windows se tornou padro, pensava-se que a programao para este ambiente s seria possvel com linguagens como C, sendo impossvel alguma pessoa com pouca experincia fazer um programa por mais simples que fosse. Foi a que surgiu o VB, com um novo BASIC, no mais aquele confuso, mas um estruturado e bem mais poderoso. Tornou-se a linguagem mais utilizada em todo o mundo, sendo considerada uma das causas do sucesso do Windows. Hoje (02/1998) temos em torno de 3 milhes de desenvolvedores de Visual BASIC. Escrito originalmente em 1987 por Alan Cooper (atravs de um programa com nome Ruby, que unido ao Quick BASIC deu origem ao Visual BASIC). Foi lanado em 1991 com a verso 1.0. Em outubro de 1992 veio a verso 2.0. Est atualmente (02/98) na verso 5.0 (lanada em 01/96).

OBJETIVO DO DESENVOLVIMENTO DE SOFTWARE Gerar solues em tecnologia de informao para que empresas fiquem mais organizadas, produtivas e competitivas e para que usurios trabalhem menos e com mais comodidade e prazer. Como tambm desenvolver solues que venham ajudar nas mais diversas reas que afetam indivduos: educao, lazer, cultura, etc.

Pg. 2 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

NOVIDADES DO VB 4.0 Verso em 16 e 32 BITs nas edies Standard, Professional e Interprise; O VB 4.0 de 16 BITs roda em qualquer Windows enquanto que o de 32 BITs roda apenas no 95 e no NT 3.51 ou superior; O VB 4.O de 16 BITs continuar com as APIs do 3.x sem alteraes, enquanto que o de 32 ter todas elas alteradas para as de 32 BITs (Case-sensitive e com duas verses para cada funo: uma ANSI sujo nome acrescido do sufixo A e uma verso Unicode cujo nome acrescido do sufixo W de wide). Mudaram as bibliotecas centrais Kernel passou para Kernel32, User para User32, GDI para GDI32. (Ex. GetWindowsDirectory da lib Kernel passa para GetWindowsDirectory A da lib Kernel32); L ainda .MAK mas agora gera .VBP; Boto direito tem mais fora; Object Browser; Custon Controls (OCX no lugar das VBX); No mais trabalha com as VBX. As que trouxer correspondentes atualiza enquanto que os de terceiro devem ser atualizadas com esses; Datamanager e Datacontrol mais rpidos e mais fceis de usar; Compilao condicional (um mesmo projeto pode ser desenvolvido para rodar tanto em ambiente de 16 quanto de 32 BITs), desde que as duas verses do VB estejam instaladas; Cria agora OLE DLL; Compatvel com o VBA 2.0; Controles: ImageList (cria coleo de imagens), ListView (lista de itens), RichText, SSTab (painis com abas), StatusBar (colocar barra de status em aplicativos), ToolBar (cria barras de ferramentas), TreeView (lista ordenada hierarquicamente), TabFrames (abas ou guias). Na edio Interprise: aplicaes cliente-servidor e para equipes de desenvolvimento; acesso a dados em bases remotas; Criao de Mdulos de Classes; Add-ins (automatizar tarefas do programador); 3D para propertie aparncia; Personalizar propriedades (possibilidade de criar novas propriedades);

Pg. 3 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

NOVIDADES DO VB 5.0 Novas construes de linguagem (For... Each ou With... End With); Public substitudo por Global; Standard EXE (Abre EXE com Forms, Mdulos, etc.); ActiveX: EXE, DLL e Control (ActiveX construtor de servidores OLE); Controles customizados agora Propriedade de Formulrio StartUp Position (podemos centralizar com ela o form); Todas as janelas agora esto integradas em uma s (podendo ser separadas como antes); A Caixa de Ferramentas (ToolBox) pode agora receber outras Abas (Tabs), basta clicar com o boto direito sobre a ToolBox Components para adicionar; Pode abrir mais de um projeto por vez (File Add Project); A janela Propertie agora pode ser listada por ordem alfabtica ou por categoria (como no Access); Layout do Formulrio Preview do Form;

podem ser produzidos no VB e utilizados em qualquer programa para Windows que os aceite;

EDIO DE CDIGO: AutoList Members (opo para exibir lista de Mtodos e properties ao escrevermos o nome de um objeto; Source Safe; Auto Quick Info (ao escrever nomes de funes aparecem seus parmetros); Auto Data Tips (ao debugar v valor da varivel onde est o cursor); Drag-and-Drop Text Editing (copiar ou mover parte do Cdigo selecionado. Ctrl para copiar); Barras de Edio (Boto direito sobre as barras de ferramentas); Replace All (cuidado, fazer com muita ateno); Compila realmente (coloca para cdigo mquina: Menu Project Project Propertie Compile); existem sete

tipos de compilao, alm de ainda poderem ser gerado os velhos p-codes. At o VB4, na janela Make EXE File, no restava nada mais a ser feito do que clicar o boto OK, agora voc pode "regular" o executvel, como: * produza um compilado o mais rpido possvel, embora fique de tamanho maior; * produza um compilado de tamanho menor, embora fique mais lento; * produza um compilado que explore melhor o processador Pentium; * etc. Num teste feito na verso beta, o executvel compilado concluiu um clculo em 2 segundos, enquanto o interpretado levou um minuto. Mas a coisa no sempre assim.
Pg. 4 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Executvel menor e programa mais rpido; Gera Cdigo apenas em 32 BITs (diferente do 4.0); Novos tipos de dados: Object, Byte, Variant Decimal, entre outros.

Pg. 5 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

OUTRAS NOVIDADES: - O editor de Cdigo, aquela janela onde voc escreve o programa, ficou inteligente, quando voc comea a escrever um comando, ele j mostra a sintaxe e escreve para voc (basta clicar), no preciso mais ver a ajuda. Esta novidade foi relatada por um programador americano que testou a verso beta como inacreditvel; - Wizards que ajudam voc a fazer o programa. Por exemplo, todo editor de texto tem uma janela principal com os menus arquivo, novo, abrir, salvar... toolbar com a figura da pasta aberta para abrir, figura do disquete para salvar, uma janela de ajuda, etc. Com o wizard, voc seleciona um tipo de programa que o VB 5.0 gera as janelas, menus, botes, toolbars que so comuns a aquele tipo de aplicao, cabendo ao programador a alterar a interface segundo as suas necessidades e escrever o Cdigo. Acessados ao abrir o VB5. - Criao de OCXs para a Internet; do mesmo modo que um programador de Java pode fazer uma applet, o programador de VB pode fazer sua OCX que rode numa pgina HTML, so estes os chamados controles ActiveX, que s podiam ser feitos em C ou Java. - Voc no vai mais precisar aprender Java para poder criar uma home page interativa, porque com o VB 5, que tem os controles TCP/IP do Internet Control Pack, seus programas vo poder ser rodados dentro do Internet Explorer. - Controles para INTERNET: Internet Transfer Control Winsock e WebBrowser nica propriedade: MDIChild = False FAZER DOWNLOAD (RECEBER ARQUIVO VIA INTERNET): Inet1.Execute FTP://ftp.microsoft.com,GET disclaimer.txt c:\windows\temp\disclaimer.txt FAZER UPLOAD (ENVIAR ARQUIVO VIA INTERNET): Inet1.Execute FTP://ftp.microsoft.com,PUT riba.txt c:\windows\temp\riba.txt - Suporte a vrios padres grficos, como jpg, gif, gif animado, pcx, tif e grficos 3D. - Interface drag n' drop. - Suporte a mltiplos DBEngines.
Pg. 6 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

- Suporte a vrios resource files. - Suporte a polimorfismo. - Suporte a um tipo especial de herana.

Pg. 7 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

OUTRAS INFORMAES: Ainda ser preciso a runtime vbrun500.dll Lanamento em janeiro de 96. S vo poder ser gerados programas 32-bit. No menu New Project agora existem vrias opes, alm disso, permitido trabalhar com vrios projetos ao mesmo tempo, isto quer dizer que possvel fazer um OCX enquanto ao mesmo tempo ele pode estar sendo testado em outro projeto ao mesmo tempo. A Microsoft j disponibilizou o VB5 Control Creation Edition para download gratuito no seu site, que uma edio "light" do VB5 e no gera executvel. O tamanho aproximadamente 6 MB, para quem tem um acesso rpido vale a pena. Entre outras opes, a segunda verso do Visual BASIC para Windows 95 (a primeira foi a 4.0), destacam-se aquelas referentes criao de arquivos DLL e OCX, que so bibliotecas de comandos e ferramentas voltadas para o Visual BASIC, a ferramenta de criao de formulrios referentes banco de dados, a nova interface, que permite que se trabalhe em mais de um projeto ao mesmo tempo e muitas opes que permitem a reciclagem de Cdigo, diminuindo o trabalho do programador. Quanto a criao de DLL e OCX, este trabalho foi muito facilitado, uma vez que nas verses anteriores, era necessrio se trabalhar com linguagens como o Visual C++ e o Delphi. Agora, existe um Mdulo que compila o Cdigo fonte para DLL ou OCX. Uma das grandes deficincias apontadas por programadores experientes era a dificuldade de se gerar um formulrio no estilo Access para o Visual BASIC. Era necessrio muito trabalho de interligao entre a tabela Access e os objetos Visual BASIC. Agora, existe um Wizard (assistente) que facilita e muito esta tarefa. Na interface, houve sensveis mudanas, com o uso de vrios projetos ao mesmo tempo, o que torna a interao entre os projetos muito mais rpida. Neste sentido, a janela de propriedades, velha conhecida de qualquer programador em Visual BASIC, foi remodelada, apresentando as propriedades em ordem alfabtica, como nas verses anteriores, ou na verso por categorias, deixando agrupadas propriedades de layout, de dados, etc., como no Microsoft Access, por exemplo.

Pg. 8 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Aproveitando o assunto de vrios projetos ao mesmo tempo, uma das melhores vantagens do Visual BASIC 5.0 foi a interligao entre os projetos: caso um form que esteja sendo usado por mais de um projeto seja alterado, o Visual BASIC avisar ao usurio dessa alterao e de que possivelmente poder haver erro em algum projeto, uma vez que as propriedades no se cruzaro corretamente.

Pg. 9 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

CONHECIMENTO EXIGIDO PARA APRENDIZADO Normalmente, quando algum pensa em fazer um programa para computador, j um usurio com certa experincia. De programao mesmo, no preciso saber nada (se bem que quem j sabe BASIC ter muito mais facilidade). O conhecimento do ingls (mesmo que superficial) seria interessante, pois os comandos do VB so derivados desta lngua e o help do VB (muito bom, por sinal) todo em ingls. (Palavras emprestadas de uma pgina da INTERNET no Brasil (do programador em VB, Leandro Motta Barros, de quem tive ajuda substancial para esta apostila).

Pg. 10 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

O QUE O VISUAL BASIC? uma linguagem de programao Visual orientada a objetos (a partir da verso 4.0). At a verso 3.0 ele era orientado a Eventos. Aquela primeira frase quer dizer mais ou menos que com o VB possvel Windows utilizando programao orientada a objetos (OOP). O que so objetos? Objetos so coisas definidas por CLASSES e que possuem propriedades, Mtodos e Eventos. Uma janela, um boto e um banco de dados so objetos. Mas para entender bem o que um objetos ainda preciso definir as tais das propriedades, dos Mtodos e dos Eventos: Comecemos pelas Classes. Uma janela muito diferente de um boto, mas os dois so objetos. Isso acontece porque eles so definidos por Classes diferentes. Classes definem um objeto a grosso modo. Definem suas propriedades, seus Mtodos e seus Eventos. Classes so os moldes dos objetos. Um boto pode ser diferente do outro (maior ou menor, com uma legenda definem caractersticas mais especficas dos objetos. Um boto tem, determinam sua altura, sua largura e sua legenda. Um Mtodo uma coisa, uma funo, uma ao que age sobre um objeto. Por exemplo, se tivermos uma lista (tipo as listas de tpicos no "procurar" da ajuda do Windows), adicionamos ou removemos itens atravs de Mtodos. Ou ainda, se quisermos mover um certo objeto pela tela, poderamos usar um Mtodo. Por fim, o Evento. Digamos que em um certo programa, pressionamos um boto e um Beep diferente...). Mas como isso possvel se eles pertencem mesma classe? Porque suas propriedades so diferentes. As propriedades por exemplo, propriedades que fazer programas para

emitido. Como o programa sabe quando apertamos o boto? Ele sabe porque quando um objeto da classe boto clicado, gerado um Evento. E a esse Evento que est associado o Cdigo (comandos) que produzir o beep. Ocorrem tambm Eventos, por exemplo, ao modificarmos o texto de uma caixa de texto ou ao mover o cursor do mouse sobre uma janela. S para ficar mais claro, um exemplo no muito nobre: digamos que haja uma classe "Galinha". Um

objeto Galinha poderia ter a propriedade "Idade", uma propriedade "CorDasPenas" e uma propriedade "Nome". Ela teria um Mtodo "PoeOvo" e um Mtodo "Cacareja". E ela geraria Eventos ao dormir ao acordar e ao ser ameaada.

Pg. 11 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

RODANDO O VB 5.0

Basta clicar em Iniciar Programas Visual BASIC 5.0.

Observamos que o Grupo do VB 5.0 tem cinco itens:

1)API Text Viewer

Pg. 12 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Onde podemos visualizar as APIs do Windows: suas constantes, declaraes e tipos de dados. O mais importante desse utilitrio que podemos selecionar qualquer parte daqui e copiar e colar no Cdigo do projeto do VB.

Pg. 13 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

2) O segundo item o Aplication Setup Wizard

Este utilitrio o Assistente responsvel pela gerao dos discos (disquete ou Cd) instaladores do programa desenvolvido no VB. Tambm chega a gerar o executvel, se assim o desejemos. 3) Crystal Report o gerador de relatrios do VB. Desenvolvido pela Seagate (a mesma dos HDs) ele agiliza o desenvolvimento de relatrios, tornando essa tarefa menos trabalhosa que sua construo atravs de Cdigo. Pode estar no Grupo do VB ou no, depende da instalao (no nosso caso no foi instalado).

Pg. 14 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Books Online So arquivos de Help existentes no CD de instalao e que podem ser Instalados ou no no disco rgido e consultados atravs deste item. 4) Readme, arquivo de Help que traz inmeras informaes importantes:

Pg. 15 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Pg. 16 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

5) O quinto item o prprio VB 5.0, que ao ser ativado abre a janela abaixo, onde devemos escolher o tipo de projeto que desejamos criar, abrir um existente ou os mais recentes:

Pg. 17 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Aps escolher a opo padro Standard EXE aparece a tela abaixo, que o ambiente de programao do Visual Basic 5.0 Edio Interprise:

Todas as janelas acima (Principal, ToolBox, Projeto, Propriedades e Formulrio) so exibidas por default. * Toolbox - Providencia um conjunto de ferramentas que voc usa durante o projeto para colocar controles dentro de seu form (janela de interface com o usurio). * Menu Bar - Mostra os comandos usados para construir a sua aplicao. * Form - a janela na qual voc ir construir a interface da sua aplicao. No form voc ir adicionar controles , grficos , figuras que iro criar a aparncia final da sua aplicao.
Pg. 18 de 85

Project Window - Lista os forms , Mdulos de Cdigo.

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

* Properties Window - Lista as propriedades existentes para um form ou outro controle selecionado. Uma property (propriedade) um valor ou caracterstica associada a um objeto tais como tamanho , caption ou cor.

Pg. 19 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

A TOOLBOX DO VB5: (A ToolBox que aparece na prxima pgina do VB4).

Pg. 20 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

B) Agora a fora do VB, a janela TOOLBOX (Caixa de Ferramentas) - a janela que traz os Controles (as ferramentas no VB) - Pointer No um Controle, mas uma ferramenta que serve para mover e dimensionar Controles; - PictureBox Exibir figuras ou cones nos Formulrios. Tambm responde ao Evento click. - Label Etiqueta ou rtulo, exibe um texto que no pode ser editado pelo usurio. Uso: Ttulos. - TextBox Exibe uma rea onde o usurio pode digitar texto.

- Frame Moldura para agrupar Controles para que funcionem de forma lgica. - CommandButton Boto de Comando. Executa ao ao ser clicado.

- CheckBox Pode assumir valores falso ou verdadeiro. Em um mesmo Formulrio vrios CheckBoxes podem assumir o valor verdadeiro ao mesmo tempo. - OptionButton Pode tambm assumir valores falso/verdadeiro, mas em um mesmo Formulrio somente um OptionButton pode assumir o valor verdadeiro. - ComboBox Combina caixa de texto com caixa de listagem. O usurio pode digitar a informao como tambm pode encolher da lista.

- ListBox Exibe uma lista de itens que o usurio pode selecionar.

Pg. 21 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

- ScrollBar Horizontal e Vertical Permite selecionar com o mouse um determinado valor numa faixa de valores.

- Timer Controla intervalos de tempo determinados pelo programador.

- DriveListBox Exibe uma lista de drives onde o usurio pode selecionar um. - DirListBox Exibe uma lista de diretrios (pastas) e permite que o usurio selecione um.

- FileListBox Idem para arquivos.

- Shape Adiciona diversas formas geomtricas ao Formulrio.

- Line Adiciona linhas a Formulrios.

- Image Exibe figuras ou cones e funciona como um CommandButton quando clicado.

- Data o DataControl, que permite conectar-se a um Banco de Dados existente para extrair manipular as informaes contidas neste.

OLE Incorpora objetos de outros aplicativos em um Formulrio.

- CommonDialog Exibe um conjunto de caixas de dilogo comuns no Windows, abrir arquivo, imprimir, fontes, salvar, etc.
Pg. 22 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

- ToolBar Contem uma coleo de Botes e utilizado para criar Barras de Ferramentas que esto associadas com uma aplicao.

- StatusBar Cria uma Barra de Status para um programa com at 16 painis contidos em uma coleo de painis.

ProgessBar Barra que indica o progresso de uma operao.

- ImageList Contm uma coleo de objetos ListImage. Para exibir imagens. - DBList Automaticamente preenche uma lista com campos de um DataControl e opcionalmente passa o campo selecionado para um segundo DataControl. O DBCombo similar mas permite editar o campo selecionado. - DBGrid Exibe e manipula uma srie de linhas e colunas representando Registros e Campos de um objeto Recordset.

Pg. 23 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

C) A JANELA DE PROJETO As caractersticas do ambiente Windows (interface grfica, janelas, objetos, Eventos, mouse, cones, botes, etc.) so trabalhadas no Visual BASIC. O ponto de partida do para o desenvolvimento do Visual BASIC uma janela o Formulrio. Realmente uma janela a interface entre o programa e o usurio. Ela interage com o usurio. Um PROJETO um conjunto de arquivos que compem a aplicao. Estes arquivos que compem a aplicao podem ser visualizados na janela Projeto do VB (Project Window). Esta a do VB4 Formulrio contem A descrio e o cdigo associado a este. Um Mdulo padro contm declaraes e procedures. Um arquivo Resource pode conter todos os Bitmaps, strings e outros dados de um projeto. Um Mdulo Class contm as definies caractersticas de uma Classe incluindo suas propriedades e Mtodos.

Esta a do VB5 Para poder compartilhar Cdigo em todo o projeto deve-se colocar este Cdigo em um Mdulo e declarar a Procedure como Global. O ambiente de programao do Visual BASIC provm inmeras ferramentas para auxiliar no desenvolvimento de aplicaes grficas: Formulrios, Caixa de Ferramentas (Controles), Paleta de Cores, Propriedades, Eventos predefinidos, Janela de Mdulo interativa e com help on-line, Object Browser, API Viewer, Setup Wizard, etc. D) A JANELA DE PROPRIEDADES Esta do VB4

OBJECT BOX SETTING BOX


Pg. 24 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Esta uma janela muito til (economiza muitas linhas de Cdigo e a cada verso vem mais rica. Todas estas propriedades indicadas (nome, cor de frente, cor de fundo, ttulo, aparncia, caixa de controle, habilitada, etc.) so referentes a um objeto, cujo nome aparece na Barra de ttulos da janela (Form1 no caso da janela ao lado).

Esta a janela de Propriedades do VB5:

Form Layout (Visualizao do Projeto)

E) JANELA DO FORMULRIO

Pg. 25 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

O Formulrio o principal objeto do VB, a janela que forma a interface com o usurio. Contm botes, menus, figuras, etc. Suas Propriedades principais so: BackColor, BorderStyle, Caption, ControlBox, Max e MinButton, Enabled, Height e Width, Icon, MousePointers, Top,StartUp Position, Visible e WindowState (0-Normal, 1-Minimizada e 2-Maximizada).

Pg. 26 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

CRIANDO APLICAES * Diferena entre uma Aplicao Tradicional e outra Event-Driven ou seja ativada por Eventos ou Orientada a Objetos. Em uma aplicao tradicional ou programada de forma procedural , a aplicao por si s controla que pores do Cdigo sero executadas. A execuo comea na primeira linha de Cdigo e segue um caminho prdefinido atravs de toda a aplicao , chamando subrotinas conforme for sendo necessrio. Em uma aplicao controlada por Eventos ou event-driven , uma ao do usurio ou do sistema , ativa um procedimento associado a este Evento. Assim a ordem atravs do qual o seu Cdigo de programa executado depende de quais Eventos ocorram , que por sua vez estes Eventos dependem das aes tomadas pelo usurio. Esta a essncia das Interfaces Grficas e da Programao Ativada por Eventos.

PASSOS PARA A CRIAO DE UMA APLICAO: A. Criar a interface B. Setar as propriedades dos controles C. Escrever o Cdigo

A. CRIAR A INTERFACE. O primeiro passo na construo de uma aplicao Visual BASIC desenhar os objetos que iro compor a interface. Para inserir o controle no seu form: 1. Clique no boto do controle dentro da toolbox. 2. Mova a seta do mouse para dentro da rea do form , a seta vira uma cruz. 3. Ponha a cruz no ponto dentro do form onde ir ficar o canto superior esquerdo do controle escolhido

Pg. 27 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

4. Arraste a cruz at que o controle fique do tamanho desejado (arrastar significa apertar o boto esquerdo do mouse e mante-lo apertado enquanto o objeto movido com a mudana de posio do mouse) 5. Solte o boto do mouse e o controle aparecer no form. Caso voc d um duplo clique num Controle da ToolBox ele ser desenhado automaticamente em tamanho padro e no centro do Form.

Pg. 28 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

B. SETAR AS PROPRIEDADES DOS CONTROLES Propriedades so caractersticas que um objeto pode ter. Existem as comuns (p.e.: name) e as particulares a cada objeto. O prximo passo setar ( colocar valores de inicializao ) as propriedades dos objetos que voc criou. A janela Properties proporciona uma maneira fcil de inicializar as propriedades para todos os objetos do form . Para abrir a janela de propriedades , escolha o comando Properties Window no menu View ou ento clique no boto Properties na Barra de Ferramentas ( Toolbar ) ou tecle F4.

OBJECT BOX - Mostra o nome do objeto selecionado. Clique a seta a direita do box para selecionar o form ou nome de controle a partir da lista de objetos presentes no form atual. SETTINGS BOX - Permite que voc edite a inicializao da propriedade selecionada na lista de propriedades. Algumas inicializaes podem ser trocadas clicando-se na seta sublinhada existente a direita do box ; ser mostrada ento uma lista de opes . Voc poder clicar em um item da lista para seleciona-lo. LISTA DE PROPRIEDADES - A coluna esquerda mostra todas as propriedades para um objeto selecionado, a coluna da direita mostra a inicializao atual para cada uma das propriedades.

C. ESCREVER O CDIGO. MDULOS so objetos que contm cdigo de programao (procedures, variveis, constantes, tipos de dados, etc). A janela de Cdigo o local onde voc escreve o Cdigo Visual BASIC para a sua aplicao. Cdigo consiste em sentenas da linguagem , constantes e declaraes. Usando a janela de Cdigo ( Code Window ) , voc pode rapidamente ver e editar qualquer parte do seu Cdigo dentro de sua aplicao. Para abrir a janela de Cdigo voc deve clicar duas vezes no form ou no controle para o qual voc deseja escrever Cdigo ou ento a partir da janela Project , selecione o nome do form e clique no boto View Code.

Pg. 29 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

JANELA DE CDIGO (Code Window)

A janela de Cdigo ( Code Window ) contm os seguintes elementos : Object Box (Object) - Mostra o nome do objeto selecionado. Clique na seta a direita para mostrar a lista de todos os objetos associados a este form. Procedures List Box (Proc) - Lista os procedimentos existentes para um objeto. O box mostra o nome do procedimento selecionado - no exemplo acima Click . Clique na seta a direita do box para mostrar todos os procedimentos associados a este objeto. O CDIGO ( ou programa) em uma aplicao Visual BASIC dividido em pequenos blocos chamados procedures (procedimentos). Um event procedure ( procedimento associado a um Evento ) contm Cdigo que executado quando um Evento ocorre ( como por exemplo quando o usurio clica em um boto) . Cada controle tem uma parte do cdigo associada a si. Existem controles que tem apenas propriedades sem a necessidade de cdigo (acontece muito com os Labels), sem qualquer cdigo

Pg. 30 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Pg. 31 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

CRIANDO UM EVENT PROCEDURE: 1. No Object box , selecione o nome do objeto no form ativo ( form que atualmente tem o foco) 2. Na Procedure List box , selecione o nome do Evento desejado. No exemplo acima a procedure Click j estava selecionada, j que ela a procedure default para o boto de comando. Note que uma mscara (template) para a escrita do Cdigo para este Evento est sendo mostrada na janela de Cdigo 3. Digite o Cdigo desejado entre as sentenas Private Sub e End Sub e a procedure se parecer com o texto abaixo. Private Sub Command1_Click ( ) Text1.text = "Hello World!" End Sub

CRIAO DE MENUS Menus so criados usando a janela Menu Design. Voc adiciona itens ao menu em tempo de projeto pela criao de controles de menu e setando propriedades que definiro sua aparncia.

EDITOR DE MENUS (Menu Design) Para a criao de um Menu devemos ir ao menu Tools Menu Editor ou teclar Ctrl+E. 1) Comeamos digitando o Ttulo (em Caption) do Menu mais esquerda. Caso desejemos acessar esse menu via Alt e a letra grifada devemos inserir o & antes da letra que ser grifada. No exemplo abaixo: &TesteMenu (que aparecer como TesteMenu); 2) Depois digitamos o nome (em Name) do Menu para referncia em Cdigo; 3) Os outros itens no so obrigatrios;
Pg. 32 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

4) Clicar em Next para entrar um novo Menu ou item de Menu. Caso seja um item de Menu devemos clicar na seta para a direita quando aparecero trs pontinhos a esquerda do ttulo do item que ficar abaixo do nome do Menu. 5) Os Menus e os itens de Menus podem ser referenciados em Cdigo atravs do Evento Click, que deve ser feito no Formulrio aps teclarmos em OK.

Pg. 33 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Pg. 34 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

4 - CONECTANDO FORMULRIOS

A adio de novos formulrios na sua aplicao feito atravs da opo File na barra de menu , comando New Form ou clicando no Boto Form. Comandos para controle do form : Comando Load form Form.Show [modo] Ao Carrega o form mas o deixa invisvel Mostra o form se ele estiver invisvel, se ele no estiver carrega ento ele primeiro carrega o form e depois o mostra , estilo refere-se a se o form que fez a carga do prximo form , fica parado at a desativao do novo form (modo =0 ou modeless) ou se continua a sua execuo sem se importar com o prximo form (modo=1 ou modal) Unload form O form descarregado da memria e a sua execuo encerrada

Pg. 35 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

CONTROLES, MTODOS, EVENTOS E PROPRIEDADES PRINCIPAIS CONTROLES DO VB5

CommandButton (Boto de Comando) um dos Controles mais utilizados em programas do Windows, no apenas em VB. Sua funo principal executar comandos quando clicado. O Evento Click o mais importante para ele. As Propriedades Caption, Name, Enabled propriedade Enabled indica se o boto responder ao Evento Click ou no. so importantes entre outras. A

PictureBox (Caixa de Imagem) - Este Controle utilizado para exibir figuras nos Formulrios e tambm responde ao Evento Click. A propriedade Picture a que abre a caixa de dilogo para indicarmos o path do cone ou da figura que queremos exibir.

Label (Etiqueta ou Rtulo) Exibir um texto onde o usurio no possa alterar. Sua propriedade principal a Caption (que o texto que o Controle exibir). Outras Propriedades de formatao do texto: FontName, FontBold, Alignment, etc.

TextBox (Caixa de Texto) Exibir um texto onde o usurio possa editar. Sua propriedade principal o Text (que o texto que o Controle contem). As Propriedades de formatao do texto so idnticas ao Label.

CheckBox (Caixa de Verificao) til quando necessitamos informar ao sistema que determinadas informaes so verdadeiras ou falsas. Em um mesmo Formulrio vrios CheckBoxs podem assumir o valor verdadeiro ao mesmo tempo. Algumas Propriedades: Visible, Enabled e Caption.

OptionButton (Boto de Opo ou boto de rdio) Com este Controle somente uma das opes pode assumir o valor verdadeiro em um mesmo conjunto. Para Ter mais de um conjunto verdadeiro temos que utilizar o Controle Frame.

ListBox (Caixa de Listagem) Exibir e selecionar uma lista de itens. As Propriedades ListCount e ListIndex so utilizadas para identificar os itens da lista. Os Mtodos AddItem e RemoveItem so utilizados para adicionar e remover itens.
Pg. 36 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

ComboBox (Caixa de Combinao) Combinao de uma TextBox com uma ListBox. Pode-se editar um texto na parte superior ou selecionar um item da lista. Propriedades idnticas as da ListBox.

Pg. 37 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

ScrollBar (Barra de Rolagem) Vertical e Horizontal - Estes controles assumem valos mximos ou mnimos de acordo com as propriedades Max e Min, respectivamente. Estes controles podem receber um deslocamento pequeno (propriedade SmallChange), que ocorre quando se clica nas setas e um deslocamento grande (propriedade LangeChange), que ocorre quando se clica na barra. O controle recebe o valor da posio atual.

Timer (Temporizador) til para se controlar intervalos de tempo. Evento mais importante o Timer e a propriedade mais importante o Interval (que determina em milisegundos o intervalo de tempo d controle).

Shape (Formas Geomtricas) Adiciona figuras geomtricas aos Formulrios. Com a Propriedade Shape escolhemos o tipo de figura (forma). Outras Propriedades BorderColor, BorderStyle e BackColor.

Line (Linha) Adicionar linhas geomtricas a formulrios. Propriedades BorderColor, BorderWidth, BorderStyle, X1, X2, Y1 e Y2.

Image (Imagem) Exibe cones ou figuras e tambm responde ao Evento Click. Diferentemente do Controle Picture este controle tem a Propriedade Stretch que ajusta o tamanho da imagem para preencher a moldura.

Data Control Conectar-se a um Banco de Dados para extrair e manipular informaes deste BD. Propriedades mais importantes DatabaseName e RecordSource. Controles como TextBox podem ser vinculados a um DataControl atravs das Propriedades DataField e DataSource.

DBList Automaticamente preenche uma lista com campos de um DataControl e opcionalmente passa o campo selecionado para um segundo DataControl.

Pg. 38 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

DBCombo similar mas permite editar o campo selecionado. Propriedades importantes: DataField, DataSource, BoundColumn e RowSource.

OLE Incorpora e aninha objetos de outros aplicativos em um formulrio. As Propriedades Class, OLETypeAllowed e SourceDoc definem o objeto.

Pg. 39 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

EVENTOS COMUNS O Visual BASIC apresenta alguns Eventos de objetos que so usados freqentemente, e se apresentam na maior parte dos objetos de um form. Abaixo segue uma relao dos principais e suas respectivas funes: Click: um Evento que executa determinadas aes especificadas pelo programador quando algum clica sobre alguma coisa. Dblclick: Executa determinadas aes especificadas pelo programador quando algum clica duas vezes sobre algum objeto. Resize: executa algum comando pr estabelecido quando o usurio redimensiona o form. Load: executa ordens sempre que o programa for carregado na memria. Gotfocus: quando um objeto, um boto por exemplo, apenas ganha o foco, sem executar as suas funes em outros Eventos. Lostfocus: quando o foco passa para um outro objeto. Quando um objeto perde o foco. Keypress: quando pressionada alguma tecla, geralmente em caixas de texto, so acionados determinados comandos. Mousemove: sempre que se move o ponteiro do mouse, algo ser ativado. Um exemplo prtico, so os protetores de tela, que so desativados quando mexemos o mouse.

Pg. 40 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

PROPRIEDADES GERAIS As principais propriedades dos objetos do Visual BASIC, que esto presentes em praticamente todos os objetos do Visual BASIC, so as seguintes: Caption - Nos botes, form, e frames, altera o seu ttulo a ser exibido no form. Enabled - Presente em todos os objetos, permite que os objetos sejam acessados, caso ela esteja definida como False. Visible - Torna o objeto invisvel caso esta propriedades esteja configurada como False. Font - presente em objetos como textbox, label, botes command e botes check e option. Permite que seja alterada a fonte de um objeto. Que agora no VB5 configura tudo sobre fonte. Name - altera o nome do objeto, para fins de referncia durante a programao. Forecolor, Backcolor - define a cor da fonte e do fundo de uma textbox e uma label, por exemplo. Propriedades do form: Height (altura do form), Weight (largura do form), Maxbutton (ativa ou desativa a presena do boto Maximizar), Minbutton (ativa ou desativa presena do boto Minimizar), Left (altera a distncia do form a partir da extrema esquerda do vdeo) e Top (altera a distncia do form a partir do topo do vdeo). Em geral, todas as propriedades dos objetos presentes no Visual BASIC so bastante intuitivas, no que se refere aos seus nomes. Isto pode ser notado claramente nas propriedades Visible, Enabled, Name, entre outras. Bem, j que sabendo o que so Classes, Propriedades, Mtodos, Eventos e Objetos, vamos

us-los! Inicie o VB. Voc certamente j notou que o VB cria uma janela automaticamente. Bem, esta janela um objeto. Voc pode ver suas propriedades na janela "Properties" (se esta janela no estiver visvel, use o menu View / Properties ou a tecla F4). Na verdade nem todas as propriedades esto listadas. Note que a janela Properties tem, logo abaixo da barra de ttulo, uma "caixa de seleo" dizendo

"Form1 Form". Esta caixa lista todos os objetos colocados na janela ativa. O texto em negrito "Form1" indica o nome do objeto. O texto ao lado, "Form", indica a classe qual pertence o objeto. Logo abaixo h a lista das propriedades. esquerda ficam os nomes das propriedades e a direita os seus respectivos valores.
Pg. 41 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Pg. 42 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Note que no VB a janela chamada de Form (a partir de agora uma janela que voc criar ser chamada de Form). Ento, quer ver os Eventos que um Form possui? D-lhe um duplo clique. Abre-se uma janela de edio. Alis, em janelas como estas que o seu programa ser escrito. No topo desta janela h duas "caixas de seleo"; a primeira ("Object:") lista os objetos que esto na janela. A Segunda ( "Proc:"), lista todos os Eventos do objeto. Dando um duplo clique no form, a janela de edio se abrir. O Evento "Load" do Form estar selecionado. J haver 2 linhas includas: "Private Sub Form_Load()"e "End Sub". "Private" por default coisa do VB4 em diante. Aquela 1 linha inicia um subprocedimento; a Segunda termina o mesmo na memria (porque o Evento o Load-Carrega). subprocedimento.

Qualquer coisa que voc colocar entre aquelas duas linhas ser executado quando aquele form for carregado

EXEMPLO DE UM PROGRAMA Vamos fazer um programinha: voc clica em um boto e o ttulo da janela passa a ser "O Boto Foi Clicado"; d um duplo-clique no form e o boto se mover na tela. Como exemplo serve! A primeira coisa a fazer criar um boto. Para um boto de tamanho "normal", d um duplo-clique na ferramenta "CommandButton" na caixa de ferramentas (toolbox). Deixe o boto deste tamanho, no meio da tela. No VB cada objeto tem um nome; quando voc cria um controle (um objeto como um boto, uma barra de rolagem, etc.), o VB lhe d um nome "genrico" automaticamente. O nome do objeto uma propriedade. Vamos trocar o nome do boto para "MeuBoto" e o do form para "MinhaJanela". Clique em uma rea vazia do form e v para a janela das propriedades. Ache a propriedade "Name" e troque-a para "MinhaJanela". Da mesma forma, troque o Name do boto para "MeuBoto". Vamos agora trocar a legenda do boto para "Clique-me". Ache a propriedade "Caption" do boto

e troque para "Clique-me". Essas propriedades que voc alterou foram alteradas durante o Design Time, ou seja, enquanto o programa estava sendo criado (e no executado). Voc j deve imaginar que para trocar o ttulo da janela deveramos trocar a sua propriedade "caption". Certo, mas isto s deve acontecer ao clicar o boto. D um duplo-clique no boto que voc criou (para abrir a janela de edio). O Cdigo (ou seja, os comandos) para trocar o caption do form dever ser colocado no Evento Click do boto; assim, estes comandos s sero executados quando o boto for clicado.

Pg. 43 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Ao criar um controle, a propriedade que tem o foco a Caption, ou seja, logo que criamos um Label (p.e.) podemos imediatamente digitar seu Caption (mesmo que a janela de propriedades no esteja visvel).

Pg. 44 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Para alterar uma propriedade durante o Run-Time (enquanto o programa a seguinte sintaxe: Objeto.Propriedade = NovoValor

executado), o VB usa

Ento para trocar o caption do form usaramos o seguinte Cdigo (note que o Evento o click): Private Sub MeuBoto_Click () MinhaJanela.Caption = "O Boto Foi Clicado" End Sub Veja bem: como o valor do caption um texto, deve estar entre aspas. Com isto voc j capaz de se virar com as propriedades e ter uma boa noo sobre os Eventos. Agora vamos aos Mtodos: Para mover o boto vamos usar o Mtodo Move do boto. Como a movimentao acontecer ao duplo-clicar o form, o Cdigo vai no Evento DblClick do Form. A seguinte sintaxe usada no VB para Mtodos: Objeto.Mtodo Atributos (Nem sempre h atributos) colocar o Cdigo em

Para mover o boto, usaremos o seguinte Cdigo (lembre-se sempre de seu devido Evento): Private Sub MinhaJanela_DblClick () MeuBoto.Move 100, 100 End Sub

Os atributos 100, 100 vo colocar o boto perto do canto superior esquerdo do form. Execute o programa (tecla F5 ou o botozinho do tipo play na barra de ferramentas). Clique o boto e depois d um duplo clique no form. Se tudo funcionou direito, parabns. O VB tem dezenas de Classes com centenas, milhares de propriedades, Mtodos e Eventos. muito difcil falar sobre todos em pouco espao. Mas todos eles esto muito bem explicados no help on line do VB. Procure Methods, Properties e Events e brinque bastante com eles. Brinque tambm com outros controles,
Pg. 45 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

no s botes. Comece a usar desenhos) e outros.

Labels ("etiquetas" que mostram um texto), PictureBoxes (para mostrar

Pg. 46 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

VARIVEIS O QUE SO VARIVEIS?

Bem, variveis so coisas que, em programao, servem para armazenar na memria. Digamos que voc queira, fazer uma variveis. Como eu crio uma varivel? Normalmente no preciso criar uma varivel; basta us-la que ela

dados temporariamente

"calculadora"; os nmeros sero armazenados em

criada automaticamente.

Uma varivel identificada por um nome. Este nome deve obedecer s seguintes regras: - No pode haver repetio de nomes; - Deve comear com uma letra; - No pode conter espaos, pontos, vrgulas e outros caracteres do tipo: !, $, %. - Deve ter, no mximo, 255 caracteres.

Muitssimas vezes voc usar variveis para guardar valores de atribuir o valor da varivel a uma outra propriedade. A sintaxe esta: Varivel = Objeto.Propriedade => Coloca na varivel o valor da propriedade

propriedades. E depois poder

Objeto.Propriedade = Varivel => Coloca na propriedade o valor da varivel

Pg. 47 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

EXEMPLO DE MQUINA DE SOMAR Para dar um exemplo, vamos fazer uma "mquina de somar": em um form coloque duas "text

boxes", uma "label" e um boto. Nas caixas de texto sero colocados os nmeros. Um clique no boto e a soma aparecer na "label". Vamos usar os nomes padro dos controles (j que o projeto pequeno). Troque a caption do boto para "Soma" e apague o texto das text boxes. Todo o Cdigo estar no Evento Click do boto: Private Sub Command1_Click () Numero1 = Val(Text1.Text) Numero2 = Val(Text2.Text) Soma = Numero1 + Numero2 Label1.Caption = Str(Soma) End Sub Acho que at deu para entender. Mas o que so aqueles "Val (...)" e "Str (...)"? Val e Str so funes. Funes so comandos que retornam algum dado ou valor. Seguidamente

uma funo requer atributos (que so colocados entre parnteses). Eis o porqu de usar essas funes: o VB diferencia nmeros de textos. Mas "12" pode ser um texto. Normalmente, quando algo est entre aspas, considerado texto. A propriedade "Text" (assim como a "Caption") sempre contm um texto. Uma soma entre os textos "1" e "1" resultaria em "11"! Por isso, usamos a funo Val, que pega um texto e transforma-o em um valor numrico. A funo Str, que aparece depois faz o contrrio, pega um nmero e transforma em uma string (texto). Note que voc tambm pode colocar um valor numa varivel diretamente: Valor = 10 ou Msg = "Isto aqui uma string."

DECLARANDO VARIVEIS

Pg. 48 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

possvel (e importante) "declarar" variveis, ou seja, dizer ao programa que voc ir us-las antes que elas sejam "automaticamente criadas". Mas para que "declarar" se o processo automtico? Em algumas linguagens obrigatrio (C e Java). Principalmente por dois motivos: velocidade e economia de memria Existem vrios tipos de

dados no VB (veja tabela na prxima pgina). Cada um destes tipos tem uma limitao em termos de valores que pode adquirir, mas tambm se diferenciam pela quantidade de memria que ocupam.

Pg. 49 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

CONSTANTES: CORES: vbBlack, vbRed, vbGreen, vbBlue, etc. TIPOS DE DADOS DO VB5 Data type Byte Integer Long (long integer) Single (single-precision floating-point) 4 bytes -3.402823E38 1.401298E-45 to 3.402823E38 for positive values Double (double-precision floating-point) 8 bytes -1.79769313486232E308 to -4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values Currency (scaled integer) 8 bytes -922,337,203,685,477.5808 to 922,337,203,685,477.5807 Decimal 14bytes +/-79,228,162,514,264,337,593,543,950,335 c/ no decimal point; +/-7.9228162514264337593543950335 with 28 places to the right of the decimal; smallest non-zero number is +/-0.0000000000000000000000000001 Date String (variable-length) String (fixed-length) Variant (with numbers) 16 bytes Variant (with characters) 22 bytes + string length Same range as for variable-length String Any numeric value up to the range of a Double Length of string 1 to approximately 65,400 10 bytes + string length 0 to approximately 2 billion 8 bytes January 1, 100 to December 31, 9999 Object 4 bytes Any Object reference to -1.401298E-45 for negative values; 4 bytes -2,147,483,648 to 2,147,483,647 Boolean Storage size Range

1 byte 0 to 255 2 bytes True or False 2 bytes -32,768 to 32,767

Pg. 50 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

User-defined (using Type) its data type. Note Arrays of any data type require 20 bytes of memory plus 4 bytes for each array dimension plus the number of bytes occupied by the data itself. The memory occupied by the data can be calculated by multiplying the number of data elements by the size of each element. For example, the data in a singledimension array consisting of 4 Integer data elements of 2 bytes each occupies 8 bytes. The 8 bytes required for the data plus the 24 bytes of overhead brings the total memory requirement for the array to 32 bytes. A Variant containing an array requires 12 bytes more than the array alone. Number required by elements The range of each element is the same as the range of

Quando voc no declara uma varivel, ela considerada do tipo Variant. Note que este tipo ocupa pelo menos 16 bytes de memria, bem mais que os outros. A sintaxe para declarar uma varivel pode mudar um pouco, dependendo do "escopo" que voc deseja. ("escopo" a disponibilidade da varivel em cada um dos "nveis" do programa - veja o prximo captulo). Generalizando, a sintaxe esta: ComandoDeDeclarao NomeDaVarivel as TipoDeDado De um modo geral, o "ComandoDeDeclarao" ser o comando "Dim". Por criar uma varivel do tipo Integer chamada MinhaVariavel, usaramos: Dim MinhaVariavel as Integer Mas, ser que faz muita diferena gastar 2, 4, 8 ou 16 bytes da memria? Hoje os computadores tm *muita* memria. Tudo bem, em programas pequenos isto no ser uma diferena crucial, mas em um programa exemplo, se quiser

maior, com centenas de variveis, isto pode fazer a diferena. Alm disto, devemos lembrar que o Windows pode trabalhar com vrios programas abertos ao mesmo tempo; e se seu programa for "gordo" poder atrapalhar a performance dos outros. Alm disto, quanto menos memria ocupa um certo tipo de dado, mais rapidamente ele

processado. Por isso, procure sempre usar o "menor" tipo de dado possvel. Mas lembre-se: se voc

Pg. 51 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

ultrapassar o limite da varivel acontecer um erro (tente criar uma varivel do tipo Byte e atribua a ela um valor maior que 255).

Pg. 52 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

ESCOPO OS NVEIS DE UM PROGRAMA

Vamos comear criando um programa que use 2 forms. Vamos fazer de conta que temos um excelente programa e queremos fazer uma janela "Sobre" para ele. Primeiro coloque um boto (botSobre - este ser seu name) no form que o VB cria para ns. Ajuste o caption deste boto para "Sobre..." Mas normalmente o "Sobre..." vai em um menu. Continuando. Nosso "Sobre" ser educado. Ele agradecer ao usurio por ter usado o programa.

E o chamar pelo nome. Ento, ainda nesta primeira janela, coloque uma caixa de texto (chame-a de txtNome) e deixe-a em branco (apague todo seu text). Alm disto, crie um outro boto (chame-o de botPergunta) e coloque nele um caption de "?". Este boto mostrar uma caixa de mensagem com o nome do usurio e serve apenas para mostrar os tais dos "nveis" do programa. Adiante. Vamos colocar algum Cdigo no Evento Change da txtNome. O cada vez que o texto de uma TextBox muda. Private Sub txtNome_Change() Dim Nome As String Nome = txtNome.Text End Sub A varivel Nome recebe a propriedade Text da txtNome vento change ocorre

fcil descobrir o que isto faz: cada vez que o texto da txtNome muda, ele guardado na varivel "Nome". Normalmente s leramos o valor da caixa quando realmente precisssemos dele, mas para o exemplo ter de ser assim. No botPergunta coloque o seguinte: Private Sub botPergunta_Click() Dim Nome as String MsgBox Nome
Pg. 53 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

End Sub MsgBox, um comando que mostra uma caixa de mensagem. Seu uso mais Texto, onde Texto pode ser uma varivel string ou o texto em si (colocado entre aspas). J sei! Quando clicarmos no "?", vai aparecer uma caixa de mensagem na caixa de texto. Por qu? Fcil. O texto da caixa de texto est na varivel "Nome". Depois, a contedo da varivel Nome! Ento execute e veja se d certo. A caixa de mensagem aparece vazia! por causa dos "nveis" do programa. Quando declaramos uma varivel com um Dim, dentro de MsgBox diz para mostrar o contendo o nome escrito simples MsgBox

um subprocedimento (como fizemos agora), a varivel s existe dentro daquele subprocedimento. Ela no est disponvel para outras "Subs". Alm disto, quando a Sub que a continha acaba de ser executada, o valor da varivel se perde, mesmo para futuras "chamadas" da mesma Sub (Este segundo problema pode ser solucionado declarando a varivel com o comando Static, e no Dim). Vamos solucionar nosso problema. Primeiro, v nas duas Subs que criamos e recorte (Ctrl+X) a linha "Dim Nome as String" de ambas. Agora d um duplo clique no Form (at agora s estamos usando um) para mostrar a janela de edio. Na "Caixa de Seleo" Object, no canto superior esquerdo, escolha "General". Note que caixa "Proc:" vira "Declarations". Agora, abaixo, cole (Ctrl+V) a linha Dim Nome as String. E teste o programa de novo. Deve ter funcionado. Quando declaramos variveis na seo Declarations de um Form, aquela varivel estar disponvel para todas as Subs daquele Form. E a segunda janela? OK, crie um segundo Form. Basta clicar no primeiro boto da barra de Evento Load deste form coloque o seguinte Cdigo: ferramentas ou usar o

menu Insert | Form. Coloque neste novo form o nome de JanSobre. Nele coloque uma Label ("lblObrigado"). No

Pg. 54 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

lblObrigado.Caption = Nome & ", obrigado por utilizar este programa." Uma OBSzinha: "&" um operador que junta duas Strings em uma s de &. E na seo Declarations deste Form, coloque Dim Nome as String. Agora forms. Volte ao primeiro form e inclua o seguinte Cdigo ao botSobre: Private Sub botSobre_Click() janSobre.Show vbModal End Sub Isto mostrar a janSobre quando o boto for clicado. vbModal indica ao no lugar de vbModal. Analisando todas estas novas subs, a que concluso chegastes? Bem, a caption do lblObrigado dever mostrar algo como: fazer... Mas vou executar. E a? Deu errado. A Label mostrou apenas ", obrigado por utilizar este programa." "Joo, obrigado por utilizar este VB que esta janela ser vamos "ligar" os dois (operadores so comandos

que realizam operaes - lgicas, matemticas...-, como +, -, AND e o prprio &. ). Podemos usar + no lugar

"Modal". Depois, retire o vbModal e note a diferena. OBS: Em verses do VB anteriores 4.0, use o nmero 1

programa." Mas se der errado de novo no me surpreendo. J deu para notar que adoras mostrar como no

normal. Lembras que uma varivel declarada na seo Declarations de um Form est disponvel para todas as Subs do seu prprio form. Ns estamos usando dois forms; essencialmente o mesmo problema que tivemos alguns pargrafos acima. E para problemas semelhantes, solues semelhantes: declarar a varivel em um nvel "mais alto". S nos resta o terceiro e mais abrangente nvel de programao: o nvel que abrange todo o programa (o mdulo).

Pg. 55 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Crie um Module. Use o menu Insert | Module, ou aquele boto da barra de ferramentas que parece uma aranha fantasiada para o carnaval. Neste module (as verses anteriores 4.0 do VB chamavam de Global Module, ou algo assim), inclua a declarao da varivel Nome: Public Nome as String Note que declaramos usando "Public", que informa ao VB que esta String" que esto nas sees Declarations de cada Form. Execute. Funcionou! Ento, s para uma aparncia mais bonitinha, a vai um esquema dos nveis do programa: Falta responder o que escopo! Escopo so os nveis do programa. Por exemplo, aqueles dois erros que tivemos durante o varivel ser "Pblica",

disponvel para todas as Subs de todos os Forms deste programa. Agora, retire as duas linhas "Dim Nome as

captulo foram causados porque as variveis estavam "fora de escopo".

Pg. 56 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

ESTRUTURAS E LOOPS Loops e estruturas permitem que um Cdigo VB (ou de qualquer outra verdade loops so criados por estruturas (as estruturas de loop). Afinal, como que eu fao para utilizar uma estrutura? No difcil; as estruturas so criadas atravs de alguns grupos de comento as estruturas disponveis no VB. If... Then... Else... Isto, em bom portugus, quer dizer Se... Ento... Seno... Eis um exemplo de como utiliz-la: If MinhaVariavel <= 4 Then Beep ElseIf MinhaVariavel = 5 Then Beep Beep Else Beep Beep Beep End If Neste exemplo, se a MinhaVariavel for menor ou igual (<=) a 4, ento um beep ser emitido. O "bloco" ElseIf (em verde) opcional. Ele serve para dizer que se MinhaVariavel for igual a 5, algo ser feito (no caso, dois beeps sero emitidos). Podem ser includos quantos ElseIf forem desejados, mas talvez seja melhor usar a estrutura Select Case (veja adiante) do que vrios ElseIf. O bloco em azul (Else), tambm opcional, ser executado somente se nenhum dos blocos anteriores (If e ElseIf) for executados. End If finaliza a estrutura. comandos. A seguir listo e linguagem) seja repetido

vrias vezes. Permitem tambm analisar dados e tomar decises diferentes dependendo do resultado. Na

Pg. 57 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Select Case Vamos direto ao exemplo: Select Case MinhaVariavel Case 0 Beep Case Is <= 5 Beep Beep Case Else Beep Beep Beep End Select Esta estrutura, inicialmente, "seleciona" o valor de MinhaVariavel. Depois verifica vrios casos (quantos forem desejados). Caso MinhaVariavel seja igual a 0, um beep ser emitido. Caso seja menor ou igual a 5, teremos dois beeps. O bloco Case Else, que opcional e est em azul, ser executado somente caso nenhum dos blocos case Do... Loop Esta estrutura executa um certo grupo de comandos at (Until) ou enquanto (While) que uma certa condio verdadeira. Por exemplo: Randomize Timer Contador = 0 Do While MinhaVariavel <> 5 Contador = Contador + 1 Aleatrio = Int (Rnd * 10) If Aleatrio = 5 Then MinhaVariavel = 2 End If
Pg. 58 de 85

anteriores tenha sido executado. End Select finaliza a estrutura.

Enquanto MinhaVariavel <>5 Sorteia nmero inteiro entre 0 e 9

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Loop MsgBox Str(Contador) Aqui h algumas observaes interessantes: a primeira que possvel colocar estruturas dentro

de outras. Aqui, tivemos uma If... Then... dentro de uma Do... Loop. Isto chamado de estruturas aninhadas.

Pg. 59 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Quando o computador chega na linha Do While... ele verifica se a

condio (MinhaVariavel <> 5 )

verdadeira. Se for ele seguir at encontrar o comando Loop. A ele volta linha Do While... e o ciclo se repete enquanto a condio for verdadeira (quando for falsa, a execuo segue na linha logo abaixo de Loop. Se tivssemos usado Do Until ao invs de Do While, o loop seria executado at que a condio se tornasse verdadeira. Continuando a anlise: as linhas em azul criam um nmero aleatrio. Note que se este nmero for 5, MinhaVariavel receber o valor de 2 (que diferente de 5 - satisfaz a condio do loop; na prxima vez que a execuo chegar no Do While, o loop ser encerrado). A varivel Contador, inicializada em 0, acrescida de 1 a cada execuo do loop. No final, uma caixa de mensagem (MsgBox) exibida mostrando quantas vezes o loop precisou ser executado. Lembre-se que para testar este exemplo preciso colocar o Cdigo no (como no Click de um boto). Mais uma coisinha: dentro de uma estrutura Do... Loop pode ser colocado o comando Exit Do. Quando um Exit Do for encontrado, a execuo automaticamente vai para a linha logo a seguir do Loop, independentemente da condio estar falsa ou verdadeira. For... Next A estrutura For... Next ideal para realizar tarefas repetitivas. Que tal somar todos os nmeros pares de 50 a 100 (50+52+54+...+100)? For Cont = 50 To 100 Step 2 Soma = Soma + Cont Next Cont MsgBox Str(Soma) No difcil entender este programinha: O lao (lao o mesmo que loop) iniciado pelo For utiliza uma varivel (que eu chamei de Cont) que inicia em 50. Quando a execuo chega no Next, volta linha For... Ali, Cont ser incrementado de 2 ("Step x" identifica de quanto ser o incremento. A ausncia do Step x equivalente a Step 1). Quando Cont passar de 100 e a execuo chegar linha For Cont..., a ao valor planejado. Basta que o computador veja o comando Exit For. Bem, basicamente s isso. Na verdade existem outras estrutura. execuo continua a partir da linha logo aps o Next Cont. possvel sair do loop antes que a varivel contador chegue Evento de algum objeto

Pg. 60 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

OBSERVAO Conhecendo o uso bsico de objetos, o uso bsico de variveis as estruturas do VB e os nveis do programa, voc j estar pronto para fazer programas bem bonitinhos. Como j disse antes, no pretendo analisar cada detalhe, cada controle do VB. Tentar, errar, corrigir, errar de novo, corrigir de novo. Fazer programinhas simples, depois alguns mais complexos. Abrir exemplos e alterar. assim que se chega l.

Pg. 61 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

SUBPROCEDIMENTOS E FUNES Mas voltando aos subprocedimentos: voc j sabe que quando o usurio executado um suprocedimento. EXEMPLO Ento um subprocedimento tudo aquilo que colocamos entre as linhas Sub" de um "respondedor de Eventos"? Bom, aquilo um subprocedimento sim. Mas subprocedimentos no s existem dois tipos de subprocedimentos: Subs e Functions. Vamos a um exemplo (outro daqueles inteis). Em um Form (Form1), 5. Abrindo um pequeno parnteses: as propriedades Max e Min de uma ScrollBar determinam o valor mximo e mnimo, respectivamente, que a ScrollBar pode possuir. A propriedade SmallChange determina de quanto ser o incremento (ou decremento) quando uma daquelas setinhas nas pontas da ScrollBar clicada. LargeChange determina de quanto ser o incremento (ou decremento) quando a ScrollBar for clicada fora das setinhas ou daquela "caixinha" que pode ser arrastada. Cdigo: Private Sub BarraRol_Change() LabelValor.Caption = Str(BarraRol.Value) End Sub Neste exemplo criamos uma Sub (note que todo o Cdigo est delimitado Sub... e End Sub). E aquele "Private" tem algo a ver com escopo? pelas linhas Private Coloque no Form1 tambm uma Label (LabelValor) e ajuste seu Caption para 0. Agora, ao Evento Change da BarraRol, acrescente o seguinte coloque uma ScrollBar isto. Na verdade "Private Sub..." e "End interage com o seu

programa (clicando em um boto, por exemplo) gerado um Evento. Para responder a este Evento

(horizontal ou vertical, tanto faz). Ajuste seu Name para "BarraRol", seu Max para 15 e seu LargeChange para

Pg. 62 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Tem sim. Agora inclua um boto (Zerador ser seu "zerar": Private Sub Zerador_Click() BarraRol.Value = 0 End Sub

name). Quando ele for clicado a ScrollBar ir

Certo. Agora, vamos incrementar. Coloque um Shape ( aquele boto da FillColor para azul (&H00FF0000&) e seu FillStyle para 0 (Solid). O Shape fica azul.

caixa de ferramentas

com o desenho de um circulo e dois quadradinhos coloridos) no Form1. Nomeie este Shape como Figura e seu

Digamos que a cor deste Shape mude a cada vez que o boto for clicado e cada vez que a ScrollBar tenha seu valor modificado. Como faramos isto? Daria para colocar o Cdigo necessrio nos subprocedimentos Zerador_Click. Daria, mas estaramos escrevendo o mesmo Cdigo duas vezes. Isto no muito interessante. A BarraRol_Change e

melhor soluo criar um subprocedimento (uma Sub) que no esta diretamente associado a um Evento. Para fazer isto v at a janela de edio do Form1 (dando um duplo clique em qualquer controle ou no prprio Form1). Na caixa de seleo "Object" escolha General. A, entre com o seguinte Cdigo: Private Sub MudaCor() Figura.FillColor = Figura.FillColor Xor &HFFFFFF End Sub Note que ao terminar de escrever a primeira linha o VB automaticamente inclui o "End Sub". O

que este subprocedimento faz uma operao lgica XOR entre a cor atual do Shape e o nmero &HFFFFFF (255 em hexadecimal). Este novo valor atribudo cor do Shape. Devido s caractersticas do operador XOR, a cor ficar variando entre o azul original e o amarelo. Agora s falta fazer com que esta Sub seja "chamada" nos momentos alterando as Subs BarraRol_Change e Zerador_Click. Elas Ficaro assim: Private Sub BarraRol_Change() LabelValor.Caption = Str(BarraRol.Value) MudaCor
Pg. 63 de 85

adequados. Isto feito

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

End Sub Private Sub Zerador_Click() BarraRol.Value = 0 MudaCor End Sub Na verdade s inclumos a chamada Sub MudaCor que acabamos de criar. Outra coisinha: uma Sub pode ser escrita tanto na seo General de um Module. E aquela histria de escopo? Ah, sim. Subprocedimentos tambm tm escopo. Um subprocedimento (seja Sub ou Function), Form como em um

quando declarado como Private pode ser "chamado" apenas por subprocedimentos que estejam no mesmo Form ou Module que ele. Para permitir que seu subprocedimento seja chamvel de qualquer ponto do programa declare-o como Public ( idntico ao que fazemos com variveis).

Pg. 64 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

APROFUNDANDO Talvez voc esteja pensando o que faz aquele par de parnteses vazios subprocedimento. Dentro daqueles parnteses colocamos algum parmetro que ser utilizado pelo ao lado de cada nome de

subprocedimento. Vamos tornar nosso programa-exemplo ainda mais fantstico: Quando a Sub MudaCor for chamada pela ScrollBar, a espessura da borda do Shape ficar com uma espessura igual ao seu Value. Quando for chamada pelo Boto, a borda ficar maior ainda (Uau!). A primeira coisa a fazer rescrever a Sub MudaCor: Private Sub MudaCor(MeuValor As Byte) Dim c As Byte Figura.FillColor = Figura.FillColor Xor &HFFFFFF Figura.BorderWidth = MeuValor End Sub Agora sim! Temos alguma coisa dentro dos parnteses! Aquilo que est entre os parnteses significa o seguinte: quando esta Sub for chamada, dever ser passado um valor (no caso um nmero, um Byte). Este valor estar disponvel para a Sub na forma de uma varivel (no exemplo, "MeuValor"). No difcil compreender isto analisando o exemplo. A estes valores "passados" a um subprocedimento damos o nome de argumento. O prximo passo alterar os outros subprocedimentos (os associados a forneam o argumento necessrio: Private Sub BarraRol_Change() LabelValor.Caption = Str(BarraRol.Value) MudaCor BarraRol.Value End Sub Private Sub Zerador_Click() BarraRol.Value = 1 MudaCor 30 End Sub Eventos) para que eles

Pg. 65 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Na primeira Sub passado como argumento a propriedade Value da passado um nmero (30) diretamente. Ainda preciso ajustar o Min da BarraRol para 1. Isto evitar que o do Shape um valor igual a 0 (o que geraria um erro). Ainda interessante dizer que podemos criar subprocedimentos que argumento.

BarraRol. Na segunda programa tente dar Border

admitem mais de um

Pg. 66 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

...FUNCTIONS Functions so o segundo tipo de subprocedimento que podemos criar com das Subs porque elas retornam um valor. Como assim? Vamos logo a um exemplo: uma funo-dado, ou seja uma funo que retorna um nmero inteiro entre 1 e 6: Private Function Dado() As Byte Dado = Int(6 * Rnd + 1) End Function Esta uma funo simples, com apenas uma linha de Cdigo. O mais cujo nome igual ao nome da Function. Usar esta funo simples: Por exemplo: MinhaVariavel = Dado + Dado, coloca em MinhaVariavel o que seria o dois dados. Com Functions tambm possvel utilizar argumentos. Por exemplo, a soma de trs nmeros: Private Function SomaTres(Num1 as Integer, Num2 as Integer, Num3 as integer) As Integer SomaTres = Num1 + Num2 + Num3 End Function E para usar esta funo: MinhaVariavel = SomaTres (300, 20, 12) , colocaria 332 em
Pg. 67 de 85

o VB. Elas se diferem

importante observar

como fazemos para que a funo retorne um valor: a funo retorna um valor que est contido em uma varivel

valor do lanamento de

seguinte funo retorna a

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

MinhaVariavel. CONCLUINDO Saber quando e como utilizar Subs e Functions adequadamente uma coisa que s vem com o tempo, com a prtica. Alis, isto no acontece s com Subs e Functions... Uma ultima observao que subprocedimentos so comumente chamados de Procedures. Se algum dia voc vir algum texto falando em uma Procedure Sub ou Procedure Function, j sabe do que se trata.

Pg. 68 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

DEPURAO DE CDIGO O Visual BASIC no pode diagnosticar ou consertar erros para voc, mas fornece ferramentas que o ajudaro a analisar. As ferramentas de depurao incluem passo a passo em linhas na execuo do programa , breakpoints , break em expresses , passos a passo em procedures e visualizao de variveis e propriedades. Visual BASIC tambm inclui facilidades especiais de depurao tais como editar-e-continuar , alterando a prxima sentena a ser executada e testando o procedimento enquanto a aplicao est parada. Durante a digitao do Cdigo o Visual BASIC faz uma checagem prvia da sintaxe assinalando os erros em relao as palavras chaves da linguagem. Isso s acontecer se estiver ativada a opo Syntax Checking para Yes em Options , Environment no menu do Visual BASIC.

Pg. 69 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

CRIANDO BASE DE DADOS VIA DATA MANAGER Abrir o Visual Basic 5.0 Add-Ins Visual Data Manager... Se for a primeira vez que Acessa o Data Manager responda No para a Pergunta do VB (Add SYSTEM.MD? to INI file? ento aberta a janela do VisData File, New, Microsoft Access, Verso 7.0 Digitar o nome do Banco de Dados a ser criado e Save Na janela DataBase Window clicar com o boto direito e New Table No campo Table Name digitar o nome da Tabela; Clicar em Add Field para abrir a janela de adio de Campos; Onde se deve entrar com o nome, tipo, tamanho e outras caracterstica do campo e clicar em OK Inserir caractersticas de outros campos e clicar em OK, at completar os campos Clicar em Close para fechar a janela de criao dos campos Adicionar ndice se necessrio Clicar em Build the Table para construir a Tabela Aparece ento o nome da tabela na janela DataBase Window
Pg. 70 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Caso desejemos inserir dados na tabela devemos dar um duplo clique no nome da mesma na janela DataBase Window

Ser aberta a janela Dynaset para que sejam inseridos os dados, clicando em Add e digitando Fechar ento o Visual Datamaneger e o Banco de Dados est criado, podendo ser utilizado em um projeto do VB atravs do Datacontrol, Caixas de Texto e outros controles.

DICAS E MACETES: SETUP DO VB 4.0-32BITs OU DO VB 5.0 EM PORTUGUS: Dica retirada do Site da Forum Access: www.forumaccess.com.br Para instalar a verso em Portugus do Setup Kit 5.0 recomendamos os seguintes procedimentos: 1. Localize o diretorio do Microsoft Visual Basic; 2. Renomeie o atual arquivo (ingls) Setup132.exe que j existe no subdiretorio "\setupkit\setup1\" do seu Visual Basic. Ex: Renomeie-o para "Setup132-original.EXE" 3. Copie o novo arquivo em Portugus para este mesmo diretrio; 4. Faa um teste com qualquer aplicao DEMO ou que voc j tenha desenvolvido. - Para fazer este teste, voc dever selecionar o cone do Application Setup Wizard que est no mesmo grupo de programas do Visual Basic. Na caixa que pergunta o nome do projeto, selecione qualquer um que voc tenha em seu computador. - Siga os passos do Wizard normalmente! - Aps gerado o arquivos de instalao, execute o arquivo "setup.exe" que foi criado pelo Wizard. - Perceba que seu programa de instalao j encontra-se em portugus!

Pg. 71 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

DICA: Voc pode renomear o arquivo SETUP.EXE que o Wizard criou para, por exemplo, INSTALAR.EXE ou CONFIG.EXE, de modo que fique mais intuitivo para usurios mais leigos.

UPGRADE: Antes de abrir um projeto do VB 3.0 no 4 ou 5, faa backup de todos os elementos do projeto, inclusive as VBX, DLL, MDB, etc.

COMPILAO CONDICIONAL: Procurar no Help do VB por compiler constants. (#If... Then... #Else).

Pg. 72 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

ABRIR BANCO DE DADOS: Public Sub AbrirBanco(db As Database, Path_ps As String, File_ps As String) On Error GoTo TrataErr_DB Path_ps = VerificaOrtografiaCaminho(Path_ps) File_ps = VerificaOrtografiaArquivo(File_ps) Set db = OpenDatabase(Path_ps & File_ps, False) On Error GoTo 0 Exit Sub TrataErr_DB: Select Case Err Case 3000 'Banco est aberto como exclusivo MsgBox "O Banco de Dados est aberto para manuteno.", 16 End Case 3033 'Identificao ou password Incorreta MsgBox "Acesso negado. Usurio e senha, do Banco " & Arquivo_ps _ & ", sem permisso.", 16, cNomeSistema_gs End Case 3028 MsgBox "Informe o Diretrio de Trabalho do Sistema " _ & cNomeSistema_gs & ", no Gerenciador de Programas.", 16 _ , cNomeSistema_gs End Case 3049 'Banco de Dados Corrompido Call RepararBanco(Path_ps, File_ps) Resume Case 3029 'Password Incorreta MsgBox "Acesso negado. Senha, do Banco " & Arquivo_ps & " , invlida."_ cNomeSistema_gs End Case Else MsgBox Str$(Err) & ": " & Error$(Err), 16, cNomeSistema_gs End End Select
Pg. 73 de 85

, cNomeSistema_gs

, 16,

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

End Sub

Pg. 74 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

CRYSTAL REPORTS CUSTOM CONTROL: CONSTANTES USADAS NOS SISTEMAS: Global Const cNomeSistema_gs = "Nome do Sistema" Global Const cUserName_gs = "UserName" Global Const cPassword_gs = "Password" Global AtivadoPeloPrograma_gb As Boolean Global InicializandoSistema_gb As Boolean Dim Lendo_mb Dim Novo_mb As Boolean As Boolean

Dim Alterando_mb As Boolean

Acompanhando o Visual BASIC 5.0, vem o software Crystal Reports 4.0. um software extremamente til, possibilitando a rpida criao e impresso de relatrios. Aps ter criado seu relatrio, insira em seu formulrio um controle do Crystal. Se ele no estiver em sua caixa de ferramentas, v no menu Project/Components e selecione o controle do Crystal. Assim como qualquer controle Visual BASIC, este tem vrias propriedades. Vamos a uma breve explicao sobre as principais, com exemplos (entre <>) e supondo o nome do seu controle ser Relatorio1 Action <Relatorio1.Action = 1> Imprime seu Relatrio Connect <Relatorio1.Connect = "DSN = Villalon;UID = Fernando;PWD = LITOTECH"> D o log on em um servidor chamado Villalon, com o username Fernando e a senha LITOTECH. Utilizado somente em ambientes cliente/servidor, com acesso a bancos de dados via ODBC Copies To Printer <Relatorio1.CopiesToPrinter = 3> Imprime 3 cpias do seu relatrio. Destination

Pg. 75 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

<Relatorio1.Destination = x> manda o relatrio para um dispositivo especfico. No caso, x ser 0 para que o relatrio seja enviado para o monitor, 1 para ser enviado impressora e 2 para ser gravado em arquivo.

Pg. 76 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Password <Relatorio1.Password = "Litotech "> Envia a senha Litotech para um arquivo .MDB PrintFileName <Relatorio1.PrintFileName = "C:\CONTROLE\CNTR.TXT "> imprime o relatrio em um arquivo chamado CNTR.TXT ReportFileName <Relatorio1.ReportFileName = "C:\CONTROLE\OPEN.RPT "> especifica ao controle que o relatrio corrente o OPEN.RPT. UserName <Relatorio1.UserName = "Fernando"> envia o username FERNANDO para um arquivo .MDB

Selection Formula Muitos programadores por a esto quebrando a cabea tentando colocar SQL nessa propriedade. ESTA PROPRIEDADE NO ACEITA O CDIGO SQL COM SUA SINTAXE NORMAL. Essa propriedade tem sua sintaxe prpria, que muito parecida com SQL. Um exemplo: Voc quer imprimir o relatrio "PROVAS.RPT" na impressora, listando apenas os alunos da classe 'F'. Voc tem o relatrio, e seu arquivo .MDB contm uma tabela 'EscolaA', e dentro desta tabela um campo texto 'Classe'. O Cdigo fica assim: Relatorio1.ReportFileName = "C:\ESCOLA\PROVAS.RPT" Relatorio1.SelectionFormula = "{EscolaA.classe}='F'" Relatorio1.Action = 1 Note alguns detalhes: Para especificar o campo a ser selecionado, escreva entre chaves o nome da tabela. O nome do campo. Como o campo em questo um campo texto, o valor a ser selecionado (no caso a string F) aparece entre aspas simples.

Pg. 77 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Assim como em SQL, voc pode unir vrios critrios de seleo por via da palavra chave AND. Por exemplo, voc agora que listar apenas os alunos da classe 'F' e que tenham recebido uma nota maior do que 5: Relatorio1.ReportFileName = "C:\ESCOLA\PROVAS.RPT" Relatorio1.SelectionFormula = "{EscolaA.classe}='F' AND {EscolaA.nota}>5" Relatorio1.Action = 1

Pg. 78 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

Para se especificar datas, utiliza-se uma das vrias funes de data suportadas pelo Crystal. vou dar o exemplo de uma, a funo Date, que tem a sintaxe <Date(yyyy,mm,dd)>. Voc quer imprimir um relatrio de todas as Classes cujas provas tenham sido realizadas entre o dia 1/04/97 e 31/5/97: Relatorio1.ReportFileName = "C:\ESCOLA\PROVAS.RPT" Relatorio1.SelectionFormula = "{EscolaA.DataProva}>=Date(1997,04,01) AND {EscolaA.DataProva}>=Date(1997,05,31) Relatorio.Action = 1 Para se programar, no necessrio que voc seja um 'cobra' da informtica, mas conhecimento sempre ajuda. O importante em um programador sua capacidade de fazer com que um programa execute suas tarefas escrevendo o menor nmero de linhas de Cdigo possveis. Isso far com que o computador tenha a necessidade de processar menos dados, aumentando a velocidade de execuo. Um bom programa deve ser escrito de forma modular, ou seja, voc deve ter vrias funes ou subs que sejam comuns a vrios procedimentos. Assim, fica mais fcil identificar erros, realizar manuteno de seu software e atualizaes. Alm do mais, economiza seu tempo e pacincia, pois voc no ter que digitar a mesma coisa vrias vezes. Por exemplo, os Cdigos de Selection Formula. Voc provavelmente ter mais de um relatrio em seu programa. Assim, crie uma sub que defina a selection formula e imprima seu relatrio, recebendo por referncia os valores necessrios (nome dos campos, valores, comparadores, etc.). Infelizmente, no se encontram com facilidade bons livros de Visual BASIC. Em sua maioria, os livros so timos ao explicar as vantagens do ambiente G.U.I., o uso da interface, dos grficos, etc. Mas praticamente TODOS so extremamente fracos no quesito BANCO DE DADOS. Ora, os bancos de dados so os arquivos mais importantes da maioria dos programas. Em quase todos os livros voc encontrar apenas noes superficiais sobre o Microsoft Jet Engine e a linguagem SQL. Um bom livro para quem j programador em outras linguagens o "Microsoft Visual BASIC 4 - Segredos e Solues", de Gary Cornell e Troy Strain, editado pela Makron Books. indicado para programadores pois se concentra em familiarizar o programador com o ambiente Visual BASIC, sem grandes exemplos inteis e lies de lgica, etc. Infelizmente tambm superficial no quesito banco de dados, mas muito bom em outros pontos. Fora esse livro, os bons so os editados pela prpria Microsoft, os livros assinados pela Microsoft Press. Voc pode compr-los em sua livraria local (geralmente a preos acima de R$ 150,00) ou na amazon.com, a preos bem mais em conta. Detalhe: esses livros so sempre em ingls.

Pg. 79 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

VERIFICAR ORTOGRAFIA DE ARQUIVO: Sub VerificaOrtografiaArquivo(Arquivo_ps) If Mid$(Arquivo_ps,1,1) = "\" Then VerificaOrtografiaArquivo = Mid$(Arquivo_ps,2) Else VerificaOrtografiaArquivo = Arquivo_ps End If End Sub

VERIFICA ORTOGRAFIA DE CAMINHO: Sub VerificaOrtografiaCaminho(Caminho_ps) If Mid$(Caminho_ps,Len(Caminho_ps),1) = "\" Then VerificaOrtografiaArquivo = Caminho_ps Else VerificaOrtografiaArquivo = Caminho_ps & "\" End If End Sub

Pg. 80 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

TOCANDO MIDI NO VB: A edio profissional do VB inclui um OCX, o MCI Multimedia Control, que permite a execuo de MIDIs, WAVs eCDs de msica, entre outros. Entretanto, para quem no tem a edio profissional ou prefere no utilizar o OCX, pode utilizar a funo mciSendString da API do Windows. Primeiro, crie um Module e, nele declare a funo mciSendString: Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long Antes de tocar o MIDI preciso abri-lo. Basta usar o mciSendString assim: mciSendString "open c:\Musicas\Musica.Mid type sequencer alias apelido", 1, 1, 1 O trecho alias (apelido) pode ser omitido, mas recomendo a sua utilizao. Qualquer palavra que for colocada no lugar de apelido, poder ser usada quando for feita alguma referncia a este MIDI. Se voc no usar o alias apelido, dever indicar todo o caminho considerei o uso do alias apelido. Para tocar o MIDI, use: mciSendString "play apelido", 1, 1, 1 Saindo do programa sem parar de tocar o MIDI, ele continua tocando. Para par-lo, use: mciSendString "stop apelido", 1, 1, 1 Antes de fechar seu programa, voc ainda deve fechar o MIDI: mciSendString "close apelido", 1, 1, 1 (c:\Musicas\....) do arquivo. Nos exemplos a seguir,

Pg. 81 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

O ideal colocar este ltimo comando, o close, no Evento Form_Unload. Assim, quando o Form fechado, o MIDI pra de tocar e fechado.

Pg. 82 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

ASSOCIAR UM CONE AO PONTEIRO DO MOUSE AO PASSAR SOBRE UM CONTROLE: Selecionar o controle; Alterar a propriedade MousePointer do controle; Alterar a propriedade MouseIcon para o cone desejado.

REGISTRAR OCX: Na subpasta \tools\constrol do CD de instalao do VB5 existem controles extras (como o caso do Sheridan e outros, inclusive os arquivos de Help desses controles e um arquivo texto contendo instrues de como registrar estas OCX. Supondo que desejamos registrar o controle Sheridan 3D Contrlos: Devemos copiar o arquivo threed32.ocx da referida pasta do CD para a pasta system; Devemos executar: c:\windows\system\regsvr32.exe threed32.ocx; Dar um duplo clique no arquivo com extenso reg da referida pasta do CD e pronto.

NOMES DE ALGUNS CONTROLES IMPORTANTES DO VB5: Controle de ABAS: Mocrosoft Tabbled Dialog Control 5.0 Dilogo Comum: Microsoft Common Dialog Control 5.0 ToolBar, StatusBar e outros: Microsoft Windows Common Control 5.0

Pg. 83 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

AGRADECIMENTOS Gostaria de deixar registrado aqui o meu agradecimento a vrios programadores de Visual Basic espalhados pelo Brasil afora, em especial a Leonardo Mota Barros (http://www.geocities.com/Area51/1380/), pelo fato de terem contribuido para a elaborao desta apostila. Quando eu estava elaborando visitei o Cade (www.cade.com.br) e fiz uma consulta sobre Visual Basic, encontrando quase 200 endereos. Vrios com dicas, arquivos teis, projetos e alguns com apostilas ou captulos de apostilas (como foi o caso do Leonardo).

Aqui vo alguns endereos quentes da INTERNET sobre o Visual Basic: ZDNet University (cursos): http://www.zdu.com Daniel Wimans Visual Basic homepage: http://www.oden.se/~daniel/vb/ Exotech Informtica - Frum Visual Basic: http://www.exotech.com.br/vbasic/ MVB Net : http://mvb.hypermart.net Informtica Exame Online - Forum Visual Basic: http://www2.uol.com.br/info/forum/vbasic.html Frum Access (foruns de Access e VB): http://www.forumaccess.com/ Visual Basil On Line: http://www.vbonline.com/ Microsoft: http://microsoft.com/vbasic

Pg. 84 de 85

Microsoft Visual Basic - Avanado Escola Secundria de Emdio Navarro 2001/2002 Estruturas, Tratamento e Organizao de Dados

BIBLIOGRAFIA 1) TTULO: VISUAL BASIC 5 APLICAES COMERCIAIS AUTOR: ALCINDO ALVES DOS REIS FILHO EDITORA: BRASPORT 2) TTULO: VISUAL BASIC 4 OBJECTS AND CLASSES SIPER BIBLE EDITORA: WAITE GROUP PRESS 3) TTULO: VISUAL BASIC 5 EM 21 DIAS EDITORA: CAMPUS 4) TTULO: USANDO O VISUAL BASIC 5 EDITORA: CAMPUS/QUE

Fortaleza, primeiro semestre de 1998.

Pg. 85 de 85

Você também pode gostar