Baixe o app para aproveitar ainda mais
Prévia do material em texto
MICROSOFT VISUAL BASIC DESVENDANDO A LINGUAGEM DE PROGRAMAÇÃO MAIS POPULAR DO MUNDO Autor: William Costa Rodrigues Copyright© 2004, W.C. Rodrigues (Lizaro Soft) Sumário 1. INTRODUÇÃO .............................................................................................................1 2. CONCEITOS BÁSICO DO VISUAL BASIC.....................................................................3 2.1. INTERFACE DO VISUAL BASIC .................................................................................................3 2.2. CONTROLE BÁSICO ...............................................................................................................4 2.3. CONTROLES PERSONALIZADOS................................................................................................5 2.4. TIPOS DE PROJETOS..............................................................................................................5 2.5. TIPO DE VARIÁVEIS ..............................................................................................................6 2.6. DECLARANDO VARIÁVEIS NO VISUAL BASIC ..............................................................................6 2.7. CONVERTENDO DADOS ..........................................................................................................7 2.8. EXERCÍCIOS.........................................................................................................................8 3. ESTRUTURA DE UMA APLICAÇÃO ..............................................................................9 3.1. ESTRUTURAS DE PROGRAMAÇÃO DO VISUAL BASIC...................................................................10 3.1.1. Tipos de Estruturas de Linguagem......................................................................................10 3.1.1.1. Estrutura de Tomada de Decisão:................................................................................10 3.1.1.1.1 IF... Then... Else ....................................................................................................10 3.1.1.1.2 IIF ........................................................................................................................11 3.1.1.1.3 Select Case............................................................................................................11 3.1.1.2. Estrutura de Loop ......................................................................................................11 3.1.1.2.1 For... Next .............................................................................................................11 3.1.1.2.2 Do... Loop .............................................................................................................12 3.1.1.2.3 Do While... Loop ....................................................................................................12 3.1.1.2.4 Do Until... Loop......................................................................................................12 3.1.1.2.5 While... Wend ........................................................................................................13 3.1.1.2.6 For Each... Next .....................................................................................................13 3.1.1.2.7 With... End With.....................................................................................................13 3.1.1.3. Saindo das Estruturas de Loop....................................................................................14 3.2. FORMULÁRIOS E CONTROLES ................................................................................................14 3.3. MÓDULOS (MODULE) E MÓDULOS CLASSE (CLASS MODULE)......................................................17 3.3.1. Módulos (Module) .............................................................................................................17 3.3.2. Módulos Classe (Class Module)...........................................................................................18 3.4. MENU EDITOR....................................................................................................................20 3.5. EXERCÍCIOS.......................................................................................................................21 4. CONTROLES PERSONALIZADOS (PROPRIEDADES E EVENTOS)..............................25 4.1. MICROSOFT WINDOWS COMMON CONTROL 6.0.......................................................................26 4.1.1. ImageList (Lista de Imagens).............................................................................................26 4.1.1.1. Carregando uma Imagem da Coleção. .........................................................................26 4.1.2. Controle ListView (Lista de Visualização) .............................................................................28 4.1.3. Controle ProgressBar (Barra de Progresso)..........................................................................30 4.1.4. Controle StatusBar (Barra de Status) ..................................................................................31 4.1.5. Controle ToolBar (Barra de Ferramentas) ............................................................................32 4.1.6. Controle TreeView (Árvore de Visualização).........................................................................34 4.1.7. Controle Slider ..................................................................................................................37 4.2. EXERCÍCIOS.......................................................................................................................37 5. FUNÇÕES DATA E HORA ...........................................................................................39 5.1. DATE ................................................................................................................................39 5.2. DATAVALUE.......................................................................................................................39 5.3. FORMAT ............................................................................................................................39 5.4. PROJETO COMENTADO .........................................................................................................39 6. CONTROLANDO AS VERSÕES E INFORMAÇÕES DO SEU APLICATIVO ....................41 Microsoft Visual Basic – Sumário III 7. TRABALHANDO COM FUNÇÕES NUMÉRICAS E FINANCEIRAS ................................45 7.1. FUNÇÕES NUMÉRICAS .........................................................................................................45 7.2. FUNÇÕES FINANCEIRAS .......................................................................................................45 7.2.1. Função Pmt (Pagamento de Anuidade Baseado num Período) ...............................................45 7.2.2. Função FV (Valor Futuro de Anuidade)................................................................................46 7.2.3. Função IPmt (Taxa de Juros para Durante um Período)........................................................46 7.2.4. Função NPer (Número de Períodos para Atingir uma Anuidade) ............................................46 7.2.5. Função PV (Presente Valor Presente Baseado num Período)..................................................46 7.2.6. Função NPV (Valor Presente Líquido) ..................................................................................46 7.2.7. Função Rate (Taxa por Período) .........................................................................................46 8. INICIANDO COM A SQL (STRUCTURED QUERY LANGUAGE)...................................47 8.1. CRIANDO TABELAS VIA SQL. ................................................................................................48 8.2. ÍNDICES E TABELAS - CRIAR, ALTERAR E EXCLUIR....................................................................498.2.1. Excluindo Tabelas .............................................................................................................49 8.2.2. Alterando Tabelas .............................................................................................................49 8.2.3. Criando Índices.................................................................................................................50 8.2.4. Excluindo Índices ..............................................................................................................50 8.3. TESTANDO AS INSTRUÇÕES SQL ...........................................................................................50 8.4. SQL - CRIANDO CONSULTAS PARAMETRIZADAS .......................................................................50 8.4.1. Métodos de QueryDef........................................................................................................51 9. TRABALHANDO COM BANCO DE DADOS ACCESS ....................................................53 9.1. CRIANDO UM BANCO DE DADOS ............................................................................................53 9.2. O MODELO DAO (DATA ACCESS OBJECT) ...............................................................................54 9.3. ABRINDO UM BANCO DE DADOS ............................................................................................55 9.3.1. Recordset.........................................................................................................................55 9.3.1.1. dbOpenTable.............................................................................................................55 9.3.1.2. dbOpenDynaset .........................................................................................................55 9.3.1.3. dbOpenSnapshot .......................................................................................................56 9.3.1.4. dbOpenFowardOnly ...................................................................................................56 9.3.1.5. dbAppendOnly...........................................................................................................57 9.3.1.6. dbReadOnly ..............................................................................................................57 9.3.1.7. dbSeeChanges...........................................................................................................57 9.3.2. Utilizando o Motor do Banco de Dados DBEngine .................................................................57 9.3.3. Utilizando o Controle DataControl .......................................................................................58 9.4. ACESSANDO DADOS DE UMA TABELA ......................................................................................58 9.4.1. Acesso à Dados de uma Tabela Utilizando o DataControl ......................................................58 9.4.2. Acesso à Dados de uma Tabela Utilizando Instrução SQL .....................................................58 9.5. ADICIONANDO, LOCALIZANDO, EDITANDO E EXCLUINDO DADOS DE UMA TABELA...........................59 9.5.1. Adicionado Dados .............................................................................................................59 9.5.2. Localizando Dados ............................................................................................................60 9.5.2.1. Exemplo de como Localizar Dados...............................................................................61 9.5.3. Editando Dados ................................................................................................................63 9.6. COMPACTANDO E RECUPERANDO UM BANCO DE DADOS .............................................................63 9.6.1. Compactando Banco de Dados ...........................................................................................63 9.6.2. Recuperando Banco de Dados............................................................................................64 9.7. SALVANDO E RECUPERAR FIGURAS NUM BANCO DE DADOS EM CAMPO OLE ..................................64 9.8. ACESSANDO OUTROS BANCOS DE DADOS ................................................................................66 9.8.1. Banco de Dados dBase ......................................................................................................66 10. TRABALHANDO COM O CONTROLE MSCHART NO VISUAL BASIC ...........................69 10.1. CRIANDO UM GRÁFICO MANUALMENTE...................................................................................70 10.2. ACESSANDO DADOS DE UM BANCO DE DADOS PARA PLOTAR UM GRÁFICO.....................................73 11. TRATANDO ERROS EM SUA APLICAÇÃO ..................................................................75 11.1. OS OBJETO ERR E ERROR DO VISUAL BASIC ............................................................................75 IV 11.1.1. Propriedades dos ObjetosErr e Error ...............................................................................75 11.1.1.1. Propriedade Description .............................................................................................75 11.1.1.2. Propriedades HelpFile/HelpContext ..............................................................................75 11.1.1.3. Propriedades Number.................................................................................................75 11.1.1.4. Propriedades Source ..................................................................................................75 11.1.1.5. Propriedades LastDLLError..........................................................................................75 11.1.2. Métodos do Objeto Err...................................................................................................75 11.1.2.1. Método Clear.............................................................................................................75 11.1.2.2. Método Raise ............................................................................................................76 11.2. ERROS RELACIONADO A BANCO DE DADOS..............................................................................76 11.3. ERROS RELACIONADO A ARQUIVO .........................................................................................77 11.4. ROTINA PARA TRATAMENTO DE ERROS ...................................................................................77 12. DISTRIBUINDO SUA APLICAÇÃO.............................................................................81 12.1. COMPILANDO O PROJETO .....................................................................................................81 12.2. SETUP WIZARD (VISUAL BASIC 5.0)......................................................................................81 12.3. PACKAGE AND DEPLOYMENT WIZARD (VISUAL BASIC 6.0)........................................................81 12.4. INNO SETUP COMPILER .......................................................................................................82 12.4.1. Dicas para Visual Basic ..................................................................................................82 12.4.1.1. Gerando as Mensagens de Instalação em Português. ....................................................82 12.4.1.2. Instalando Arquivos OCX. ...........................................................................................82 12.4.1.3. Instalando Arquivos do Visual Basic.............................................................................83 12.4.1.4. Usando o SETUP.LST Gerado pelo P & D Wizard...........................................................83 12.4.1.5. Instalando ADO, DCOM e MDAC..................................................................................84 12.5. ISTOOL.............................................................................................................................8413. TRABALHANDO COM API'S ......................................................................................87 13.1. ABRINDO ARQUIVO DE AJUDA ATRAVÉS DE API........................................................................87 13.2. ABRINDO O BROWSER OU EDITOR DE E-MAIL PADRÃO...............................................................88 13.3. ENCONTRANDO O DIRETÓRIO DE INSTALAÇÃO DO WINDOWS E DE SISTEMA ..................................88 13.4. DRIVE DO CD ....................................................................................................................89 13.5. ECREVENDO E OBTENDO INFORMAÇÕES DE UM ARQUIVO INI.....................................................90 14. CRIANDO ARQUIVOS DE AJUDA BASEDO EM ARQUIVOS HTML .............................93 14.1. CRIANDO UM ARQUIVO DE AJUDA..........................................................................................93 14.1.1. Arquivo de Conteúdo .....................................................................................................95 14.1.2. Arquivo de Índice ..........................................................................................................97 14.1.3. Aparência da Janela do Arquivo de Ajuda ........................................................................97 14.1.4. Configurar Sensibilidade ao Contexto ..............................................................................97 14.1.5. Compilando o Projeto da Ajuda.......................................................................................99 14.1.6. Nota Final .....................................................................................................................99 14.2. ACESSANDO O ARQUIVO CHM, ATRAVÉS DO VISUAL BASIC .......................................................99 15. GERANDO RELATÓRIOS COM O CRYSTAL REPORTS .............................................101 15.1. INICIALIZANDO O CRYSTAL REPORTS...................................................................................101 15.2. CRIANDO UM NOVO RELATÓRIO ..........................................................................................101 15.3. INSERINDO NOVOS CAMPOS A PARTIR DA TABELA. ..................................................................105 15.4. FORMATANDO CAMPOS, INSERINDO FIGURAS, LINHAS E CAIXAS ................................................105 15.4.1. Formatando Campos.................................................................................................... 105 15.4.2. Inserindo Figuras, Linhas e Caixas ................................................................................ 106 15.5. TRABAHANDO COM FÓRMULAS ............................................................................................107 15.5.1.1. Especificando o valor de uma fórmula através do Visual Basic...................................... 108 15.6. IMPRIMINDO, VISUALIZANDO E EXPORTANDO UM RELATÓRIO A PARTIR DO VISUAL BASIC............108 15.6.1. Imprimindo................................................................................................................. 108 15.6.2. Visualizando................................................................................................................ 108 15.6.3. Exportando (para arquivo e por e-mail) ......................................................................... 109 15.6.3.1. Exportando para arquivo formato do Word................................................................. 109 Microsoft Visual Basic – Sumário V 15.6.3.2. Enviando um relatório em anexo por e-mail ............................................................... 110 15.7. OUTROS CÓDIGOS ÚTEIS PARA TRABALHAR COM RELATÓTIOS....................................................111 15.7.1. Abrindo um relatório, cujo banco de dados possuui senha............................................... 111 15.7.2. Alterar via código o caminho da base de dados do relatório ............................................ 111 15.7.3. Como direcionar a impressão do Crystal para a porta LPT2?............................................ 111 15.7.4. Fazendo com que a janela de impressão do Crystal Reports fique como filha (MDIChild) de um MDI? ................................................................................................................................. 111 15.7.5. Inserir uma quebra de página no Crystal Reports? ......................................................... 111 15.7.6. Modificar as margens de um relatório em modo de execução?......................................... 111 15.7.7. Outra forma de especificar a senha do banco de dados utilizado pelo relatório.................. 112 16. CRIANDO UM ACTIVEX ..........................................................................................113 17. BIBLIOGRAFIA CONSULTADA................................................................................115 VI Microsoft Visual Basic – Índices de figuras VII Índice de Figuras FIGURA 1. INTERFACE MDI (MUTIPLE DOCUMENT INTERFACE) DO VISUAL BASIC 6.0 .................................................3 FIGURA 2. INTERFACE SDI (SINGLE DOCUMENT INTERFACE) DO VISUAL BASIC 6.0 ....................................................3 FIGURA 3. TELA DE SELEÇÃO DE UM NOVO PROJETO, COM OS DIVERSOS MODELOS.......................................................6 FIGURA 4. ORGANOGRAMA SIMPLIFICADO DE UMA APLICAÇÃO. ............................................................................17 FIGURA 5. JANELA DE PROPRIEDADES DO VISUAL BASIC. ...................................................................................17 FIGURA 6. MENU EDITOR DO MICROSOFT® VISUAL BASIC. ...............................................................................21 FIGURA 7. CAIXA DE CONTROLES ACTIVEX PERSONALIZADOS, LOCALIZADOS NO SISTEMA. ...........................................25 FIGURA 8.MICROSOFT WINDOWS COMMON CONTROL 6.0 .................................................................................26 FIGURA 9. A- CONFIGURAÇÕES DO TAMANHO DAS IMAGENS; B- COLEÇÃO DE IMAGENS INSERIDAS NO IMAGELIST. .............28 FIGURA 10. CONTROLE LISTVIEW, EXIBINDO ÍCONES PEQUENOS..........................................................................29 FIGURA 11. CONTROLES PROGRESSBAR'S EXIBINDO OS DOIS VALORES DA PROPRIEDADES SCROLLING (0 – CCSCROLLINGSTANDARD E 1- CCSCROLLINGSMOOTH) ...............................................................................30 FIGURA 12. CONTROLE STATUSBAR, EXIBINDO VÁRIAS INFORMAÇÕES ADICIONAIS....................................................31 FIGURA 13. CONTROLE STATUSBAR DO PROCESSADOR DE TEXTOS MICROSOFT® WORD............................................31 FIGURA 14. CONTROLES TOOLBAR'S ALINHADOS NO TOPO DA JANELA E EM BAIXO E COM A PROPRIEDADE STYLE 1 – TBRFLAT E 0 – TBRSTANDARD, RESPECTIVAMENTE..................................................................................................32 FIGURA 15. CAIXA DE PROPRIEDADES GERAL DE UMA BARRA DE FERRAMENTAS (ABA GENERAL).....................................34 FIGURA 16. CAIXA DE PROPRIEDADES DOS BOTÕES DE UMA BARRA DE FERRAMENTAS (ABA BUTTONS). ...........................34 FIGURA 17. CAIXA DE PROPRIEDADES DOS BOTÕES DE UM CONTROLE TREEVIEW (ABA GENERAL). .................................35 FIGURA 18. EXEMPLO DE UM CONTROLE TREEVIEW, COM UM NODE PAI (ÍCONES) E 4 NODES FILHOS. LINESTYLE IGUAL A 1– TVWROOTLINE. ..............................................................................................................................36 FIGURA 19. CONTROLE SLIDER ..................................................................................................................37 FIGURA 20. INTERFACE DA CALCULADORA DE IDADE .........................................................................................40 FIGURA 21. CAIXA DE DIÁLOGO DE CONTROLE VERSÕES E INFORMAÇÕES DO APLICATIVO. ...........................................41FIGURA 22. TELA DE INFORMAÇÕES DE UM PROJETO.........................................................................................43 FIGURA 23. ESTRUTURA DO BANCO DE DADOS COM QUATRO TABELAS....................................................................48 FIGURA 24. ORGANOGRAMA SIMPLES DE UM BANCO DE DADOS. AS LINHAS PONTILHADAS INDICAM O RELACIONAMENTO ENTRE AS TABELAS....................................................................................................................................53 FIGURA 25. HIERARQUIA DE CLASSES DAO ...................................................................................................54 FIGURA 26. LAYOUT PARA PESQUISA DE DADOS DO PROGRAMA LIZARO VISUAL BASIC DICAS V3.0 ................................63 FIGURA 27. CONTROLE MICROSOFT CHART 5.0 ..............................................................................................69 FIGURA 28. GRÁFICO DE RECEITAS/DESPESAS DE ABRIL A JUNHO APRESENTANDO A MÉDIA DE CADA MÊS. ........................71 FIGURA 29. GRÁFICO CRIADO COM DADOS DE ENTRADA MANUAL, EXIBINDO AS ESTATÍSTICAS. .....................................72 FIGURA 30. GRÁFICO PLOTADO A PARTIR DOS DADOS DE UM BANCO DE DADOS ACCESS 97 .........................................74 FIGURA 31. TELA INICIAL DO SETUP WIZARD QUE ACOMPANHA O VISUAL BASIC 5.0. ................................................81 FIGURA 32. TELA INICIAL DO PACKAGE AND DEPLOYMENT WIZARD QUE ACOMPANHA O VISUAL BASIC 5.0 ......................82 FIGURA 33. FIGURA DO EDITOR DE SCRIPT DO INNO SETUP COMPILER V3.0. ..........................................................84 FIGURA 34. INTERFACE DO PROGRAMA ISTOOL 3.0 EM PORTUGUÊS (BR) ..............................................................85 FIGURA 35.JANELA PARA INICIAR UM NOVO ARQUIVO........................................................................................93 FIGURA 36. TELA DO WIZARD PARA ESPECIFICAR O CAMINHO E O NOME DO PROJETO. ...............................................94 FIGURA 37. LISTAGEM DE ARQUIVOS HTML, QUE IRÃO FAZER PARTE DO ARQUIVO DE AJUDA. ......................................94 FIGURA 38. JANELA DO PROJETO RECÉM CRIADO, COM AS OPÇÕES E LISTAGEM DE ARQUIVOS CRIADOS. ..........................95 FIGURA 39. JANELA DE OPÇÃO PARA CRIAÇÃO OU ABERTURA DE UMA RQUIVO DE CONTEÚDO. .......................................95 FIGURA 40. JANELA DE ADIÇÃO DE TÓPICOS E DE LIGAMENTO (LINK) COM O ARQUIVO CORRESPONDENTE. .......................96 FIGURA 41. JANELA DE "LINKAGEM" DE ARQUIVO AO TÓPICO DO CONTEÚDO. A LISTAGEM É EXIBIDA POR TÍTULO DO ARQUIVO. ..................................................................................................................................................96 Desvendando a linguagem de programação mais popular do mundo – W.C. Rodrigues VIII FIGURA 42. ABA DE CONTENTS, COM SUA APARÊNCIA FINAL LISTANDO TODOS OS TÓPICOS CRIADOS..............................97 FIGURA 43. JANELA HTMLHELP API INFORMATION COM A ADIÇÃO DO ARQUIVO DE CABEÇALHO INSECTA.H. ...................98 FIGURA 44. JANELA DE LIGAÇÃO DA DEFINIÇÃO (IDH_MAIN), COMO O ARQUIVO HTML (INSECTA.HTM). .......................98 FIGURA 45. ÍCONE DO CRYSTAL REPORTS V4.6. ........................................................................................... 101 FIGURA 46. JANELA PARA CRIAÇÃO DE UM RELATÓRIO NOVO NO CRYSTAL REPORTS................................................. 101 FIGURA 47. JANELA CREATE REPORT EXPERT, COM A OPÇÃO O PASSO 1: SELEÇÃO DE TABELAS NO CRYSTAL REPORTS ...... 102 FIGURA 48. PASSO 3: SELEÇÃO DE CAMPOS A SEREM EXIBIDOS NO RELATÓRIO DO CRYSTAL REPORTS. ......................... 103 FIGURA 49. PASSO 4: SELEÇÃO DOS CAMPO DE ORDENAÇÃO DO RELATÓRIO E TIPO DE ORDENAÇÃO NO CRYSTAL REPORTS. 103 FIGURA 50. PASSO 8: ESPECIFICAÇÃO DE TÍTULO E SELEÇÃO SE ESTILO DO RELATÓRIO NO CRYSTAL REPORTS................ 104 FIGURA 51. JANELA DO MODO DE DESENHO DO CRYSTAL REPORT. ..................................................................... 104 FIGURA 52. JANELA PAR INSERÇÃO DE NOVO(S) CAMPO(S) AO RELATÓRIO NO CRYSTAL REPORTS................................ 105 FIGURA 53. BARRA DE FERRAMENTAS DE FORMATAÇÃO DO TEXTO DOS CAMPOS NO CRYSTAL REPORTS. ........................ 105 FIGURA 54. MENU SUSPENSO PARA FORMATAÇÃO DO CAMPO (FONTE, FORMATO, BORDAS, ETC.) NO CRYSTAL REPORTS .... 106 FIGURA 55. JANELA DE ALTERAÇÃO DO FORMATO DO CAMPO NO CRYSTAL REPORTS. ............................................... 106 FIGURA 56. ALTERAÇÃO DE BORDA E CORES DE BORDA E TEXTO DO CAMPO DO CRYSTAL REPORTS. ............................. 106 FIGURA 57. BARRA DE FERRAMENTAS PARA INSERÇÃO DE FIGURA, LINHA E CAIXA (RESPECTIVAMENTE) DO CRYSTAL REPORTS. ................................................................................................................................................ 107 FIGURA 58. JANELA DE EDIÇÃO DE FÓRMULA DO CRYSTAL REPORTS.................................................................... 107 FIGURA 59. BARRA DE FERRAMENTAS NA JANELA DE VISUALIZAÇÃO DO CRYSTAL REPORTS. ....................................... 109 FIGURA 60.JANELA DE VISUALIZAÇÃO DE UM RELATÓRIO PELO CRYSTALREPORT ACTIVEX CONTROL............................. 109 FIGURA 61. CONTROLE ACTIVEX EM DESIGN-TIME. ....................................................................................... 113 Microsoft Visual Basic – Índices de códigos IX Índice de Códigos CÓDIGO 1. EXEMPLO DE DECLARAÇÃO DE VARIÁVEIS NO VISUAL BASIC....................................................................7 CÓDIGO 2. PROCEDIMENTO PARA EXIBIÇÃO DO FORMULÁRIO FRMMAIN....................................................................9 CÓDIGO 3. CÓDIGO EXTENSOS PARA ALTERAR A PROPRIEDADE CAPTION E BACKCOLOR, DO FORM2 E EXIBI-LO. ................18 CÓDIGO 4. CÓDIGO MAIS PRÁTICOS ATRAVÉS DA FUNÇÃO SHOWFORM PARA ALTERAR A PROPRIEDADE CAPTION E BACKCOLOR, DO FORM2 E EXIBI-LO. .....................................................................................................................18 CÓDIGO 5. ESTE EXEMPLO CARREGA VÁRIOS BITMAPS EM UM CONTROLE IMAGELIST. QUANDO O FORM É CLICADO UM UMA IMAGEM DA LISTA É SUBSTITUÍDA POR OUTRA IMAGEM. ESTE EXEMPLO NECESSITA DE UM CONTROLE IMAGELIST E UM CONTROLE PICTUREBOX. ...................................................................................................................28 CÓDIGO 6. LINHA DE COMANDO PARA RETORNAR A SEGUNDA IMAGEM DA COLEÇÃO DA IMAGELIST1 PARA O CONTROLE PICTURE1. ....................................................................................................................................28 CÓDIGO 7, LINHA DE COMANDO PARA RETORNAR A SEGUNDA IMAGEM (ÍCONE) DA COLEÇÃO DA IMAGELIST1 PARA O CONTROLE PICTURE1. ....................................................................................................................................28 CÓDIGO 8. ROTINA SIMPLES PARA EXIBIR O PROGRESSO DE UM CONTROLE PROGRESSBAR...........................................30 CÓDIGO 9. LINHA DE COMANDO PARA EXTRAIR A IMAGEM DE INDEX 1 CONTIDA NUM CONTROLE IMAGELIST E RETORNA-LO PARA O PAINEL A PROPRIEDADE PICTURE DA BARRA DE STATUS COM O INDEX 1. ...............................................31 CÓDIGO 10. CONTROLE STATUSBAR. ATRIBUINDO UM TEXTO AO PAINEL 1 E ADICIONANDO PAINÉIS E FIGURAS. ...............32 CÓDIGO 11. ADIÇÃO DE NODES NUM CONTROLE TREEVIEW................................................................................37 CÓDIGO 12. REMOVENDO UM NODE DO CONTROLE TREEVIEW. ...........................................................................37 CÓDIGO 13. PROJETO CALCULADORA DE DIAS, MESES E ANOS VIVIDOS..................................................................40 CÓDIGO 14. PROJETO PARA EXIBIR AS INFORMAÇÕES DE UM APLICATIVO................................................................42 CÓDIGO 15. ROTINA PARA ACESSO A DADOS DE UMA TABELA UTILIZANDO A INSTRUÇÃO DBOPENTABLE..........................55 CÓDIGO 16. ROTINA PARA ACESSO A DADOS DE UMA TABELA UTILIZANDO A INSTRUÇÃO DBOPENDYNASET, UTILIZANDO INSTRUÇÕES SQL............................................................................................................................55 CÓDIGO 17. PREENCHENDO UMA CAIXA DE LISTAGEM COM DADOS DE UMA TABELA UTILIZANDO O RECORDESET DO TIPO FOWARD-ONLY. ..............................................................................................................................57 CÓDIGO 18. ROTINA PARA ABERTURA DE UMA BASE DE DADOS MS ACCESS.............................................................58 CÓDIGO 19. ROTINA PARA ABERTURA DE UMA BASE DE DADOS MS ACCESS COM SENHA..............................................58 CÓDIGO 20. ROTINA PARA ACESSO A UM BANCO DE DADOS DO TIPO MS ACCESS. .....................................................58 CÓDIGO 21. ROTINA PARA ACESSO A DADOS DE UMA TABELA VIA INSTRUÇÃO SQL....................................................59 CÓDIGO 22. ROTINA PARA PREPARAR UMA TABELA PARA RECEBER NOVOS DADOS (REGISTRO) ......................................59 CÓDIGO 23. ROTINA PARA GRAVAR DADOS EM UMA TABELA DO BANCO DE DADOS. ....................................................60 CÓDIGO 24. ROTINA PARA LOCALIZAR DADOS DENTRO DE UMA TABELA, UTILIZANDO AS INSTRUÇÕES DO DATACONTROL E INSTRUÇÕES SQL............................................................................................................................60 CÓDIGO 25. ROTINA PARA FILTRAR OS DADOS DE UMA TABELA............................................................................61 CÓDIGO 26. ROTINA PARA LOCALIZA DADOS DENTRE DE UMA TABELA, UTILIZANDO SQL E EM SEGUINDA PREENCHENDO UMA TREEVIEW COM OS DADOS ENCONTRADOS. .............................................................................................62 CÓDIGO 27. ROTINA PARA EDITAR UM REGISTRO GRAVADO EM UMA TABELA DO BANCO DE DADOS. ................................63 CÓDIGO 28. ROTINA PARA COMPACTAR UM BANCO DE DADOS SEM SENHA. ..............................................................64 CÓDIGO 29. ROTINA PARA COMPACTAR UM BANCO DE DADOS COM SENHA. .............................................................64 CÓDIGO 30. ROTINA PARA RECUPERAR UM BANCO DE DADOS CORROMPIDO.............................................................64 CÓDIGO 31. ROTINA PARA SALVAR E RECUPERAR UMA FIGURA DENTRO DUM CAMPO OLE DE UM BANCO DE DADOS. ............66 CÓDIGO 32. ROTINA PARA ACESSO À BANCO DE DADOS DBASE VERSÃO III. ............................................................66 CÓDIGO 33. ROTINA PARA ACESSO À BANCO DE DADOS FOXPRO VERSÃO 2.5. .........................................................66 CÓDIGO 34. ROTINA PARA ACESSO À BANCO DE DADOS EXCEL VERSÃO 4.0.............................................................67 CÓDIGO 35. ROTINA PARA ACESSO À BANCO DE DADOS TEXTO. ...........................................................................67 CÓDIGO 36. CÓDIGO PARA CRIAÇÃO DE UM GRÁFICO DE RECIETAS/DESPESAS E MÉDIA DUTRANTE TRÊS MESES..................70 CÓDIGO 37. CÓDIGOS PARA CRIAÇÃO DE UM GRÁFICO MANUALMENTE E XIBIÇÃO DE ESTATÍSTICAS. ...............................72 Desvendando a linguagem de programação mais popular do mundo – W.C. Rodrigues X CÓDIGO 38. CÓDIGO PARA EXTRAIR DADOS DE UM BANCO DE DADOS ACCESS 97, LISTANDO O NÚMERO DE PESQUISADORES POR ESTADO. .................................................................................................................................73 CÓDIGO 39. ROTINA COMPLETA PARA INTERCEPTAÇÃO, EXIBIÇÃO E ARMAZENAMENTO DE ERRO DE UMA APLICAÇÃO............80 CÓDIGO 40. EXEMPLO DE COMO ABRIR UM ARQUIVO DE AJUDA ATRAVÉS DE API ......................................................88 CÓDIGO 41. EXEMPLO DE COMO ABRIR O BROWSER OU EDITOR DE E-MAIL PADRÃO ..................................................88 CÓDIGO 42.EXEMPLO DE COMO ENCONTRAR O DIRETÓRIO DE INSTALAÇÃO DO WINDOWS E DE SISTEMA ........................89 CÓDIGO 43. EXEMPLO DE COMO DETECTA R ALETRA DO DRIVE DO CD ...................................................................90 CÓDIGO 44. EXEMPLO DE COMO ESCREVER E OBTER INFORMAÇÕES DE UM ARQUIVO INI.............................................91 CÓDIGO 45. ESTRUTURA DE UMA ARQUIVO DE CABEÇALHO, CONTENDO OS TÓPICOS SENSÍVEIS AO CONTEXTO E SUA IDENTIFICAÇÃO NUMÉRICA. ................................................................................................................98 CÓDIGO 46. CLASSE CLSHELPCHM, CRIADA PARA ACESSAR ATRAVÉS DE API AO ARQUIVO DE AJUDA CHM, PELO VISUAL BASIC ..................................................................................................................................................99 CÓDIGO 47. CODÍGO PARA EXIBIR O ARQUIVO DE AJUDA ATRAVÉS DO EVENTO CLICK, DE UM COMMANDBUTTON, CHAMADO CMDHELP. ................................................................................................................................... 100 CÓDIGO 48. CODÍGO PARA EXIBIR O CONTEXTO ESPECÍFCO DO ARQUIVO DE AJUDA ATRAVÉS DO EVENTO CLICK, DE UM COMMANDBUTTON, CHAMADO CMDHELP. ............................................................................................. 100 CÓDIGO 49. TEXTO DA FÓRMULA "NOME" INSERIDA NO RELATÓRIO DO CRYSTAL REPORTS........................................ 107 CÓDIGO 50. ENVIO DE VALOR PARA UMA FÓRMULA DO CRYSTALREPORT .............................................................. 108 CÓDIGO 51. FILTRAGEM DE DADOS NO CRYSTALREPORTS ATRAVÉS DO VISUAL BASIC.............................................. 108 CÓDIGO 52. CÓDIGO PARA IMPRESSÃO DIRETA DO RELATÓRIO SEM VISUALIZAÇÃO PRÉVIA NO CRYSTAL REPORTS. ........... 108 CÓDIGO 53. CÓDIGO PARA VISUALIZAR UM RELATÓRIO. .................................................................................. 109 CÓDIGO 54. CÓDIGO PARA EXPORTAR UM ARQUIVO NO FORMATO DO WORD. ........................................................ 110 CÓDIGO 55. EXPORTANDO UM ARQUIVO PARA UMA MENSAGEM DE E-MAIL............................................................. 111 CÓDIGO 56. CÓDIGO DO CONTROLE ACTIVEX PARA ESPECIFICAR E RETORNAR AS PROPRIEDADES. ............................... 114 CÓDIGO 57. CÓDIGO PARA EXIBIR A ARQUIVO DE AJUDA ESPECÍFICO ATRAVÉS DA API WINHELP NO CONTROLE ACTIVEX. . 114 Microsoft Visual Basic – Índices de tabelas XI Índice de Tabelas TABELA 1. CONTROLES BÁSICO E SUAS DESCRIÇÕES. ..........................................................................................4 TABELA 2. TIPO DE VARIÁVEIS SUA CAPACIDADE DE USO. .....................................................................................6 TABELA 3. SUGESTÃO DE PREFIXO PARA IDENTIFICAÇÃO DO TIPO DE VARIÁVEL...........................................................7 TABELA 4. FUNÇÕES INTERNAS DO VISUAL BASIC PARA CONVERSÃO DE DADOS. .........................................................7 TABELA 5. PREFIXOS PARA NOMES DOS OBJETOS MAIS UTILIZADOS EM APLICAÇÃO (SUGESTÃO DA MICROSOFT E DO AUTOR) 14 TABELA 6. PRINCIPAIS PROPRIEDADES DE UM FORMULÁRIO.................................................................................16 TABELA 7. CONSTANTES, VALORES E DESCRIÇÃO DO PROPRIEDADE VIEW DO CONTROLE LISTVIEW. ...............................28 TABELA 8. PROPRIEDADES DO CONTROLE LISTVIEW. ........................................................................................29 TABELA 9. CONSTANTES, VALORES E DESCRIÇÃO DA PROPRIEDADE STYLE DO CONTROLE STATUSBAR.............................31 TABELA 10. AS CONSTANTES PARA RELATIONSHIP SÃO: ....................................................................................36 TABELA 11. CONTROLES PARA O PROJETO IDADE. ............................................................................................39 TABELA 12. CONTROLES PARA EXIBIR AS VERSÃO E AS INFORMAÇÕES DE UM PROJETO. ...............................................41 TABELA 13.PRINCIPAIS FUNÇÕES NUMÉRICAS UTILIZADAS PELO VISUAL BASIC E A DESCRIÇÃO. ....................................45 TABELA 14. TIPOS DE DADOS UPORTADOS PELO JET E PELA A SQL......................................................................49 TABELA 15. TIPOS DE DADOS SUPORTADOS PELO BANCO DE DADOS ACCESS ............................................................53 TABELA 16. THE OPENDATABASE METHOD SYNTAX HAS THESE PARTS....................................................................57 TABELA 17. TIPO DE GRÁFICO A SEREM EXIBIDOS PELA PROPRIEDADE CHARTYPE, SUAS CONSTANTE E VALORES.................69 TABELA 18. ERROS GENÉRICOS RELACIONADOS À OPERAÇÃO DE BANCO DE DADOS ....................................................76 TABELA 19. ERROS RELACIONADOS A BLOQUEIO DE REGISTROS ...........................................................................76 TABELA 20. ERROS RELACIONADOS A PERMISSÕES...........................................................................................77 TABELA 21. STRINGS UTILIZADAS PELO ARQIVO SETUP.LST AS STRINGS EQUIVALNTES NO INNO SETUP COMPILER..............83 Microsoft Visual Basic – Dedicatória e Agradecimentos XIII Dedicatória Dedico a presente obra a DEUS, pela concessão de minha vida, a minha mãe por aceitar está tarefa árdua, a minha filha pela paciência e por suportar as incansáveis e exageradas hora que fico na frente do computador. William Costa Rodrigues Agradecimentos A todos aqueles que direta ou indiretamente participaram e incentivaram-me na confecção da presente obra. Meus humildes e sinceros agradecimentos. William Costa Rodrigues Microsoft Visual Basic – Introdução 1 1. INTRODUÇÃO O Microsoft™ Visual Basic é uma poderosa linguagem de programação, e tem uma grande vantagem em relação às outras linguagens, por ser do mesmo fabricante do sistema operacional Microsoft™ Windows tem uma maior integração com o mesmo. Outra vantagem e que os programas gerados pelo Visual Basic, para serem ser executados necessitam da biblioteca Msvbvm50.dll ou Msvbvm60.dll e outros arquivos de extensão de aplicativos. Na prática a vantagem é o seguinte, os programas têm tamanhos menores e são executados, compartilhando este arquivos (bibliotecas e ActiveX). As interfaces de usuário gráficas, ou GUIs (pronuncia "gúis", do Inglês Graphic Interfaces User), revolucionaram a indústria da microinformática. Elas demonstram que a frase "Uma figura vale por mil palavras" é verdadeira para a maioria dos usuários de computadores. Em lugar do estranho prompt do DOS C:> que os usuários observavam durante muito tempo (e que assustou muitos deles), você é presenteado com uma área de trabalho cheia de ícones e com programas que utilizam mouse e menus. Embora alguns programadores tenham apresentado sentimentos contraditórios a respeito das GUIs, os iniciantes gostam delas, e assim é de se esperar que os programas Windows sejam baseados no modelo GUI (e que tenham a aparência e proporcionem a sensação certa). Portanto , se você precisar desenvolver um programa para qualquer versão Windows, desejará Ter uma ferramenta para desenvolver com eficiência aplicativos fundamentados em GUIs, e o Visual Basic é a ferramentas mais indicada, por possui facilidade na síntese de código e interface amigável, próxima dos aplicativos do Windows. Os exemplos e dicas aqui exibidos são de parte de exemplos de livros, do Help do Visual Basic, dicas da Internet (VBAccelerator.com – www.vbaccelerator.com de Steve MacMahon, vbbrasil.com – www.vbbrasil.com.br, VBMania – www.vbmania.com.br, José Carlos Macorati – Site Pessoal www.macoratti.net e etc.). Uma recomendação bastante pertinente para que pretende programar é por em dia o Inglês, pois todos os comandos os arquivos de ajuda (Help) e a maioria da documentação para as linguagens de programação estão em Inglês. Outra recomendação é sempre que possui dúvidas acesse o arquivo de Ajuda ou o Books Online que vêm junto com o Visual Basic. Para quem não possui uma versão registrada do Microsoft™ Visual Basic poderá adquirir gratuitamente no site da Microsoft a versão mais simplificada: Visual Basic Control Create. Apesar de muito básica é possível criar executáveis simples e componentes ActiveX, com a mesma facilidade das outras versões (Standard, Professional e Enterprise). Desvendando a linguagem de programação mais popular do mundo – W.C. Rodrigues 2 Microsoft Visual Basic – Conceitos Básicos do Visual Basic 3 2. CONCEITOS BÁSICO DO VISUAL BASIC Se você já está familiarizado com o Visual Basic pode passar para o próximo capítulo, pois o capítulo atual visa fazer uma introdução do Visual Basic para os iniciantes. 2.1. Interface do Visual Basic O Visual Basic Possui uma interface amigável com o padrão MDI (Multiple Document Interface), porém é possível trabalhar com uma interface SDI (Single Document Interface), através do menu Tools > Options > Advanced. Figura 1. Interface MDI (Mutiple Document Interface) do Visual Basic 6.0 Figura 2. Interface SDI (Single Document Interface) do Visual Basic 6.0 Desvendando a linguagem de programação mais popular do mundo – W.C. Rodrigues 4 2.2. Controle Básico O Visual Basic ao ser carregado apresenta uma barra de ferramenta a esquerda da tela contendo 19 controles padrão, que fazem parte da Biblioteca do VB (MSVBVM50.dll v5.0 ou MSVBVM60.dll v6.0, em síntese a biblioteca significa MicroSoft Visual Basic Virtual Machine versão do VB, ou seja, Máquina Virtual do MicroSoft Visual Basic). Eles poderão ser utilizados e no momento da distribuição do aplicativo, também deverá ser distribuída à biblioteca (MSVBVMx0.dll, onde x é a versão do VB). A única exceção é o controle Data, que necessita da biblioteca DAO (Data Access Objects, ou seja, Acesso a Objetos de Dados. Tabela 1. Controles básicos e suas descrições. Img Controle/Descrição Pointer – Não verdade não se trata de um Controle, mas sim uma ferramenta que serve para dimensionar e mover Controles. PictureBox – Permite exibir figuras (bmp, ,jpg, gif, wmf, emf) e ícones. Label – Etiqueta ou rótulo, exibe um texto para identificação outros controles no formulário. TextBox – Este controle permite ao usuário digitar texto. Frame – Moldura utilizada para agrupar controles dentro de um formulário. CommandButton – Controle que permite o usuário realizar uma operação, através de linhas de comando pré-determinadas. CheckBox – Pode assumir valores falso ou verdadeiro. Em um mesmo Formulário vários CheckBox's podem assumir o valor verdadeiro ao mesmo tempo. OptionButton – Pode também assumir valores falso/verdadeiro, mas em um mesmo Formulário somente um OptionButton pode assumir o valor verdadeiro. ComboBox – Combina caixa de texto com caixa de listagem. O usuário pode digitar a informação como também pode encolher da lista. ListBox – Exibe uma lista de itens que o usuário pode selecionar. HScrollBar e VScrollBar – Permite selecionar com o mouse um determinado valor numa faixa de valores. Timer – Controla intervalos de tempo determinados pelo programador em milisegundos. DriveListBox – Exibe os drivers do computador. DirListBox – Exibe as pastas (diretórios) do computador. FileListBox – Exibe os arquivos de uma pasta (diretório). Shape – Permite exibir várias formas geométricas num formulário. Line – Permite traçar linhas dentro do formulário. Image – Permite exibir figuras (bmp, jpg, gif, wmf, emf) e ícones, ainda permitindo que seja dimensionado de acordo com a necessidade do programador. Data – Permite acessar diversas base de dados. OLE – permite incorporar objetos ou arquivos no formulário. Microsoft Visual Basic – Conceitos Básicos do Visual Basic 5 2.3. Controles Personalizados As versões Professional e Enterprise permitem que o programador utilize controle personalizados, que são os ActiveX, que possuem funções específicasde acordo com o controle. Alguns do mais utilizados são RichTextBox, CommomDialog, Toolbar, StatusBar, ProgressBar; TreeView, ListView, ImageList, Slider, MSChart, entre outros. Cada um possui sua função específica. Deste modo atendendo as necessidades do programador. Para acessar os controle personalizados no Visual Basic, basta clicar Project > Components... ou pressionar "Control+T". Existe uma infinidade de ActiveX no diretório do sistema (em geral C:\Windows\System) que poderão ser utilizados, caso o ambiente suporte tal componente ou se ela estiver registrado no sistema. Além disto o programador poderá adquirir componentes personalizados elaborados por empresas de Software ou na Internet (gratuitamente). O Visual Basic permite que o usuário avançado elabore seus próprios controles, deste modo atendendo mais ainda as necessidades específicas do programador, maiores detalhes serão vistos no Capítulo 4. 2.4. Tipos de Projetos O Visual Basic permite nas versões Professional e Enterprise diverso tipos de projeto. A seguir consta a descrição de cada projeto: Standard EXE – Este é o projeto padrão. Através do qual o programador inicia um novo projeto baseado na construção de um aplicativo executável comum; ActiveX EXE – Este projeto permite que o aplicativo gerado possa de utilizado ou distribuído pela Internet; ActiveX DLL – Este tipo de projeto permite a criação de executáveis do tipo DLL (Dynamic Link Libary, ou seja Biblioteca de Vínculo Dinâmico). Sua construção permite a utilização dos códigos nela construídos, em projeto futuros; ActiveX Control – Permite a criação de controles personalizados de acordo com a necessidade de funções e controles para outros projetos, minimizando assim o excesso de programação; VB Application Wizard – Este projeto dispara o assistente de criação de aplicativos do Visual Basic, permitindo a criação de formulários chaves de uma aplicação como a tela de entrada SplashScreen, formulário das informações do sistema, vínculo com base de dados, ente outros; VB Enterprise/Professional Edition Controls – Este tipo de projeto permite que o programador elabore um aplicativo com base em todos os controles disponíveis para as versões Professional e Enterprise; Addin – Permite a elaboração de Add-ins que poderão ser utilizados pelo Visual Basic, para automatizar tarefas repetitivas e/ou complexas; ActiveX Document DLL – Permite criar DLLs do tipo ActiveX que podem ser utilizadas na Internet para exibir ou capturar dados; ActiveX Document EXE – Permite que seja criado documentos para utilização na Internet. Desvendando a linguagem de programação mais popular do mundo – W.C. Rodrigues 6 Figura 3. Tela de seleção de um novo projeto, com os diversos modelos. 2.5. Tipo de Variáveis O Visual Basic trabalha com 8 tipo de variáveis fixas que possuem características próprias de tamanho e forma de uso. Porém você poderá criar variáveis temporárias para atender suas necessidade. A seguinte demonstra o nome das variáveis e a capacidade de dados de cada uma. Tabela 2. Tipo de variáveis sua capacidade de uso. Tipo de Variável Capacidade Boolean True ou False Byte 0 a 256 Currency -922.337.203.685.477,5808 a -922.337.203.685.477,5807 Date Qualquer expressão de data válida. Double (Valores negativos) -1,79769313486232 E-308 a -4,94065645841247 E-324 (Valores positivos) 4,94065645841247 E-324 a 1,79769313486232 E-308 Integer -32.768 a 32.767 Long -2.147.483.648 a 2.417.483.647 Single (Valores negativos) -3,402823 E-38 a -1,401298 E-45 (Valores positivos) 1,401298 E-45 a 3,402823 E-38 String Qualquer tamanho Variant – 2.6. Declarando Variáveis no Visual Basic As variáveis do Visual Basic (como visto no Tópico 2.5), podem ser declaradas dentro de eventos ou procedimentos. Quando o programador declara uma variável com Dim, esta será eliminada da memória, quando o evento finalizar, entretanto se a variável for declarada como Public, está permanecerá na memória até que a aplicação seja finalizada. Duas outras formas de declarar uma variável são através dos argumentos Private (que restringe a variável a um Form/Module/Class) ou através de Global que possui a mesma amplitude de Public. Microsoft Visual Basic – Conceitos Básicos do Visual Basic 7 Alguns padrões poderão ser seguidos para facilitar a identificação do tipo de variável, o seja, antes do nome da variável o programador poderá inserir uma letra ou duas letras que identifique o tipo de variável. Veja uma sugestão na Tabela 3. Tabela 3. Sugestão de prefixo para identificação do tipo de variável. Tipo de Variável Letra/Prefixo Exemplo Boolean b bFinalizar Byte by byLetter Currency c cReal Date dt dtAniversario Doublé d dJuros Integer i iIndice Long l lTitulo Single sg sgLetra String s sEndereco Variant v vCEP Public sNome As String 'Variável pública declarada como String Private lTitle As Long 'Variável pública declarada como Long Dim vCEP as Variant 'Variável privada a um evento declarada como Variant Global sEndereco as String 'Variável global declarada como String Código 1. Exemplo de Declaração de variáveis no Visual Basic. Se o programador não especificar o tipo de variável o Visual Basic atribuirá o tipo Variant a variável. Para exigir que as variáveis sejam sempre declaradas, nas declarações da janela Code sempre insira Option Explicit. Uma forma mais fácil e acionar esta opção automaticamente, para que toda vez que o programador exibe a janela Code pela primeira vez seja inserida esta string. Para tal clique em no meu Tools > Options, na aba Editor (primeira) marque a opção Require Variable Declaration, clique em OK para confirmar. A vantagem desta opção é que o Visual Basic verifica a síntese de cada variável e impede que uma variável seja utilizada sem antes ser declarada. 2.7. Convertendo Dados O Visual Basic possui funções internas de conversão de dados, o que facilita e muito a vida de um programador, pois hora é necessário que uma variável possua dados longos outra hora dados do tipo String. Entretanto cuidado no momento de converter os dados pois fica um tanto quanto incoerente converter um dado string para um dado byte. A Tabela seguinte exibe a funções e suas respectivas descrições. Tabela 4. Funções internas do Visual Basic para conversão de dados. Função Descrição CInt Transforma uma expressão numérica em um número inteiro por arredondamento. CLng Transforma uma expressão numérica em um inteiro longo por arredondamento. CSng Transforma uma expressão numérica em precisão simples. CDbl Transforma uma expressão numérica em precisão dupla CCur Transforma uma expressão numérica em moeda. CStr Transforma qualquer expressão string. CVar Transforma uma expressão variante. Desvendando a linguagem de programação mais popular do mundo – W.C. Rodrigues 8 Função Descrição CBool Transforma uma expressão em booleana (verdadeira/falsa) CByte Transforma uma expressão numérica em um byte. CDate Transforma uma expressão compatível em uma data válida. 2.8. Exercícios 1. Quais controles abaixo são básico da biblioteca padrão do Visual Basic? ( ) PictureBox ( ) RichTextBox ( ) ProgressBar ( ) Image ( ) OLE ( ) Label ( ) TabStrip ( ) Timer ( ) ListBox ( ) ComboBox 2. De acordo com as funções dos componentes básicos da biblioteca do VB, assinale V (verdadeiro) ou F (Falso), para as função especificadas abaixo: ( ) Line - Permite traçar linhas dentro do formulário. ( ) Shape – permite traçar linhas e caixas de texto no formulário. ( ) Frame – Moldura utilizada para agrupar controles dentro de um formulário. ( ) OptionButton – Pode assumir valores falso ou verdadeiro. Em um mesmo Formulário vários OptionButton's podem assumir o valor verdadeiro ao mesmo tempo. ( ) CheckBox – Pode também assumir valores falso/verdadeiro, mas em um mesmo Formulário somente um CheckBox pode assumir o valor verdadeiro. () DriveListBox – Exibe os drivers do computador. ( ) DirListBox – Exibe as pastas (diretórios) do computador. ( ) FileListBox – Exibe os arquivos de uma pasta (diretório). 3. De acordo com os tipos de projeto do Visual Basic qual dos tipos encaixa-se na descrição seguinte: "Permite a criação de controles personalizados de acordo com a necessidade de funções e controles para outros projetos, minimizando assim o excesso de programação" ( ) StandardEXE ( ) ActiveX EXE ( ) ActiveX Control ( ) AddIn 4. Defina o projeto do tipo StandardEXE. ________________________________________________________________________________ ________________________________________________________________________________ 5. Qual das variáveis do Visual Basic, listadas abaixo, retorna o valor verdadeiro/false (True/False). ( ) String ( ) Variant ( ) Boolean ( ) Long ( ) Integer ( ) Single 6. Qual das variáveis do Visual Basic, listadas abaixo, retorna o maior valor numérico. ( ) Byte ( ) Variant ( ) Boolean ( ) Long ( ) String ( ) Single 7. Qual das variáveis do Visual Basic, listadas abaixo, retorna o menor valor numérico. ( ) Integer ( ) Variant ( ) Byte ( ) Long ( ) String ( ) Single 8. Declare uma variável publica (Public) do tipo String, atribua uma valor a esta variável e por fim converta esta para uma variável longa (Long) Microsoft Visual Basic – Estrutura de uma Aplicação 9 3. ESTRUTURA DE UMA APLICAÇÃO Uma aplicação em Visual Basic é um conjunto de elementos (formulários, módulos, classes, etc.) contendo diversas instruções que orientam o computador na realização de determinadas tarefas. Essas instruções encontram-se devidamente organizadas numa estrutura lógica bem definida, como veremos a seguir, e, quanto mais complexa for a aplicação maiores os cuidados devem ser tomados com essa estrutura. O desenvolvimento de uma aplicação obedece a algumas etapas importantes, geralmente bem distintas. A primeira delas é a criação de uma interface, isto é, um conjunto de elementos que permitirá a comunicação do aplicativo com o usuário. Nesta etapa, deve ser definido, como o usuário irá interagir com a aplicação e, para isso, programador precisa criar os formulários e desenhar os componentes (controles) que permitirão a interação usuário-aplicação. O primeiro passo ao desenvolver um aplicativo em Visual Basic é planejar o que será visto pelo usuário final, ou seja, projetar as telas. Quais os menus deverão conter na aplicação? Qual deverá ser o tamanho das janelas (formulários) a serem exibidas pelo programa? Quantas janelas deverá possuir o aplicativo. O usuário deverá ser capaz de redimensionara a janela? Onde deverão ser desenhados os controles (botões, caixas de texto, etc.)? Quais serão os controles necessários para que o aplicativo possa desempenhar as funções a que se propõem?. Bom, entre outras infinitas perguntas que poderão surgir a medida que o programador interage com a linguagem de programação. Na Figura 04, está um exemplo de um organograma simplificado de uma aplicação básica. Após projetar a interface o segundo passo é escrever os códigos para ativar a interface visual que foi previamente elaborada. Os objetos no Visual Basic irão reconhecer eventos como clique do mouse. A maneira pela qual os objetos irão responder a esses eventos dependerá do código que o programador escreveu. O exemplo a seguir exibe o formulário frmMain a partir do procedimento Main, contido num módulo (Module) Public Sub Main() frmMain.Show End Sub Código 2. Procedimento para exibição do formulário frmMain. Grande parte do código de programação em Visual Basic que informa ao programa como responder a eventos como um clique do mouse ocorre no que o Visual Basic chama de procedimentos de eventos (ou procedures de eventos). Um procedimento de evento nada mais é que o código necessário para informar ao Visual Basic como responder a um evento. Essencialmente, tudo o que é executável em um programa Visual Basic é um procedimento na realização de sua tarefa. É evidente que o terceiro e quarto passo na construção de um aplicativo, consiste em localizar e tratar o erros no código (depuração) e depois corrigi-los. Eis um resumo dos passos que um programador poderá adotar na construção de um aplicativo com o Visual Basic: 1. Personalizar as janelas que serão exibidas para o usuário; 2. Decidir quais os eventos que os controles na janela devem reconhecer; 3. Escrever os procedimento de eventos (procedures) para aqueles eventos e os prcedimentos subsidiários que fazem funcionar tais procedimentos de eventos. Quando o aplicativo for executado, acontecerá o seguinte: 1. O Visual Basic monitora as janelas e os controles em cada janela para todos os eventos que cada controle consegue reconhecer (movimentos do mouse, cliques, teclas, etc.); 2. Quando o Visual Basic detecta um evento, caso não haja uma resposta intrínseca ao evento, o Visual Basic examina o aplicativo para ver se o programador escreveu um procedimento (procedure) para tal evento; Desvendando a linguagem de programação mais popular do mundo – W.C. Rodrigues 10 3. Se o programador escreveu o procedimento (procedure), o Visual Basic executa o código que forma tal procedimento de evento e volta para o passo 1. Se o procedimento (procedure), não for localizada o Visual Basic, gera um erro. Devemos ressaltar que existem vários padrões adotados por programadores para nomear os controles ou objetos que fazem parte de uma aplicação, porém é ideal que a equipe de programação possua um padrão de nomeação os objetos ou controles. A Tabela 5 apresenta o padrão de prefixos para os nomes dos objetos mais utilizados em uma aplicação. Uma das informações mais importantes para o programador que está iniciando, é que o hábito de consultar a ajuda do Visual Basic dever ser constante, pois assim as dúvidas poderão ser sanadas em tempo muito curto. Outra forma de sanar estas dúvidas é adquirindo bibliografia a respeito do assunto (Visual Basic). Devemos lembrar que o programador deverá ter pelo menos uma noção de INGLÊS, pois toda documentação que acompanha o Visual Basic é em inglês, e a maioria da bibliografia do mercado, pelo menos as mais sofisticadas, estão no idioma Inglês. Felizmente com a popularização da linguagem vários livros e tutoriais são encontrados em português, no caso dos tutoriais é possível encontra-los vastamente na WEB. 3.1. Estruturas de Programação do Visual Basic1 Aqui será apresentado às principais estruturas de programação da linguagem. Dominando estas estruturas, você poderá escrever programas mais simples e concisos e, muitas vezes, diminuir consideravelmente o número de instruções e comandos para executar a mesma tarefa e consequentemente o tamanho do aplicativo/componente. 3.1.1. Tipos de Estruturas de Linguagem As estruturas de utilizadas para se escrever códigos no Visual Basic 5 ou 6 são normalmente divididas em dois tipos distintos: estruturas de tomada de decisão e estrutura de loop (ou laço). 3.1.1.1. Estrutura de Tomada de Decisão: Estas estruturas são utilizadas durante o fluxo do programa para permitir a execução de diferentes tipos de códigos, de acordo com o contexto atual em que o usuário do seu programa se encontra. 3.1.1.1.1 IF... Then... Else If <condição 1> = verdadeiro Then Declaração 1 ElseIf <condição 2> = verdadeiro> Then Declaração 2 Else Declaração 3 End If Considerada a mais tradicional estrutura de linguagem (Se... Então... Senão), esta instrução avalia o conteúdo da <condição 1> e, se ela for verdadeira, executa as Declaração 1 contida entre a linha If e a primeira instrução Else ou ElseIf (se houver alguma). Caso contrário, pula para a próxima cláusula ElseIf <condição2> Then, para avaliar a <condição 2>, caso ela seja verdadeira a Declaração 2, será executada (Se houver alguma), caso contrário a instrução executará a cláusula Else (senão) daexpressão. 1 Baseado na obra Morgado, F. 1998. Visual Basic 5, método rápido Microsoft Visual Basic – Estrutura de uma Aplicação 11 3.1.1.1.2 IIF Variável=IIF(<condição>, <valor true>, <valor false>) Considerada uma variante da função anterior, também chamada de Se Imediato nas versões em Português do Microsoft Access e Excel, está instrução permite que o programador coloque uma instrução If... Then... Else End If em uma única linha de código, permitindo que atribua diferentes valores a variáveis ou objetos, dependendo do resultado da expressão. Esta instrução avalia o valor da cláusula <condição> e se o valor for verdadeiro, retorna para variável o resultado da expressão contida na cláusula <valor true>. Caso o resultado de <condição> seja falso, <variável> é preenchida com o valor da cláusula <valor false>. 3.1.1.1.3 Select Case Select Case <condição> Case <resultado 1> Declaração 1 Case <resultado 2> Declaração 2 Case Else Declaração 3 End Select Considerada uma variante à estrutura If... Then... Else, a instrução Select Case permite que o programador faça apenas um teste <condição> no início da instrução Select Case e tome várias decisões dependendo do valor retornado. Esta instrução é geralmente utilizada quando existem inúmeras possibilidades de tratamento do valor gerado pela cláusula <condição>, como é o caso das rotinas de tratamento de erro em tempo de execução ou ativação de botões de uma ToolBar (Barra de Ferramentas), onde nesse caso a resultado é geralmente o valor Key ou o valor Index de cada botão. Verifique que esta estrutura oferece uma saída caso nenhum valor retornado (resultado) seja verificado pelos Case's da instrução, assim o valor retornado poderá ser atribuído na expressão Case Else (Declaração 3). 3.1.1.2. Estrutura de Loop As estruturas de loop (ou laço) são utilizadas para permitir que um mesmo conjunto de instruções seje executado continuamente, até que uma determinada condição seja satisfeita. 3.1.1.2.1 For... Next For... <contador> = <começo> To <fim> Step <passo> Declaração Next <contador> Esta estrutura de laço permite que você execute todas as instruções contidas dentro de For... Next, por um número de vezes definido entre o valor <começo> e o valor <fim>, contando- se as interações de acordo com o argumento opcional Step <passo>. O valor do contador não poderá ser uma variável Boolean (Boleana) ou uma array. Exemplo: O laço For... Next..., abaixo, faz com que a variável IntJ sela incrementada de 1 a tá 100, de 5 em 5 unidades (forçando a execução do laço por 20 vezes consecutivas): Dim IntJ as Integer For IntJ = 1 To 100 Step 5 <executar as instruções> Next IntJ Desvendando a linguagem de programação mais popular do mundo – W.C. Rodrigues 12 A especificação do nome da variável contadora dentro da cláusula Next ( como Next IntJ é opcional) é opcional – basta escrever Next para fechar o laço. No entanto, ela melhora significativamente a compreensão do código e, portanto, é amplamente recomendada. 3.1.1.2.2 Do... Loop Do Declaração Loop A instrução Do... Loop convencional é executada continuamente. Você deve colocar uma condição de teste no interior do laço, através de uma instrução If... Then... Else, para fazer com que ela termine sua execução, enviando uma instrução do tipo Exit Do. Exemplo: No exemplo a seguir, a instrução Do... Loop é executada continuamente, ate que o valor da variável fCancelar seja verdadeiro. Do DoEvents If fCancelar Then Exit Do End If Loop Muito cuidado na hora de utilizar uma instrução Do... Loop, pois se o valor que determina o final do laço não for alcança o laço seja executado infinitamente, fazendo com que a aplicação seja paralisada, provocando um Bug, consequentemente travando o computador. As estruturas Do... Loop possuem diversas variantes e são utilizadas para fazer com que o código seja executado seguidamente, até que uma determinada condição seja verdadeira. Esta condição pode ser testada no início ou no fim do laço, e é normalmente utilizada com as cláusulas While (enquanto) ou Until (até). 3.1.1.2.3 Do While... Loop Do While <condição> Declaração Loop Nesta variante, as instruções dentro do laço Do... Loop serão executadas enquanto (While) o valor de <condição> for verdadeiro. Isto significa que, se o valor de <condição> for falso antes do início do laço, as declarações contidas em seu interior não serão executadas. 3.1.1.2.4 Do Until... Loop Do Until <condição> Declaração Loop Apesar desta instrução ser muito semelhante a anterior à anterior, o teste é feito em um momento diferente. Neste caso, o laço será executado até que o valor <condição> seja verdadeiro, o que inverte a situação anterior, ou seja, as declarações no interior do laço serão executadas apenas se o valor de <condição> for falso. Microsoft Visual Basic – Estrutura de uma Aplicação 13 3.1.1.2.5 While... Wend While <condição> Declaração Wend Esta estrutura é bastante semelhante a estrutura Do While... Loop. A diferença entre elas consiste no fato de que While... Loop é menos flexível do que um laço Do... Loop convencional, não permitindo, por exemplo, sair prematuramente do laço em uma instrução Exit Loop. Além disso, a estrutura While... Wend sempre executa o teste <condição> no início do laço. 3.1.1.2.6 For Each... Next For Each <objeto> In <Colação> Declaração Next Esta estrutura permite que você caminhe por todos os objetos de uma coleção ou matriz (variável do tipo array). Exemplo: No exemplo a seguir, você pode utilizar a estrutura For... Each para alterar a propriedade Enabled (ativado) de todos os controles do tipo TextBox (Caixa de Texto) do formulário frmMain, tornando-os indisponíveis. For Each ctl In frmMain If TypeOf ctl Is TextBox Then ctl.Enabled = False End IF Next A cláusula For... Each cria automaticamente uma variável chamada ctl (uma abreviação de control ou controle), e faz um laço por todos os controle do formulário frmMain, desativando todas as caixas de texto, sem importar quantas elas são. Verifique que o teste para saber se o controle é mesmo uma caixa de texto (TextBox), é realizado pela cláusula If TypeOf Is TextBox Caso o valor retornado seja verdadeiro o controle testado é desabilitado, ou seja, o controle é uma caixa de texto, se o controle for um botão (CommandButton) este não será desabilitado pois não é um TextBox. 3.1.1.2.7 With... End With With <coleção> Declaração End With Esta estrutura permite que o programador referencie diretamente cada elemento ou propriedade de uma coleção (ou matriz), sem a necessidade de especificar o caminho completo (ou índice) para cada elemento da coleção. A estrutura With... End With, é muito utilizada para permitir a alteração de diversas propriedades de um único controle ou formulário do Visual Basic ou Access. Exemplo: para alterar diversas propriedades de uma Caixa de Texto (TextBox) chamada txtxValorTotal, utiliza-se a estrutura With... End With, da seguinte forma: With txtValorTotal .Locked = False .MaxLenght = 30 Desvendando a linguagem de programação mais popular do mundo – W.C. Rodrigues 14 .TabStop = True .Visible = True End With 3.1.1.3. Saindo das Estruturas de Loop Algumas vezes você pode precisar terminar abruptamente a execução de uma estrutura de laço antes de a condição testada ser verdadeira. No caso da estrutura For... Next, você pode utilizar uma instrução Exit For dentro do laço, para que a instrução que segue a cláusula Next seja imediatamente executada. Já nas estruturas Do... Loop utilize a instrução Exit Do. Isto fará com que a instrução que segue a cláusula Loop seja imediatamente executada. Devemos lembrar que Exit Loop, não funcionara na cláusula While... Wend. 3.2. Formulários e Controles Cada formulário de uma aplicação é gravado em um arquivocom seções bem-definidas – uma seção reúne o código que define os objetos apresentados em tela e a configuração de suas propriedades, outra seção contém as declarações das variáveis e objetos não visuais utilizados pelo formulário e, finalmente, uma outra seção inclui o código das rotinas de eventos, além das rotinas e funções escritas pelo programador para uma determinada finalidade. O formulário visualizado em uma tela possui uma interface gráfica, que é carregada pelo VB a partir do arquivo padrão som extensão FRM. Além da interface gráfica os formulários (Forms) possuem instruções (código) para execução e tarefas, pré-determinadas pelo programador. Um formulário possui propriedades, para sua definição visual, métodos, que definem seu comportamento e eventos, relativos à interação como usuário. As propriedades podem ser definidas na fase de desenho (Design Time) – através da janela de propriedades (Figura 05) – ou também durante a execução da aplicação (Run Time), porém existem algumas propriedades que são somente leitura (Read Only) em tempo de execução (Run Time). Caso alguma seqüência de código seja definida para um determinado evento, ela será automaticamente disparada quando este ocorrer, já os métodos são funções intrínsecas ao formulário e, se invocadas em determinada linha de comando (código), podem ser acessadas somente durante a execução da aplicação pelo disparo de algum evento. Tabela 5. Prefixos para nomes dos objetos mais utilizados em aplicação (Sugestão da Microsoft e do Autor) Objeto/Componente Prefixo Exemplo "Outline" out outChart Abas (TabStrip) tab tabDados Árvore de visualização (TreeView) tvw tvwNome Barra de Ferramentas (ToolBar) tlb tlbMain Barra de rolagem horizontal (HscroolBar) hsb hsbPicture Barra de rolagem plana (FlatScroolBar) fsb fsbTextBox Barra de rolagem vertical (VScroolBar) vsb vsbPicture Barra de Status stb stbMain Botão de comando (CommandButton) cmd cmdClose Botão de opção (OptionButton) opt optSend Caixa de Diálogo (CommonDialog) cdl cdlOpenFile Caixa de Listagem (ComboBox) cbo ou cmb cboName Caixa de listagem de Banco de dados (DBCombo) dbc dbcState Caixa de listagem de imagens (ImageCombo) icb ou cbi icbIconSmall Microsoft Visual Basic – Estrutura de uma Aplicação 15 Objeto/Componente Prefixo Exemplo Caixa de Máscara (MaskEditBox) msk mskPhone Caixa de Texto (TextBox) txt txtName Caixa de texto formatado (RichTextBox) rtf rtfFile Caixa de Verificação (CheckBox) chk chkSaveSetting Contador de tempo ou temporizador (Timer) tmr tmrShowAll Controle de animação (Animation) ani aniAviFile Controle de Dados (DataControl) dat ou dtc datDBase Controle de gráfico (MSChart) grf grfDBase CoolBar clb clbMain DTPicker dtp dtpMonth Figura (PictureBox) pic piclogo Forma (Shape) shp shpSquare Formulário (Form) frm frmMain Formulário MDI (MDIForm) mdi mdiMain Grade (Grid) grd grdName Grade do Bando de Dados (DBGrid) dbg dbgTitle Imagem (Image) img imgIcon Legenda (Label) lbl lblTitle Linha (Line) lnh lnhVertical Lista (Listbox) lst lstEmail Lista de arquivos (FileListBox) flb filBitmap Lista de diretórios (DirListbox) drl drlSource Lista de Drive (DriveListBox) dvl dvlSource Lista de imagens (ImageList) iml imlIcons32 Lista de visualização (ListView) lvw lvwTitles Listagem de Banco de dados (DBList) dbl dblAuthor Menu mnu ou smnu mnuFile ou smnuProperty Módulo (Module) mod modAPIs Módulo Classe (Class Module) cls clsTypeFile Moldura (Frame) fra fraTitles MothView mvw mvwCalendar MS Flex Grid fgd fgdAuthor MS Tab tab tabConfig OLE ole oleWord Página de propriedades (Property Page) ppg ppgFont Painel Tridimensional (3D Panel) pnl pnlGroup ProgressBar (Barra de progresso) pbr pbrLoadfile Relatório (DataReport) drp drpTitles Resource File res resIcons Slide (Slider) sld sldConfig UpDown upd updCopies User Control ctl ctlButton Desvendando a linguagem de programação mais popular do mundo – W.C. Rodrigues 16 Os formulários possuem várias propriedades como segue na Tabela 6. Tabela 6. Principais propriedades de um formulário. Propriedade Descrição Valor Padrão (Name) Define o nome do formulários (vide prefixos de nome de objetos Quadro 4) Form1 Apparence Define a aparência do formulário se 0 – Flat ou 1 – 3D 1 – 3D BackColor Define a cor do fundo do formulário &H8000000F& BorderStyle Define o tipo borda que o formulário exibirá: 0 – None; 1 – Fixed Single; 2 – Sizable; 3 – Fixed Dialog 2 – Sizable Caption Define o texto que será exibido na barra de título do formulário Form1 ControlBox Define se o formulário irá exibir ou não os botões de minimizar, maximizar, fechar e o ícone da janela. True Enabled Define se o formulário estará ativo ou não True Font Define a fonte que o formulário irá exibir MS Sans Serif Fore Color Define a cor da fonte no formulário &H80000012& Height Define a altura do formulário 3570 Icon Define o ícone que o formulário exibirá Left Define a posição a esquerda do monitor que o formulário irá se posicionar 0 MaxButton Exibe ou oculta o botão fechar do formulário True MDIChild Define se o formulário será "Child - filho" ou não de uma formulário MDIForm False MinButton Exibe ou oculta o botão minimizar do formulário True MouseIcon Exibe o cursor personalizado do formulário (None) MousePointer Exibe o cursor do formulário: 0 – Default; 1 – Arrow; 2 – Cross; 3 – I-Bean; 4 – Icon; 5 – Size; 6 – Size NE SW; 7 – Size N S; 8 – Size NW SE; 9 – Size W E; 10 – Up Arrow; 11 – Hourglass; 12 – No Drop; 13 – Arrow or Hourglass; 14 – Arrow and Question; 15 – Size All; 99 – Custom 0 – Default Moveable Define se o formulário será móvel ou não True Picture Define a imagem que será exibida no fundo do formulário (None) StartUpPosition Define a posição que o formulário será exibido na tela: 0 – Manual; 1 – CenterOwner; 2 – CenterScreen; 3 – Windows Default 3 – Windows Default Top Define a posição no parte superior do monitor que o formulário irá se posicionar 0 Visible Define se o formulário será visível ou não True Width Define a largura do formulário 4770 WindowState Define como o formulário será exibido em run time (tempo de execução) 0 – Normal; 1 – Minimized; 2 – Maximided 0 – Normal Além do arquivo alfanumérico FRM, que contém as informação de propriedades, linhas de comando, eventos do formulário dos controles inseridos nele, o VB poderá gerar um arquivo binário com extensão FRX, o qual contém informações binárias de certas propriedades do form ou dos controles, por exemplo: ícone e figura do Form, figura do PictureBox, etc. Os controles, assim como o formulário, também possui propriedades, eventos e métodos, porém muito variáveis, de acordo com a finalidade do controle e do fabricante. Microsoft Visual Basic – Estrutura de uma Aplicação 17 Sistema operacional API's DLL's ActiveX's Banco de dados Impressora Arquivo controles menus frmCadastro frmMain controles m enus modMain módulo In icial da aplicação Módulos Classes User Control Figura 4. Organograma simplificado de uma aplicação. Figura 5. Janela de propriedades do Visual Basic. 3.3. Módulos (Module) e Módulos Classe (Class Module) 3.3.1. Módulos (Module) Os módulos padrão (Module), em geral são utilizados para declarar procedimentos públicos (procedures) e criar funções publicas, minimizando assim o trabalho de escrita de códigos e reduzindo desta forma o tamanho do executável final. Em geral se utiliza os módulos padrão para criar procedimentos comuns a vários eventos que o Visual Basic irá utilizar. Por exemplo, se o programador deseja que três botões (CommandButton) exiba o mesmo formulário, porém com as propriedades deste forma diferente, uma função poderá substitui o exemplo do exibido no Código 3, ou seja, o Código 4, seria mais rápido e menos trabalhoso. Sempre que possível recomenda-se ao programador que crie suas próprias funções com o objetivo de minimizar o trabalho árduo de declaração
Compartilhar