57
8/7/2019 VB5 Avançado http://slidepdf.com/reader/full/vb5-avancado 1/57 CENTRO DE TREINAMENTO DO DNOCS VISUAL BAIC 5.0 AVANÇADO ÍNDICE Histórico do VB . . . . . . . .2 Novidades do VB4. . . . . . . .3 Novidades do VB5 . . . . . . . .4 O Que é o VB? . . . . . . . .8 Rodando o VB5 . . . . . . . .9 A ToolBox do VB . . . . . . . .15 A Janela de Projeto . . . . . . . .17 A Janela de Propriedades . . . . . .17 A Janela do Form . . . . . . . .18 Passo-a-Passo para a Criação de uma Aplicação . .19 A Janela de Cógido. . . . . . . .21 Criação de Menus . . . . . . . .22 Principais Controles do VB5 . . . . . .25 Eventos Comuns . . . . . . . .27 Propriedades Gerais . . . . . . .28 Variáveis . . . . . . . . . .31 Constantes . . . . . . . . .33 Escopo . . . . . . . . . .35 Estruturas e Loops . . . . . . . .38 Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 1

VB5 Avançado

Embed Size (px)

Citation preview

Page 1: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 1/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

ÍNDICE

Histórico do VB . . . . . . . .2Novidades do VB4. . . . . . . .3Novidades do VB5 . . . . . . . .4O Que é o VB? . . . . . . . .8Rodando o VB5 . . . . . . . .9A ToolBox do VB . . . . . . . .15

A Janela de Projeto. . . . . . . .17A Janela de Propriedades . . . . . .17A Janela do Form . . . . . . . .18Passo-a-Passo para a Criação de uma Aplicação . .19A Janela de Cógido. . . . . . . .21Criação de Menus . . . . . . . .22Principais Controles do VB5 . . . . . .25

Eventos Comuns . . . . . . . .27Propriedades Gerais . . . . . . .28Variáveis . . . . . . . . . .31Constantes . . . . . . . . .33Escopo . . . . . . . . . .35Estruturas e Loops . . . . . . . .38

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 1

Page 2: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 2/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

Subprocedimentos e Funções . . . . . .41Depuração do Código . . . . . . .45Criando Base de Dados via Data Manager . . .46

Dicas e Macetes . . . . . . . .47Agradecimentos . . . . . . . .55Bibliografia . . . . . . . . .56

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 2

Page 3: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 3/57

Page 4: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 4/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

NOVIDADES DO VB 4.0

- Versão em 16 e 32 BITs nas edições 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 alterações, enquanto que o de32 terá todas elas alteradas para as de 32 BITs (Case-sensitive e com duas versões paracada função: uma ANSI – sujo nome é acrescido do sufixo “A” e uma versão Unicode – cujo nome é acrescido do sufixo “W” de wide). Mudaram as bibliotecas centrais Kernelpassou para Kernel32, User para User32, GDI para GDI32.(Ex. GetWindowsDirectory da lib Kernel passa paraGetWindowsDirectory A da lib Kernel32);

- Lê ainda .MAK mas agora gera .VBP;- Botão direito tem mais força;- Object Browser;

- Custon Controls (OCX no lugar das VBX);- Não mais trabalha com as VBX. As que trouxer correspondentes atualiza enquanto queos de terceiro devem ser atualizadas com esses;

- Datamanager e Datacontrol mais rápidos e mais fáceis de usar;- Compilação condicional (um mesmo projeto pode ser desenvolvido para rodar tanto em

ambiente de 16 quanto de 32 BITs), desde que as duas versões do VB estejaminstaladas;

- Cria agora OLE DLL;- Compatível com o VBA 2.0;- Controles:

ImageList (cria coleção de imagens), ListView (lista de itens), RichText, SSTab

(painéis com abas), StatusBar (colocar barra de status em aplicativos), ToolBar(cria barras de ferramentas), TreeView (lista ordenada hierarquicamente),TabFrames (abas ou guias).

- Na edição Interprise: aplicações cliente-servidor e para equipes de desenvolvimento;acesso a dados em bases remotas;

- Criação de Módulos de Classes;- Add-ins (automatizar tarefas do programador);- 3D para propertie aparência;- Personalizar propriedades (possibilidade de criar novas propriedades);

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 4

Page 5: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 5/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

NOVIDADES DO VB 5.0

- Novas construções de linguagem (For... Each ou With... End With);- Public substituído por Global;

- Standard EXE (Abre EXE com Forms, Módulos, etc.);- ActiveX: EXE, DLL e Control (ActiveX – construtor de servidores OLE); Controlescustomizados agora podem ser produzidos no VB e utilizados em qualquer programa paraWindows que os aceite;- Propriedade de Formulário StartUp Position (podemos centralizar com ela o form);- Todas as janelas agora estão integradas em uma só (podendo ser separadas como antes);- A Caixa de Ferramentas (ToolBox) pode agora receber outras Abas (Tabs), basta clicar 

com o botão 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 alfabética ou por categoria (como

no Access);

- Layout do Formulário – Preview do Form;

EDIÇÃO DE CÓDIGO:

- AutoList Members (opção para exibir lista de Métodos e properties ao escrevermos onome de um objeto;

- Source Safe;- Auto Quick Info (ao escrever nomes de funções aparecem seus parâmetros);- Auto Data Tips (ao debugar vê valor da variável onde está o cursor);- Drag-and-Drop Text Editing (copiar ou mover parte do Código selecionado. Ctrl para

copiar);

- Barras de Edição (Botão direito sobre as barras de ferramentas);- Replace All (cuidado, fazer com muita atenção);- Compila realmente (coloca para código máquina: Menu Project – Project Propertie – Compile); existem sete tipos de compilação, além de ainda poderem ser gerado os velhos p-codes. Até o VB4, na janela Make EXE File, não restava nada mais a ser feito do que clicar o botão OK, agora você pode "regular" o executável, como:

* produza um compilado o mais rápido possível, 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 versão beta, o executável compilado concluiu um cálculo em 2segundos, enquanto o interpretado levou um minuto. Mas a coisa não é sempre assim.- Executável menor e programa mais rápido;- Gera Código apenas em 32 BITs (diferente do 4.0);- Novos tipos de dados: Object, Byte, Variant Decimal, entre outros.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 5

Page 6: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 6/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

OUTRAS NOVIDADES:

- O editor de Código, aquela janela onde você escreve o programa, ficou inteligente,quando você começa a escrever um comando, ele já mostra a sintaxe e escreve para você

(basta clicar), não é preciso mais ver a ajuda. Esta novidade foi relatada por umprogramador americano que testou a versão beta como inacreditável;

- Wizards que ajudam você a fazer o programa. Por exemplo, todo editor de textotem uma janela principal com os menus arquivo, novo, abrir, salvar... toolbar com a figurada pasta aberta para abrir, figura do disquete para salvar, uma janela de ajuda, etc. Com owizard, você seleciona um tipo de programa que o VB 5.0 gera as janelas, menus, botões,toolbars que são comuns a aquele tipo de aplicação, cabendo ao programador a alterar ainterface segundo as suas necessidades e escrever o Código. Acessados ao abrir o VB5.

- Criação de OCXs para a Internet; do mesmo modo que um programador de Javapode fazer uma applet, o programador de VB pode fazer sua OCX que rode numa página

HTML, são estes os chamados controles ActiveX, que só podiam ser feitos em C ou Java.- Você não vai mais precisar aprender Java para poder criar uma home pageinterativa, porque com o VB 5, que tem os controles TCP/IP do Internet Control Pack, seusprogramas vão 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 vários padrões gráficos, como jpg, gif, gif animado, pcx, tif e gráficos3D.

- Interface drag n' drop.- Suporte a múltiplos DBEngines.- Suporte a vários resource files.

- Suporte a polimorfismo.- Suporte a um tipo especial de herança.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 6

Page 7: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 7/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

OUTRAS INFORMAÇÕES:

Ainda será preciso a runtime vbrun500.dllLançamento em janeiro de 96.

Só vão poder ser gerados programas 32-bit.

No menu New Project agora existem várias opções, além disso, é permitidotrabalhar com vários projetos ao mesmo tempo, isto quer dizer que é possível fazer umOCX enquanto ao mesmo tempo ele pode estar sendo testado em outro projeto ao mesmotempo.

A Microsoft já disponibilizou o VB5 Control Creation Edition para downloadgratuito no seu site, que é uma edição "light" do VB5 e não gera executável. O tamanho éaproximadamente 6 MB, para quem tem um acesso rápido vale a pena.

Entre outras opções, a segunda versão do Visual  BASIC para Windows 95 (aprimeira foi a 4.0), destacam-se aquelas referentes à criação de arquivos DLL e OCX, quesão bibliotecas de comandos e ferramentas voltadas para o Visual BASIC, a ferramenta decriação de formulários referentes à banco de dados, a nova interface, que permite que setrabalhe em mais de um projeto ao mesmo tempo e muitas opções que permitem areciclagem de Código, diminuindo o trabalho do programador.

Quanto a criação de DLL e OCX, este trabalho foi muito facilitado, uma vez quenas versões anteriores, era necessário se trabalhar com linguagens como o Visual C++ e oDelphi. Agora, existe um Módulo que compila o Código fonte para DLL ou OCX.

Uma das grandes deficiências apontadas por programadores experientes era adificuldade de se gerar um formulário no estilo Access para o Visual  BASIC. Eranecessário muito trabalho de interligação entre a tabela Access e os objetos Visual BASIC.Agora, existe um Wizard (assistente) que facilita e muito esta tarefa.

Na interface, houve sensíveis mudanças, com o uso de vários projetos ao mesmotempo, o que torna a interação entre os projetos muito mais rápida. Neste sentido, a janelade propriedades, velha conhecida de qualquer programador em Visual  BASIC, foiremodelada, apresentando as propriedades em ordem alfabética, como nas versõesanteriores, ou na versão por categorias, deixando agrupadas propriedades de layout, dedados, etc., como no Microsoft Access, por exemplo.

Aproveitando o assunto de vários projetos ao mesmo tempo, uma das melhoresvantagens do Visual  BASIC 5.0 foi a interligação entre os projetos: caso um form queesteja sendo usado por mais de um projeto seja alterado, o Visual  BASIC avisará aousuário dessa alteração e de que possivelmente poderá haver erro em algum projeto, umavez que as propriedades não se cruzarão corretamente.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 7

Page 8: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 8/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

CONHECIMENTO EXIGIDO PARA APRENDIZADO

Normalmente, quando alguém pensa em fazer um programa para computador, já é um usuário com

certa experiência. De programação mesmo, não é preciso saber nada (se bem que quem já sabe BASIC terámuito mais facilidade).

O conhecimento do inglês (mesmo que superficial) seria interessante, pois os comandos do VB sãoderivados desta língua e o help do VB (muito bom, por sinal) é todo em inglês. (Palavras emprestadas de umapágina da INTERNET no Brasil (do programador em VB, Leandro Motta Barros, de quem tive ajudasubstancial para esta apostila).

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 8

Page 9: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 9/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

O QUE É O VISUAL BASIC?É uma linguagem de programação Visual orientada a objetos (a partir da versão 4.0). Até a versão

3.0 ele era orientado a Eventos.Aquela primeira frase quer dizer mais ou menos que com o VB é possível fazer programas para

Windows utilizando programação orientada a objetos (OOP).

O que são objetos?

Objetos são coisas definidas por CLASSES e que possuem propriedades, Métodos e Eventos. Umajanela, um botão e um banco de dados são objetos. Mas para entender bem o que é um objetos ainda é precisodefinir as tais das propriedades, dos Métodos e dos Eventos:

Comecemos pelas Classes. Uma janela é muito diferente de um botão, mas os dois são objetos. Issoacontece porque eles são definidos por  Classes diferentes. Classes definem um objeto a grosso modo.Definem suas propriedades, seus Métodos e seus Eventos. Classes são os moldes dos objetos.

Um botão pode ser diferente do outro (maior ou menor, com uma legenda diferente...). Mas comoisso é possível se eles pertencem à mesma classe? Porque suas propriedades são diferentes. As propriedadesdefinem características mais específicas dos objetos. Um botão tem, por exemplo, propriedades quedeterminam sua altura, sua largura e sua legenda.

Um Método é uma coisa, uma função, uma ação que age sobre um objeto. Por exemplo, se tivermosuma lista (tipo as listas de tópicos no "procurar" da ajuda do Windows), adicionamos ou removemos itensatravés de Métodos. Ou ainda, se quisermos mover um certo objeto pela tela, poderíamos usar um Método.

Por fim, o Evento. Digamos que em um certo programa, pressionamos um botão e um Beep éemitido. Como o programa sabe quando apertamos o botão? Ele sabe porque quando um objeto da classebotão é clicado, é gerado um Evento. E é a esse Evento que está associado o Código (comandos) queproduzirá o beep. Ocorrem também Eventos, por exemplo, ao modificarmos o texto de uma caixa de texto ouao mover o cursor do mouse sobre uma janela.

Só para ficar mais claro, um exemplo não 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 Método "PoeOvo" e um Método "Cacareja". E ela geraria Eventos ao dormir aoacordar e ao ser ameaçada.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 9

Page 10: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 10/57

 

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

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

Onde podemos visualizar as APIs do Windows: suas constantes, declarações e tipos de dados. O mais

importante desse utilitário é que podemos selecionar qualquer parte daqui e copiar e colar no Código doprojeto do VB.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 10

Page 11: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 11/57

Page 12: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 12/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 12

Page 13: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 13/57

 

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

5) O quinto item é o próprio VB 5.0, que ao ser ativado abre a janela abaixo, onde devemos escolher o tipo deprojeto que desejamos criar, abrir um existente ou os mais recentes:

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 13

Page 14: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 14/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

Após escolher a opção padrão Standard EXE aparece a tela abaixo, que é o ambiente de programação doVisual Basic 5.0 Edição Interprise:

Todas as janelas acima (Principal, ToolBox, Projeto, Propriedades e Formulário) são exibidas por default.* Toolbox - Providencia um conjunto de ferramentas que você usa durante o projeto para colocar controlesdentro de seu form (janela de interface com o usuário).

* Menu Bar - Mostra os comandos usados para construir a sua aplicação.

* Form - É a janela na qual você irá construir a interface da sua aplicação. No form você irá adicionar controles , gráficos , figuras que irão criar a aparência final da sua aplicação.

• Project Window - Lista os forms , Módulos de Código.•

* Properties Window - Lista as propriedades existentes para um form ou outro controle selecionado. Uma

property (propriedade) é um valor ou característica associada a um objeto tais como tamanho , caption ou cor.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 14

Page 15: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 15/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

A TOOLBOX DO VB5:(A ToolBox que aparece na próxima página é do VB4).

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 15

Page 16: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 16/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

B) Agora a força do VB, a janela TOOLBOX (Caixa de Ferramentas) - é a janela que traz os Controles (asferramentas no VB) 

- Pointer – Não é um Controle, mas uma ferramenta que servepara mover e dimensionar Controles;- PictureBox – Exibir figuras ou ícones nos Formulários.Também responde ao Evento click.

- Label – Etiqueta ou rótulo, exibe um texto que não pode ser editado pelo usuário. Uso: Títulos.

- TextBox – Exibe uma área onde o usuário pode digitar texto.

- Frame – Moldura para agrupar Controles para que funcionemde forma lógica.

- CommandButton – Botão de Comando. Executa ação ao ser clicado.

- CheckBox – Pode assumir valores falso ou verdadeiro. Em um mesmo Formulário váriosCheckBoxes podem assumir o valor verdadeiro ao mesmotempo.

- OptionButton – Pode também assumir valores falso/verdadeiro, mas em um mesmo Formuláriosomente um OptionButton pode assumir o valor verdadeiro.

- ComboBox – Combina caixa de texto com caixa de listagem. O usuário pode digitar ainformação como também pode encolher da lista.

  - ListBox – Exibe uma lista de itens que o usuário pode selecionar.

- 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 usuário pode selecionar um.

- DirListBox – Exibe uma lista de diretórios (pastas) e permite que o usuário selecione um.

- FileListBox – Idem para arquivos.

- Shape – Adiciona diversas formas geométricas ao Formulário.

- Line – Adiciona linhas a Formulários.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 16

Page 17: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 17/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

- 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 informações contidas neste.

 OLE – Incorpora objetos de outros aplicativos em um Formulário.

- CommonDialog – Exibe um conjunto de caixas de diálogo comuns no Windows, abrir arquivo,imprimir, fontes, salvar, etc.

- ToolBar – Contem uma coleção de Botões e é utilizado para criar Barras de Ferramentas queestão associadas com uma aplicação.

- StatusBar – Cria uma Barra de Status para um programa com até 16 painéis contidos em umacoleção de painéis.

- ProgessBar – Barra que indica o progresso de uma operação.

- ImageList – Contém uma coleção de objetos ListImage. Para exibir imagens.

- DBList – Automaticamente preenche uma lista com campos de um DataControl e opcionalmentepassa o campo selecionado para um segundo DataControl. O DBCombo é similar mas permiteeditar o campo selecionado.- DBGrid – Exibe e manipula uma série de linhas e colunas representando Registros e Campos de

um objeto Recordset.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 17

Page 18: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 18/57

 

OBJECT BOXSETTING BOX

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

C) A JANELA DE PROJETOAs características do ambiente Windows (interface gráfica, janelas, objetos, Eventos, mouse, ícones,

botões, etc.) são trabalhadas no Visual  BASIC. O ponto de partida do para o desenvolvimento do VisualBASIC é uma janela – o Formulário. Realmente uma janela é a interface entre o programa e o usuário. Elainterage com o usuário. Um PROJETO é um conjunto de arquivos que compõem a aplicação. Estes arquivosque compõem a aplicação podem ser visualizados na janela Projeto do VB (Project Window).

Esta é a do VB4

Formulário contem Um Módulo Class contém as defi-A descrição e o códi- nições características de uma Clas-go associado a este. se incluindo suas propriedades e Métodos.Um Módulo padrãocontém declarações e Um arquivo Resource pode conter procedures. todos os Bitmaps, strings e outros dados de um

projeto.Esta é a do VB5

Para poder compartilhar Código em todo o projeto deve-se colocar este Código em um Módulo edeclarar a Procedure como Global.O ambiente de programação do Visual BASIC provém inúmeras ferramentas para auxiliar nodesenvolvimento de aplicações gráficas: Formulários, Caixa de Ferramentas (Controles), Paleta de Cores,Propriedades, Eventos predefinidos, Janela de Módulo interativa e com help on-line, Object Browser, APIViewer, Setup Wizard, etc.

D) A JANELA DE PROPRIEDADESEsta é do VB4

Esta é uma janela muito útil (economiza muitas linhas deCódigo e a cada versão vem mais rica.Todas estas propriedades indicadas (nome, cor de frente, cor de fundo,título, aparência, caixa de controle, habilitada, etc.) são referentes a umobjeto, cujo nome aparece na Barra de títulos da janela (Form1 no caso dajanela ao lado).

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 18

Page 19: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 19/57

 CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

Esta é a janela de Propriedades do VB5: Form Layout (Visualiza-ção do Projeto)

E) JANELA DO FORMULÁRIO

O Formulário é o principal objeto do VB, é a janela que forma a interface com o usuário. Contêmbotões, menus, figuras, etc. Suas Propriedades principais são: 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).

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 19

Page 20: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 20/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

CRIANDO APLICAÇÕES* Diferença entre uma Aplicação Tradicional e outra Event-Driven ou seja ativada por  Eventos ou

Orientada a Objetos.

Em uma aplicação tradicional ou programada de forma procedural , a aplicação por si só controla que porçõesdo Código serão executadas. A execução começa na primeira linha de Código e segue um caminho pré-definido através de toda a aplicação , chamando subrotinas conforme for sendo necessário.

Em uma aplicação controlada por  Eventos ou event-driven , uma ação do usuário ou do sistema , ativa umprocedimento associado a este Evento. Assim a ordem através do qual o seu Código de programa é executadodepende de quais Eventos ocorram , que por sua vez estes Eventos dependem das ações tomadas pelousuário. Esta é a essência das Interfaces Gráficas e da Programação Ativada por Eventos.

PASSOS PARA A CRIAÇÃO DE UMA APLICAÇÃO:

A. Criar a interfaceB. Setar as propriedades dos controlesC. Escrever o Código

A. CRIAR A INTERFACE.

O primeiro passo na construção de uma aplicação Visual BASIC é desenhar os objetos que irão compor ainterface. Para inserir o controle no seu form:

1. Clique no botão 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

4. Arraste a cruz até que o controle fique do tamanho desejado (arrastar significa apertar o botão esquerdo domouse e mante-lo apertado enquanto o objeto é movido com a mudança de posição do mouse)

5. Solte o botão do mouse e o controle aparecerá no form. Caso você dê um duplo clique num Controle daToolBox ele será desenhado automaticamente em tamanho padrão e no centro do Form.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 20

Page 21: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 21/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

B. SETAR AS PROPRIEDADES DOS CONTROLES

Propriedades são características que um objeto pode ter. Existem as comuns (p.e.: name) e as particulares acada objeto.

O próximo passo é setar ( colocar valores de inicialização ) as propriedades dos objetos que você criou. Ajanela Properties proporciona uma maneira fácil 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 então clique nobotão 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 formou nome de controle a partir da lista de objetos presentes no form atual.

SETTINGS BOX - Permite que você edite a inicialização da propriedade selecionada na lista depropriedades. Algumas inicializações podem ser trocadas clicando-se na seta sublinhada existente a direita dobox ; será mostrada então uma lista de opções . Você poderá clicar em um item da lista para seleciona-lo.

LISTA DE PROPRIEDADES - A coluna esquerda mostra todas as propriedades para um objetoselecionado, a coluna da direita mostra a inicialização atual para cada uma das propriedades.

C. ESCREVER O CÓDIGO.

MÓDULOS – são objetos que contêm código de programação (procedures, variáveis, constantes, tipos dedados, etc).A janela de Código é o local onde você escreve o Código  Visual  BASIC para a sua aplicação. Códigoconsiste em sentenças da linguagem , constantes e declarações. Usando a janela de Código ( Code Window ) ,você pode rapidamente ver e editar qualquer parte do seu Código dentro de sua aplicação.

Para abrir a janela de Código você deve clicar duas vezes no form ou no controle para o qual você desejaescrever Código ou então a partir da janela Project , selecione o nome do form e clique no botão View Code.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 21

Page 22: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 22/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

JANELA DE CÓDIGO(Code Window)

A janela de Código ( Code Window ) contém os seguintes elementos :

Object Box (Object) - Mostra o nome do objeto selecionado. Clique na seta a direita para mostrar a lista detodos os objetos associados a este form.

Procedures List Box (Proc) - Lista os procedimentos existentes para um objeto. O box mostra o nome doprocedimento selecionado - no exemplo acima Click . Clique na seta a direita do box para mostrar todos osprocedimentos associados a este objeto.

O CÓDIGO ( ou programa) em uma aplicação Visual BASIC é dividido em pequenos blocos chamadosprocedures (procedimentos). Um event procedure ( procedimento associado a um Evento ) contém Códigoque é executado quando um Evento ocorre ( como por exemplo quando o usuário clica em um botão) .

Cada controle tem uma parte do código associada a si. Existem controles que tem apenas propriedades sem anecessidade de código (acontece muito com os Labels), sem qualquer código

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 22

Page 23: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 23/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

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 botão de comando. Note que uma máscara(template) para a escrita do Código para este Evento está sendo mostrada na janela de Código

3. Digite o Código desejado entre as sentenças Private Sub e End Sub e a procedure se parecerá com o textoabaixo.

Private Sub Command1_Click ( )

Text1.text = "Hello World!"

End Sub

CRIAÇÃO DE MENUSMenus são criados usando a janela Menu Design. Você adiciona itens ao menu em tempo de projeto pelacriação de controles de menu e setando propriedades que definirão sua aparência.

EDITOR DE MENUS

(Menu Design)Para a criação de um Menu devemos ir ao menu Tools – Menu Editor ou teclar Ctrl+E.

1) Começamos digitando o Título (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 referência em Código;3) Os outros itens não são obrigatórios;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 aparecerão três pontinhos a esquerda do título do item que ficará abaixo donome do Menu.

5) Os Menus e os itens de Menus podem ser referenciados em Código através do Evento Click , que deveser feito no Formulário após teclarmos em OK .

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 23

Page 24: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 24/57

 

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

 

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 24

Page 25: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 25/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

4 - CONECTANDO FORMULÁRIOS

A adição de novos formulários na sua aplicação é feito através da opção File na barra de menu , comandoNew Form ou clicando no Botão Form.

Comandos para controle do form :

Comando Ação Load form Carrega o form mas o deixa invisível Form.Show [modo] Mostra o form se ele estiver invisível, se

ele não estiver carrega então ele primeirocarrega o form e depois o mostra , estilorefere-se a se o form que fez a carga dopróximo form , fica parado até a desativaçãodo novo form (modo =0 ou modeless) ou secontinua a sua execução sem se importar com o

próximo form (modo=1 ou modal)

 Unload form O form é descarregado da memória e a suaexecução é encerrada

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 25

Page 26: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 26/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

CONTROLES, MÉTODOS, EVENTOS E PROPRIEDADES

PRINCIPAIS CONTROLES DO VB5

  CommandButton (Botão de Comando) –  É um dos Controles mais utilizados em programas doWindows, não apenas em VB. Sua função principal é executar comandos quando clicado. O Evento Click éo mais importante para ele. As Propriedades  Caption, Name, Enabled  são importantes entre outras. Apropriedade Enabled indica se o botão responderá ao Evento Click ou não.

  PictureBox (Caixa de Imagem) - Este Controle é utilizado para exibir figuras nos Formulários etambém responde ao Evento Click. A propriedade Picture é a que abre a caixa de diálogo para indicarmos opath do ícone ou da figura que queremos exibir.

  Label (Etiqueta ou Rótulo) – Exibir um texto onde o usuário não possa alterar. Sua propriedadeprincipal é a Caption (que é o texto que o Controle exibirá). Outras Propriedades de formatação do texto:FontName, FontBold, Alignment, etc.

  TextBox (Caixa de Texto) – Exibir um texto onde o usuário possa editar. Sua propriedade principal é oText (que é o texto que o Controle contem). As Propriedades de formatação do texto são idênticas ao Label.

  CheckBox (Caixa de Verificação) – Útil quando necessitamos informar ao sistema que determinadasinformações são verdadeiras ou falsas. Em um mesmo Formulário vários CheckBoxs podem assumir o valor verdadeiro ao mesmo tempo. Algumas Propriedades: Visible, Enabled e Caption.

  OptionButton (Botão de Opção ou botão de rádio) – Com este Controle somente uma das opçõespode 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 são utilizadas para identificar os itens da lista. Os Métodos AddItem e RemoveItem são utilizadospara adicionar e remover itens.

  ComboBox (Caixa de Combinação) – Combinação de uma TextBox com uma ListBox. Pode-se editar um texto na parte superior ou selecionar um item da lista. Propriedades idênticas as da ListBox.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 26

Page 27: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 27/57

Page 28: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 28/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

EVENTOS COMUNSO Visual  BASIC apresenta alguns Eventos de objetos que são usados freqüentemente, e se

apresentam na maior parte dos objetos de um form. Abaixo segue uma relação dos principais e suasrespectivas funções:

· Click : É um Evento que executa determinadas ações especificadas pelo programador quandoalguém clica sobre alguma coisa.

· Dblclick : Executa determinadas ações especificadas pelo programador quando alguém clica duasvezes sobre algum objeto.

· Resize: executa algum comando pré estabelecido quando o usuário redimensiona o form.

· Load : executa ordens sempre que o programa for carregado na memória.

· Gotfocus: quando um objeto, um botão por exemplo, apenas ganha o foco, sem executar as suasfunções 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, são acionadosdeterminados comandos.

· Mousemove: sempre que se move o ponteiro do mouse, algo será ativado. Um exemplo prático, sãoos protetores de tela, que são desativados quando mexemos o mouse.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 28

Page 29: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 29/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

PROPRIEDADES GERAISAs principais propriedades dos objetos do Visual BASIC, que estão presentes em praticamente todos

os objetos do Visual BASIC, são as seguintes:

· Caption - Nos botões, form, e frames, altera o seu título a ser exibido no form.

· Enabled - Presente em todos os objetos, permite que os objetos sejam acessados, caso ela estejadefinida como False. · Visible - Torna o objeto invisível caso esta propriedades esteja configurada comoFalse.

· Font - presente em objetos como textbox, label, botões command e botões check e option. Permiteque seja alterada a fonte de um objeto. Que agora no VB5 configura tudo sobre fonte.

· Name - altera o nome do objeto, para fins de referência durante a programação.

· 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 presença do botão Maximizar), Minbutton (ativa ou desativa presença do botão Minimizar), Left (altera a distância do form a partir da extrema esquerda do vídeo) e Top (altera a distância do form a partir dotopo do vídeo).

Em geral, todas as propriedades dos objetos presentes no Visual BASIC são bastante intuitivas, noque se refere aos seus nomes. Isto pode ser notado claramente nas propriedades Visible, Enabled, Name, entreoutras.

Bem, já que sabendo o que são Classes, Propriedades, Métodos, Eventos e Objetos, vamosusá-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 não estiver visível, use omenu View / Properties ou a tecla F4). Na verdade nem todas as propriedades estão listadas.

Note que a janela Properties tem, logo abaixo da barra de título, uma "caixa de seleção"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. Logoabaixo há a lista das propriedades. À esquerda ficam os nomes das propriedades e a direita os seus respectivosvalores.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 29

Page 30: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 30/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

Note que no VB a janela é chamada de Form (a partir de agora uma janela que você criar seráchamada de Form). Então, quer ver os Eventos que um Form possui? Dê-lhe um duplo clique. Abre-se umajanela de edição. Aliás, em janelas como estas que o seu programa será escrito. No topo desta janela há duas"caixas de seleção"; a primeira ("Object:") lista os objetos que estão na janela. A Segunda ( "Proc:"), listatodos os Eventos do objeto. Dando um duplo clique no form, a janela de edição se abrirá. O Evento "Load"do Form estará selecionado. Já haverá 2 linhas incluídas: "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 subprocedimento.Qualquer coisa que você colocar entre aquelas duas linhas será executado quando aquele form for carregadona memória (porque o Evento é o Load-Carrega).

EXEMPLO DE UM PROGRAMA

Vamos fazer um programinha: você clica em um botão e o título da janela passa a ser "O BotãoFoi Clicado"; dê um duplo-clique no form e o botão se moverá na tela.

Como exemplo serve! A primeira coisa a fazer é criar um botão. Para um botão de tamanho"normal", dê um duplo-clique na ferramenta "CommandButton" na caixa de ferramentas (toolbox). Deixe obotão deste tamanho, no meio da tela. No VB cada objeto tem um nome; quando você cria um controle (umobjeto como um botão, uma barra de rolagem, etc.), o VB lhe dá um nome "genérico" automaticamente. Onome do objeto é uma propriedade. Vamos trocar o nome do botão para "MeuBotão" 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 botão para "MeuBotão".

Vamos agora trocar a legenda do botão para "Clique-me". Ache a propriedade "Caption" dobotão 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 não executado). Você já deve imaginar que para trocar otítulo da janela deveríamos trocar a sua propriedade "caption". Certo, mas isto só deve acontecer ao clicar obotão. Dê um duplo-clique no botão que você criou (para abrir a janela de edição). O Código (ou seja, os

comandos) para trocar o caption do form deverá ser colocado no Evento Click do botão; assim, estescomandos só serão executados quando o botão for clicado. 

Ao criar um controle, a propriedade que tem o foco é a Caption, ou seja, logo que criamos umLabel  (p.e.) podemos imediatamente digitar seu Caption (mesmo que a janela de propriedades não estejavisível).

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 30

Page 31: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 31/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

Para alterar uma propriedade durante o Run-Time (enquanto o programa é executado), o VBusa a seguinte sintaxe:

Objeto.Propriedade = NovoValor 

Então para trocar o caption do form usaríamos o seguinte Código (note que o Evento é o click):

Private Sub MeuBotão_Click ()MinhaJanela.Caption = "O Botão Foi Clicado"

End Sub

Veja bem: como o valor do caption é um texto, deve estar entre aspas. Com isto você já é capazde se virar com as propriedades e ter uma boa noção sobre os Eventos. Agora vamos aos Métodos:

Para mover o botão vamos usar o Método Move do botão. Como a movimentação acontecerá aoduplo-clicar o form, o Código vai no Evento DblClick do Form. A seguinte sintaxe é usada no VB paraMétodos:

Objeto.Método Atributos (Nem sempre há atributos)

Para mover o botão, usaremos o seguinte Código (lembre-se sempre de colocar o Código emseu devido Evento):

Private Sub MinhaJanela_DblClick ()MeuBotão.Move 100, 100

End Sub

Os atributos 100, 100 vão colocar o botão perto do canto superior esquerdo do form. Execute oprograma (tecla F5 ou o botãozinho do tipo play na barra de ferramentas). Clique o botão e depois dê umduplo clique no form. Se tudo funcionou direito, parabéns.

O VB tem dezenas de Classes com centenas, milhares de propriedades, Métodos e Eventos. É

muito difícil falar sobre todos em pouco espaço. Mas todos eles estão muito bem explicados no help on linedo VB. Procure Methods, Properties e Events e brinque bastante com eles. Brinque também com outroscontroles, não só botões. Comece a usar  Labels ("etiquetas" que mostram um texto), PictureBoxes (paramostrar desenhos) e outros.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 31

Page 32: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 32/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

VARIÁVEISO QUE SÃO VARIÁVEIS?

Bem, variáveis são coisas que, em programação, servem para armazenar dadostemporariamente na memória. Digamos que você queira, fazer uma "calculadora"; os números serãoarmazenados em variáveis.

Como eu crio uma variável?

Normalmente não é preciso criar uma variável; basta usá-la que ela é criada automaticamente.Uma variável é identificada por um nome. Este nome deve obedecer às seguintes regras:

- Não pode haver repetição de nomes;

- Deve começar com uma letra;

- Não pode conter espaços, pontos, vírgulas e outros caracteres do tipo: !, $, %.

- Deve ter, no máximo, 255 caracteres.

Muitíssimas vezes você usará variáveis para guardar valores de propriedades. E depois poderáatribuir o valor da variável a uma outra propriedade. A sintaxe é esta:

Variável = Objeto.Propriedade => Coloca na variável o valor dapropriedade

Objeto.Propriedade = Variável => Coloca na propriedade o valor da

variável

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 32

Page 33: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 33/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

EXEMPLO DE MÁQUINA DE SOMAR 

Para dar um exemplo, vamos fazer uma "máquina de somar": em um form coloque duas "textboxes", uma "label" e um botão. Nas caixas de texto serão colocados os números. Um clique no botão e asoma aparecerá na "label". Vamos usar os nomes padrão dos controles (já que o projeto é pequeno). Troque acaption do botão para "Soma" e apague o texto das text boxes.

Todo o Código estará no Evento Click do botão:

Private Sub Command1_Click ()Numero1 = Val(Text1.Text)Numero2 = Val(Text2.Text)Soma = Numero1 + Numero2Label1.Caption = Str(Soma)

End Sub

Acho que até deu para entender. Mas o que são aqueles "Val (...)" e "Str (...)"?

Val e Str são funções. Funções são comandos que retornam algum dado ou valor.

Seguidamente uma função requer atributos (que são colocados entre parênteses). Eis o porquê de usar essasfunções: o VB diferencia números de textos. Mas "12" pode ser um texto. Normalmente, quando algo estáentre aspas, é considerado texto. A propriedade "Text" (assim como a "Caption") sempre contém um texto.Uma soma entre os textos "1" e "1" resultaria em "11"! Por isso, usamos a função Val, que pega um texto etransforma-o em um valor numérico. A função Str, que aparece depois faz o contrário, pega um número etransforma em uma string (texto).

Note que você também pode colocar um valor numa variável diretamente:

Valor = 10 ou Msg = "Isto aqui é uma string."

DECLARANDO VARIÁVEIS

É possível (e importante) "declarar" variáveis, ou seja, dizer ao programa que você irá usá-lasantes que elas sejam "automaticamente criadas".

Mas para que "declarar" se o processo é automático?Em algumas linguagens é obrigatório (C e Java).

Principalmente por dois motivos: velocidade e economia de memória Existem vários tipos dedados no VB (veja tabela na próxima página). Cada um destes tipos tem uma limitação em termos de valoresque pode adquirir, mas também se diferenciam pela quantidade de memória que ocupam.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 33

Page 34: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 34/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

CONSTANTES:CORES:

vbBlack, vbRed, vbGreen, vbBlue, etc.

TIPOS DE DADOS DO VB5

Data type Storage size RangeByte 1 byte 0 to 255Boolean2 bytes True or FalseInteger 2 bytes -32,768 to 32,767Long(long integer) 4 bytes -2,147,483,648 to 2,147,483,647Single(single-precision floating-point) 4 bytes -3.402823E38 to -1.401298E-45 for negative values;

1.401298E-45 to 3.402823E38 for positive valuesDouble(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.5807Decimal 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-zeronumber is +/-0.0000000000000000000000000001Date 8 bytes January 1, 100 to December 31, 9999Object 4 bytes Any Object referenceString(variable-length) 10 bytes + string length 0 to approximately 2 billionString(fixed-length) Length of string 1 to approximately 65,400Variant(with numbers) 16 bytesAny numeric value up to the range of a Double

Variant(with characters) 22 bytes + string length Same range as for variable-length StringUser-defined

(using Type) Number required by elements The range of each element is the same as therange of its data type.

Note Arrays of any data type require 20 bytes of memory plus 4 bytes for each array dimension plusthe number of bytes occupied by the data itself. The memory occupied by the data can be calculated bymultiplying the number of data elements by the size of each element. For example, the data in a single-dimension array consisting of 4 Integer data elements of 2 bytes each occupies 8 bytes. The 8 bytes requiredfor 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.

Quando você não declara uma variável, ela é considerada do tipo Variant. Note que este tipoocupa pelo menos 16 bytes de memória, bem mais que os outros. A sintaxe para declarar uma variável podemudar um pouco, dependendo do "escopo" que você deseja. ("escopo" é a disponibilidade da variável emcada um dos "níveis" do programa - veja o próximo capítulo). Generalizando, a sintaxe é esta:

ComandoDeDeclaração NomeDaVariável as TipoDeDado

De um modo geral, o "ComandoDeDeclaração" será o comando "Dim". Por exemplo, se quiser criar uma variável do tipo Integer chamada MinhaVariavel, usaríamos:

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 34

Page 35: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 35/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

Dim MinhaVariavel as Integer 

Mas, será que faz muita diferença gastar 2, 4, 8 ou 16 bytes da memória? Hoje os computadorestêm *muita* memória.

Tudo bem, em programas pequenos isto não será uma diferença crucial, mas em um programamaior, com centenas de variáveis, isto pode fazer a diferença. Além disto, devemos lembrar que o Windowspode trabalhar com vários programas abertos ao mesmo tempo; e se seu programa for "gordo" poderáatrapalhar a performance dos outros.

Além disto, quanto menos memória ocupa um certo tipo de dado, mais rapidamente ele éprocessado. Por isso, procure sempre usar o "menor" tipo de dado possível. Mas lembre-se: se vocêultrapassar o limite da variável acontecerá um erro (tente criar uma variável do tipo Byte e atribua a ela umvalor maior que 255).

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 35

Page 36: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 36/57

Page 37: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 37/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

solucionado declarando a variável com o comando Static, e não Dim).

Vamos solucionar nosso problema. Primeiro, vá nas duas Subs que criamos e recorte (Ctrl+X) alinha "Dim Nome as String" de ambas. Agora dê um duplo clique no Form (até agora só estamos usando um)para mostrar a janela de edição. Na "Caixa de Seleção" Object, no canto superior esquerdo, escolha"General". Note que caixa "Proc:" vira "Declarations". Agora, abaixo, cole (Ctrl+V) a linha Dim Nome asString. E teste o programa de novo. Deve ter funcionado. Quando declaramos variáveis na seção Declarationsde um Form, aquela variável estará disponível para todas as Subs daquele Form.

E a segunda janela?

OK, crie um segundo Form. Basta clicar no primeiro botão da barra de ferramentas ou usar omenu Insert | Form. Coloque neste novo form o nome de JanSobre. Nele coloque uma Label ("lblObrigado").No Evento Load deste form coloque o seguinte Código:

lblObrigado.Caption = Nome & ", obrigado por utilizar este programa."

Uma OBSzinha: "&" é um operador que junta duas Strings em uma só (operadores sãocomandos que realizam operações - lógicas, matemáticas...-, como +, -, AND e o próprio &. ). Podemos usar “+” no lugar de “&”.

E na seção Declarations deste Form, coloque Dim Nome as String. Agora vamos "ligar" os doisforms. Volte ao primeiro form e inclua o seguinte Código ao botSobre:

Private Sub botSobre_Click()janSobre.Show vbModal

End Sub

Isto mostrará a janSobre quando o botão for clicado. vbModal indica ao VB que esta janela será"Modal". Depois, retire o vbModal e note a diferença. OBS: Em versões do VB anteriores à 4.0, use o número1 no lugar de vbModal.

Analisando todas estas novas subs, a que conclusão chegastes?

Bem, a caption do lblObrigado deverá mostrar algo como: "João, obrigado por utilizar esteprograma." Mas se der errado de novo não me surpreendo. Já deu para notar que adoras mostrar como nãofazer... Mas vou executar.

E aí?

Deu errado. A Label mostrou apenas ", obrigado por utilizar este programa."

É normal. Lembras que uma variável declarada na seção Declarations de um Form está disponívelpara todas as Subs do seu próprio form. Nós estamos usando dois forms; essencialmente é o mesmo problemaque tivemos alguns parágrafos acima. E para problemas semelhantes, soluções semelhantes: declarar avariável em um nível "mais alto". Só nos resta o terceiro e mais abrangente nível de programação: o nível que

abrange todo o programa (o módulo).

Crie um Module. Use o menu Insert | Module, ou aquele botão da barra de ferramentas que pareceuma aranha fantasiada para o carnaval. Neste module (as versões anteriores à 4.0 do VB chamavam de GlobalModule, ou algo assim), inclua a declaração da variável Nome:

Public Nome as String

Note que declaramos usando "Public", que informa ao VB que esta variável será "Pública",disponível para todas as Subs de todos os Forms deste programa. Agora, retire as duas linhas "Dim Nome as

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 37

Page 38: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 38/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

String" que estão nas seções Declarations de cada Form. Execute.

Funcionou!

Então, só para uma aparência mais bonitinha, aí vai um esquema dos níveis do programa:

Falta responder o que é escopo!

Escopo são os níveis do programa. Por exemplo, aqueles dois erros que tivemos durante ocapítulo foram causados porque as variáveis estavam "fora de escopo".

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 38

Page 39: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 39/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

ESTRUTURAS E LOOPS

Loops e estruturas permitem que um Código  VB (ou de qualquer outra linguagem) sejarepetido várias vezes. Permitem também analisar dados e tomar decisões diferentes dependendo do resultado.Na verdade loops são criados por estruturas (as estruturas de loop).

Afinal, como é que eu faço para utilizar uma estrutura?

Não é difícil; as estruturas são criadas através de alguns grupos de comandos. A seguir listo ecomento as estruturas disponíveis no VB.

If... Then... Else...

Isto, em bom português, quer dizer Se... Então... Senão... Eis um exemplo de como utilizá-la:

If MinhaVariavel <= 4 ThenBeep

ElseIf MinhaVariavel = 5 Then

BeepBeepElse

BeepBeepBeep

End If 

Neste exemplo, se a MinhaVariavel for menor ou igual (<=) a 4, então 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 serão emitidos). Podem ser incluídos quantos ElseIf forem desejados, mas talvez sejamelhor usar a estrutura Select Case (veja adiante) do que vários ElseIf. O bloco em azul (Else), tambémopcional, será executado somente se nenhum dos blocos anteriores (If e ElseIf) for executados. End If finaliza

a estrutura.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 39

Page 40: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 40/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

Select Case

Vamos direto ao exemplo:

Select Case MinhaVariavel

Case 0BeepCase Is <= 5

BeepBeep

Case ElseBeepBeepBeep

End Select

Esta estrutura, inicialmente, "seleciona" o valor de MinhaVariavel. Depois verifica vários casos(quantos forem desejados). Caso MinhaVariavel seja igual a 0, um beep será emitido. Caso seja menor ouigual a 5, teremos dois beeps. O bloco Case Else, que é opcional e está em azul, será executado somente casonenhum dos blocos case anteriores tenha sido executado. End Select finaliza a estrutura.

Do... Loop

Esta estrutura executa um certo grupo de comandos até (Until) ou enquanto (While) que uma certacondição é verdadeira. Por exemplo:

Randomize Timer Contador = 0Do While MinhaVariavel <> 5 ‘Enquanto MinhaVariavel <>5

Contador = Contador + 1Aleatório = Int (Rnd * 10) ‘Sorteia número inteiro entre 0 e 9If Aleatório = 5 Then

MinhaVariavel = 2End If 

LoopMsgBox Str(Contador)

Aqui há algumas observações interessantes: a primeira é que é possível colocar estruturasdentro de outras. Aqui, tivemos uma If... Then... dentro de uma Do... Loop. Isto é chamado de estruturasaninhadas.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 40

Page 41: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 41/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

Quando o computador chega na linha Do While... ele verifica se a condição (MinhaVariavel<> 5 ) é verdadeira. Se for ele seguirá até encontrar o comando Loop. Aí ele volta à linha Do While... e ociclo se repete enquanto a condição for verdadeira (quando for falsa, a execução segue na linha logo abaixo deLoop. Se tivéssemos usado Do Until ao invés de Do While, o loop seria executado até que a condição setornasse verdadeira.

Continuando a análise: as linhas em azul criam um número aleatório. Note que se este número for 5, MinhaVariavel receberá o valor de 2 (que é diferente de 5 - satisfaz a condição do loop; na próxima vezque a execução chegar no Do While, o loop será encerrado). A variável Contador, inicializada em 0, éacrescida de 1 a cada execução do loop. No final, uma caixa de mensagem (MsgBox) é exibida mostrandoquantas vezes o loop precisou ser executado.

Lembre-se que para testar este exemplo é preciso colocar o Código no Evento de algum objeto(como no Click de um botão).

Mais uma coisinha: dentro de uma estrutura Do... Loop pode ser colocado o comando Exit Do.Quando um Exit Do for encontrado, a execução automaticamente vai para a linha logo a seguir do Loop,independentemente da condição estar falsa ou verdadeira.

For... Next

A estrutura For... Next é ideal para realizar tarefas repetitivas. Que tal somar todos os númerospares de 50 a 100 (50+52+54+...+100)?

For Cont = 50 To 100 Step 2Soma = Soma + Cont

Next ContMsgBox Str(Soma)

Não é difícil entender este programinha: O laço (laço é o mesmo que loop) iniciado pelo For utiliza uma variável (que eu chamei de Cont) que inicia em 50. Quando a execução chega no Next, volta àlinha For... Ali, Cont será incrementado de 2 ("Step x" identifica de quanto será o incremento. A ausência doStep x é equivalente a Step 1). Quando Cont passar de 100 e a execução chegar à linha For Cont..., aexecução continua a partir da linha logo após o Next Cont. É possível sair do loop antes que a variávelcontador chegue ao valor planejado. Basta que o computador veja o comando Exit For.

Bem, basicamente é só isso.Na verdade existem outras estrutura.

OBSERVAÇÃOConhecendo o uso básico de objetos, o uso básico de variáveis as estruturas do VB e os níveis do

programa, você já estará pronto para fazer programas bem bonitinhos. Como já disse antes, não pretendoanalisar 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á.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 41

Page 42: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 42/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

SUBPROCEDIMENTOS E FUNÇÕESMas voltando aos subprocedimentos: você já sabe que quando o usuário interage com o seu

programa (clicando em um botão, por exemplo) é gerado um Evento. Para responder a este Evento éexecutado um suprocedimento.

EXEMPLOEntão um subprocedimento é tudo aquilo que colocamos entre as linhas "Private Sub..." e "End

Sub" de um "respondedor de Eventos"?

Bom, aquilo é um subprocedimento sim. Mas subprocedimentos não é só isto. Na verdadeexistem dois tipos de subprocedimentos: Subs e Functions.

Vamos a um exemplo (outro daqueles inúteis). Em um Form (Form1), coloque uma ScrollBar (horizontal ou vertical, tanto faz). Ajuste seu Name para "BarraRol", seu Max para 15 e seu LargeChangepara 5.

Abrindo um pequeno parênteses: as propriedades Max e Min de uma ScrollBar determinam ovalor máximo e mínimo, respectivamente, que a ScrollBar pode possuir. A propriedade SmallChangedetermina de quanto será o incremento (ou decremento) quando uma daquelas setinhas nas pontas daScrollBar é 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. Coloque no Form1 também umaLabel (LabelValor) e ajuste seu Caption para 0. Agora, ao Evento Change da BarraRol, acrescente o seguinteCódigo:

Private Sub BarraRol_Change()LabelValor.Caption = Str(BarraRol.Value)

End Sub

Neste exemplo criamos uma Sub (note que todo o Código está delimitado pelas linhas PrivateSub... e End Sub).

E aquele "Private" tem algo a ver com escopo?

Tem sim. Agora inclua um botão (Zerador será seu name). Quando ele for clicado a ScrollBar irá "zerar":

Private Sub Zerador_Click()BarraRol.Value = 0

End Sub

Certo. Agora, vamos incrementar. Coloque um Shape (é aquele botão da caixa de ferramentascom o desenho de um circulo e dois quadradinhos coloridos) no Form1. Nomeie este Shape como Figura eseu FillColor para azul (&H00FF0000&) e seu FillStyle para 0 (Solid). O Shape fica azul.

Digamos que a cor deste Shape mude a cada vez que o botão for clicado e cada vez que aScrollBar tenha seu valor modificado. Como faríamos isto?

Daria para colocar o Código necessário nos subprocedimentos BarraRol_Change eZerador_Click.

Daria, mas estaríamos escrevendo o mesmo Código duas vezes. Isto não é muito interessante.A melhor solução é criar um subprocedimento (uma Sub) que não esta diretamente associado a um Evento.Para fazer isto vá até a janela de edição do Form1 (dando um duplo clique em qualquer controle ou no próprioForm1). Na caixa de seleção "Object" escolha General. Aí, entre com o seguinte Código:

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 42

Page 43: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 43/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

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". Oque este subprocedimento faz é uma operação lógica XOR entre a cor atual do Shape e o número &HFFFFFF(255 em hexadecimal). Este novo valor é atribuído à cor do Shape. Devido às características 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 adequados. Isto é feitoalterando as Subs BarraRol_Change e Zerador_Click. Elas Ficarão assim:

Private Sub BarraRol_Change()LabelValor.Caption = Str(BarraRol.Value)MudaCor 

End Sub

Private Sub Zerador_Click()BarraRol.Value = 0MudaCor 

End Sub

Na verdade só incluímos a chamada à Sub MudaCor que acabamos de criar.Outra coisinha: uma Sub pode ser escrita tanto na seção General de um Form como em um

Module.

E aquela história de escopo?

Ah, sim. Subprocedimentos também têm escopo. Um subprocedimento (seja Sub ou Function),quando declarado como Private pode ser "chamado" apenas por subprocedimentos que estejam no mesmoForm ou Module que ele. Para permitir que seu subprocedimento seja chamável de qualquer ponto doprograma declare-o como Public (é idêntico ao que fazemos com variáveis).

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 43

Page 44: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 44/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

APROFUNDANDO

Talvez você esteja pensando o que faz aquele par de parênteses vazios ao lado de cada nome desubprocedimento.

Dentro daqueles parênteses colocamos algum parâmetro que será utilizado pelosubprocedimento. Vamos tornar nosso programa-exemplo ainda mais fantástico: Quando a Sub MudaCor for chamada pela ScrollBar, a espessura da borda do Shape ficará com uma espessura igual ao seu Value. Quandofor chamada pelo Botão, a borda ficará maior ainda (Uau!).

A primeira coisa a fazer é rescrever a Sub MudaCor:

Private Sub MudaCor(MeuValor As Byte)Dim c As ByteFigura.FillColor = Figura.FillColor Xor &HFFFFFFFigura.BorderWidth = MeuValor 

End Sub

Agora sim! Temos alguma coisa dentro dos parênteses!Aquilo que está entre os parênteses significa o seguinte: quando esta Sub for chamada, deverá ser 

passado um valor (no caso um número, um Byte). Este valor estará disponível para a Sub na forma de uma

variável (no exemplo, "MeuValor"). Não é difícil compreender isto analisando o exemplo. A estes valores"passados" a um subprocedimento damos o nome de argumento.

O próximo passo é alterar os outros subprocedimentos (os associados a Eventos) para que elesforneçam o argumento necessário:

Private Sub BarraRol_Change()LabelValor.Caption = Str(BarraRol.Value)MudaCor BarraRol.Value

End Sub

Private Sub Zerador_Click()BarraRol.Value = 1MudaCor 30

End Sub

Na primeira Sub é passado como argumento a propriedade Value da BarraRol. Na segunda épassado um número (30) diretamente.

Ainda é preciso ajustar o Min da BarraRol para 1. Isto evitará que o programa tente dar àBorder do Shape um valor igual a 0 (o que geraria um erro).

Ainda é interessante dizer que podemos criar subprocedimentos que admitem mais de umargumento.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 44

Page 45: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 45/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

...FUNCTIONSFunctions são o segundo tipo de subprocedimento que podemos criar com o VB. Elas se

diferem das Subs porque elas retornam um valor.

Como assim?

Vamos logo a um exemplo: uma função-dado, ou seja uma função que retorna um número inteiroentre 1 e 6:

Private Function Dado() As ByteDado = Int(6 * Rnd + 1)

End Function

Esta é uma função simples, com apenas uma linha de Código. O mais importante é observar como fazemos para que a função retorne um valor: a função retorna um valor que está contido em umavariável cujo nome é igual ao nome da Function.

Usar esta função é simples: Por exemplo:

MinhaVariavel = Dado + Dado, coloca em MinhaVariavel o que seria o valor do lançamento dedois dados.

Com Functions também é possível utilizar argumentos. Por exemplo, a seguinte função retornaa soma de três números:

Private Function SomaTres(Num1 as Integer, Num2 as Integer, Num3 asinteger) As Integer 

SomaTres = Num1 + Num2 + Num3End Function

E para usar esta função:

MinhaVariavel = SomaTres (300, 20, 12) , colocaria 332 emMinhaVariavel.

CONCLUINDO

Saber quando e como utilizar Subs e Functions adequadamente é uma coisa que só vem com otempo, com a prática. Aliás, isto não acontece só com Subs e Functions...

Uma ultima observação é que subprocedimentos são comumente chamados de Procedures. Sealgum dia você vir algum texto falando em uma Procedure Sub ou Procedure Function, já sabe do que se trata.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 45

Page 46: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 46/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

DEPURAÇÃO DE CÓDIGOO Visual BASIC não pode diagnosticar ou consertar erros para você, mas fornece ferramentas que o ajudarãoa analisar. As ferramentas de depuração incluem passo a passo em linhas na execução do programa ,breakpoints , break em expressões , passos a passo em procedures e visualização de variáveis e propriedades.

Visual BASIC também inclui facilidades especiais de depuração tais como editar-e-continuar , alterando apróxima sentença a ser executada e testando o procedimento enquanto a aplicação está parada.

Durante a digitação do Código o Visual BASIC faz uma checagem prévia da sintaxe assinalando os erros emrelação as palavras chaves da linguagem. Isso só acontecerá se estiver ativada a opção Syntax Checking paraYes em Options , Environment no menu do Visual BASIC.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 46

Page 47: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 47/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

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 Não para a Pergunta doVB (Add SYSTEM.MD? to INI file?

- É então aberta a janela do VisData

- File, New, Microsoft Access, Versão 7.0

- Digitar o nome do Banco de Dados a ser criado e Save

- Na janela DataBase Window clicar com o botão direito e New Table

- No campo Table Name digitar o nome da Tabela;

- Clicar em Add Field para abrir a janela de adição de Campos;

- Onde se deve entrar com o nome, tipo, tamanho e outras característica do campo eclicar em OK 

- Inserir características de outros campos e clicar em OK, até completar os campos

- Clicar em Close para fechar a janela de criação dos campos

- Adicionar índice se necessário

- Clicar em Build the Table para construir a Tabela

- Aparece então o nome da tabela na janela DataBase Window

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

- Será aberta a janela Dynaset para que sejam inseridos os dados, clicando em Add e digitando

- Fechar então o Visual Datamaneger e o Banco de Dados está criado, podendo ser utilizado em um projetodo VB através do Datacontrol, Caixas de Texto e outros controles.

DICAS E MACETES:

SETUP DO VB 4.0-32BITs OU DO VB 5.0 EM PORTUGUÊS:Dica retirada do Site da Forum Access: www.forumaccess.com.br 

Para instalar a versão em Português do Setup Kit 5.0 recomendamosos seguintes procedimentos:

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 47

Page 48: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 48/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

1. Localize o diretorio do Microsoft Visual Basic;2. Renomeie o atual arquivo (inglês) 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 Português para este mesmo diretório;4. Faça um teste com qualquer aplicação DEMO ou que você já tenha

desenvolvido.

- Para fazer este teste, você deverá selecionar o ícone do Application SetupWizard 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!- Após gerado o arquivos de instalação, execute o arquivo "setup.exe" quefoi criado pelo Wizard.- Perceba que seu programa de instalação já encontra-se em português!

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 parausuários mais leigos.

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

COMPILAÇÃO CONDICIONAL:Procurar no Help do VB por compiler constants. (#If... Then... #Else).

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 48

Page 49: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 49/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

ABRIR BANCO DE DADOS:

Public Sub AbrirBanco(db As Database, Path_ps As String, File_ps As String)On Error GoTo TrataErr_DBPath_ps = VerificaOrtografiaCaminho(Path_ps)

File_ps = VerificaOrtografiaArquivo(File_ps)Set db = OpenDatabase(Path_ps & File_ps, False)On Error GoTo 0Exit Sub

TrataErr_DB:Select Case Err Case 3000 'Banco está aberto como exclusivo

MsgBox "O Banco de Dados está aberto para manutenção.", 16 , cNomeSistema_gsEnd

Case 3033 'Identificação ou password IncorretaMsgBox "Acesso negado. Usuário e senha, do Banco " & Arquivo_ps _ 

& ", sem permissão.", 16, cNomeSistema_gsEnd

Case 3028MsgBox "Informe o Diretório de Trabalho do Sistema " _ 

& cNomeSistema_gs & ", no Gerenciador de Programas.", 16 _ , cNomeSistema_gs

EndCase 3049 'Banco de Dados Corrompido

Call RepararBanco(Path_ps, File_ps)Resume

Case 3029 'Password IncorretaMsgBox "Acesso negado. Senha, do Banco " & Arquivo_ps & " , inválida."_ , 16,

cNomeSistema_gsEnd

Case ElseMsgBox Str$(Err) & ": " & Error$(Err), 16, cNomeSistema_gs

EndEnd Select

End Sub

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 49

Page 50: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 50/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

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 BooleanGlobal InicializandoSistema_gb As Boolean

Dim Lendo_mb As BooleanDim Alterando_mb As BooleanDim Novo_mb As Boolean

Acompanhando o Visual BASIC 5.0, vem o software Crystal Reports 4.0. É um software extremamente útil,possibilitando a rápida criação e impressão de relatórios.

Após ter criado seu relatório, insira em seu formulário um controle do Crystal. Se ele não 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 várias propriedades. Vamos a uma breve explicaçãosobre as principais, com exemplos (entre <>) e supondo o nome do seu controle ser Relatorio1

Action<Relatorio1.Action = 1> Imprime seu Relatório

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. Utilizadosomente em ambientes cliente/servidor, com acesso a bancos de dados via ODBC

Copies To Printer 

<Relatorio1.CopiesToPrinter = 3> Imprime 3 cópias do seu relatório.Destination<Relatorio1.Destination = x> manda o relatório para um dispositivo específico. No caso, x será 0 para que

o relatório seja enviado para o monitor, 1 para ser enviado à impressora e 2 para ser gravado em arquivo.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 50

Page 51: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 51/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

Password<Relatorio1.Password = "Litotech "> Envia a senha Litotech para um

arquivo .MDB PrintFileName<Relatorio1.PrintFileName = "C:\CONTROLE\CNTR.TXT "> imprime o

relatório em um arquivo chamado CNTR.TXT

ReportFileName<Relatorio1.ReportFileName = "C:\CONTROLE\OPEN.RPT "> especifica ao controle que o relatóriocorrente é o OPEN.RPT.

UserName<Relatorio1.UserName = "Fernando"> envia o username FERNANDO para um arquivo .MDB

Selection Formula

Muitos programadores por aí estão quebrando a cabeça tentando colocar SQL nessa propriedade. ESTAPROPRIEDADE NÃO ACEITA O CÓDIGO SQL COM SUA SINTAXE NORMAL. Essa propriedade tem

sua sintaxe própria, que é muito parecida com SQL. Um exemplo:

Você quer imprimir o relatório "PROVAS.RPT" na impressora, listando apenas os alunos da classe 'F'. Vocêtem o relatório, e seu arquivo .MDB contém uma tabela 'EscolaA', e dentro desta tabela um campo texto'Classe'. O Código 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. Onome do campo. Como o campo em questão é um campo texto, o valor a ser selecionado (no caso a string F)aparece entre aspas simples.

Assim como em SQL, você pode unir vários critérios de seleção 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

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 51

Page 52: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 52/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

Para se especificar datas, utiliza-se uma das várias funções de data suportadas pelo Crystal. vou dar o exemplode uma, a função Date, que tem a sintaxe <Date(yyyy,mm,dd)>. Você quer imprimir um relatório de todas asClasses 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, não é necessário que você seja um 'cobra' da informática, mas conhecimento sempre ajuda.O importante em um programador é sua capacidade de fazer com que um programa execute suas tarefasescrevendo o menor número de linhas de Código possíveis. Isso fará com que o computador tenha anecessidade de processar menos dados, aumentando a velocidade de execução. Um bom programa deve ser escrito de forma modular, ou seja, você deve ter várias funções ou subs que sejam comuns a váriosprocedimentos. Assim, fica mais fácil identificar erros, realizar manutenção de seu software e atualizações.Além do mais, economiza seu tempo e paciência, pois você não terá que digitar a mesma coisa várias vezes.Por exemplo, os Códigos de Selection Formula. Você provavelmente terá mais de um relatório em seuprograma. Assim, crie uma sub que defina a selection formula e imprima seu relatório, recebendo por referência os valores necessários (nome dos campos, valores, comparadores, etc.).

Infelizmente, não se encontram com facilidade bons livros de Visual BASIC. Em sua maioria, os livros sãoótimos ao explicar as vantagens do ambiente G.U.I., o uso da interface, dos gráficos, etc. Mas praticamenteTODOS são extremamente fracos no quesito BANCO DE DADOS. Ora, os bancos de dados são os arquivosmais importantes da maioria dos programas. Em quase todos os livros você encontrará apenas noçõessuperficiais sobre o Microsoft Jet Engine e a linguagem SQL.

Um bom livro para quem já é programador em outras linguagens é o "Microsoft Visual BASIC 4 - Segredose Soluções", de Gary Cornell e Troy Strain, editado pela Makron Books. É indicado para programadores poisse concentra em familiarizar o programador com o ambiente Visual BASIC, sem grandes exemplos inúteis elições de lógica, etc. Infelizmente também é superficial no quesito banco de dados, mas é muito bom emoutros pontos. Fora esse livro, os bons são os editados pela própria Microsoft, os livros assinados pelaMicrosoft Press. Você pode comprá-los em sua livraria local (geralmente a preços acima de R$ 150,00) ou naamazon.com, a preços bem mais em conta. Detalhe: esses livros são sempre em inglês.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 52

Page 53: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 53/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

VERIFICAR ORTOGRAFIA DE ARQUIVO:

Sub VerificaOrtografiaArquivo(Arquivo_ps)

If Mid$(Arquivo_ps,1,1) = "\" ThenVerificaOrtografiaArquivo = Mid$(Arquivo_ps,2)

ElseVerificaOrtografiaArquivo = 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

ElseVerificaOrtografiaArquivo = Caminho_ps & "\"

End If End Sub

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 53

Page 54: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 54/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

TOCANDO MIDI NO VB:

A edição profissional do VB inclui um OCX, o MCI Multimedia Control, que permite a execução deMIDIs, WAVs eCDs de música, entre outros. Entretanto, para quem não tem a edição profissional ou preferenão utilizar o OCX, pode utilizar a função mciSendString da API do Windows.

Primeiro, crie um Module e, nele declare a função mciSendString:

Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand AsString, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback AsLong) As Long

Antes de tocar o MIDI é preciso abri-lo. Basta usar o mciSendString assim:

mciSendString "open c:\Musicas\Musica.Mid type sequencer aliasapelido", 1, 1, 1

O trecho alias (apelido) pode ser omitido, mas recomendo a sua utilização. Qualquer palavra que for colocada no lugar de apelido, poderá ser usada quando for feita alguma referência a este MIDI. Se você nãousar o alias apelido, deverá indicar todo o caminho (c:\Musicas\....) do arquivo. Nos exemplos a seguir,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

O ideal é colocar este último comando, o close, no Evento Form_Unload. Assim, quando o Form éfechado, o MIDI pára de tocar e é fechado.

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 54

Page 55: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 55/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

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 instalação do VB5 existem controles extras (como é o caso do Sheridane outros, inclusive os arquivos de Help desses controles e um arquivo texto contendo instruções de comoregistrar 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 extensão reg da referida pasta do CD e pronto.

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

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 55

Page 56: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 56/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

AGRADECIMENTOS

Gostaria de deixar registrado aqui o meu agradecimento a vários 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 elaboração desta apostila. Quando eu estava elaborando visitei o Cade(www.cade.com.br ) e fiz uma consulta sobre Visual Basic, encontrando quase 200 endereços. Vários comdicas, arquivos úteis, projetos e alguns com apostilas ou capítulos de apostilas (como foi o caso do Leonardo).

Aqui vão alguns endereços quentes da INTERNET sobre o Visual Basic:

- ZDNet University (cursos): http://www.zdu.com- Visual Basic Brasil: http://www.vbbrasil.com- Daniel Wimans Visual Basic homepage: http://www.oden.se/~daniel/vb/- Exotech Informática - Fórum Visual Basic: http://www.exotech.com.br/vbasic/

- Marcio's Visual Basic : http://www.terravista.pt/copacabana/1102/- Informática Exame Online - Forum Visual Basic: http://www2.uol.com.br/info/forum/vbasic.html- Fórum Access (foruns de Access e VB): http://www.forumaccess.com/- Visual Basil On Line: http://www.vbonline.com/- Microsoft: http://microsoft.com/vbasic

Coordenação.: Reinaldo Barroso Professores.: Lourenço, Marco e Ribamar Página 56

Page 57: VB5 Avançado

8/7/2019 VB5 Avançado

http://slidepdf.com/reader/full/vb5-avancado 57/57

CENTRO DE TREINAMENTO DO DNOCSVISUAL BAIC 5.0 AVANÇADO

BIBLIOGRAFIA

1) TÍTULO: VISUAL BASIC 5 – APLICAÇÕES COMERCIAISAUTOR: ALCINDO ALVES DOS REIS FILHOEDITORA: BRASPORT

2) TÍTULO: VISUAL BASIC 4 – OBJECTS AND CLASSES – SIPER BIBLEEDITORA: WAITE GROUP PRESS

3) TÍTULO: VISUAL BASIC 5 EM 21 DIASEDITORA: CAMPUS

4) TÍTULO: USANDO O VISUAL BASIC 5EDITORA: CAMPUS/QUE

Fortaleza, primeiro semestre de 1998.