BasicPVOE2.ppt

70
VBEsp01 1 A Linguagem Basic

Transcript of BasicPVOE2.ppt

  • VBEsp01*A Linguagem Basic

    VBEsp01

  • VBEsp01*HistricoDarthmouth College em 1959BASIC (Beginners All-Purpose Symbolic Instruction Code) Sub conjunto de FORTRANTpica de mini computadoresLinguagem interpretada

    VBEsp01

  • VBEsp01*HistricoInterpretador de pequeno tamanhoCrescimento com os micro computadores enorme Primeiro produto comercializado por Bill GatesTornou-se a linguagem conhecida pelo maior nmero de usurios

    VBEsp01

  • VBEsp01*HistricoPor diversas razes a linguagem Basic tem sido bastante prestigiada pela MicrosoftEm maro de 1988 Alan Cooper desenvolveu o produto drag-and-drop Tripod e negociou o conceito deste produto, cognominado Ruby com a Microsoft. Bill Gates comprou a empresa.Em maro de 1991 foi lanada a primeira verso do produto Visual Basic, ou VB1VB tornou-se uma extenso de Basic

    VBEsp01

  • VBEsp01*HistricoEm novembro de 1992 foi lanado o VB2 com suporte a ODBC. Nessa ocasio foi lanado o Access.Em junho de 1993 foi lanado o VB3 e o revolucionrio Data ControlO VB4 foi lanado em outubro de 1996O VB5 foi lanado em abril de 1997Em outubro de 1998 foi lanado VB6.Em 2001 foi lanado o Visual Basic .NET

    VBEsp01

  • VBEsp01*Tipos de DadosVariant tipo genricoBoolean True ou FalseByte 0 at 255Integer -32.768 at 32.767Long -2.147.483.648 at 2.147.483.647Single -3,402823E38 at -1,401298E-45 (para valores negativos) 1,401298E-45 at 3,402823E38 (para valores positivos)Double -1,79769313486232E308 at -4,94065645841247E-324 (negativos) 4,94065645841247E-324 at 1,79769313486232E308 (positivos)

    VBEsp01

  • VBEsp01*Tipos de DadosCurrency -922.337.203.685.477,5808 at 922.337.203.685.477,5807Decimal +/-79.228.162.514.264.337.593.543.950.335 (sem casas decimais) +/-7,9228162514264337593543950335 (com casas decimais)Date 1 de Janeiro de 100 at 31 de Dezembro de 9999String 1 at aproximadamente 2 bilhes de caracteres 65.400 caracteres se tamanho fixoType definido pelo utilizadorObject referncia a objetos

    VBEsp01

  • VBEsp01*VariveisIniciando com letraCom at 255 caracteresSem brancos, espaos, pontos, +/-Diferentes das palavras reservadas

    VBEsp01

  • VBEsp01*Declaraes de variveisDimCom sufixosInteger %Long &Single !Double #Currency @String $

    VBEsp01

  • VBEsp01*Exemplos de variveisvByte = 2vBoolean = TruevInteger = 333vLong = 98007vSingle = 3.141592vDouble = 3.1492574567vCurrency = 426.78vDate = #18/09/1977#vString = String de amostragem

    VBEsp01

  • VBEsp01*O tipo de dados VariantO tipo de dados Variant o tipo Default e pode armazenar qualquer tipo de dados, reajustando-se dinamicamente ao seu contedo.

    VBEsp01

  • VBEsp01*Declarao de VariveisDim nomeUm as IntegerDim inteiroUm as IntegerDim longoDois as LongDim singleTres as SingleDim duploUm as DoubleDim quantiaUm as CurrencyDim textoUm as String

    VBEsp01

  • VBEsp01*Visibilidade das variveisDeclaradas em procedimentos ou funes tem visibilidade localDeclaradas na rea de declaraes de mdulos tem visibilidade dentro do mdulo

    VBEsp01

  • VBEsp01*Visibilidade Pblica ou GlobalDados que devam ser acessados por diversos procedimentos devem ser pblicos.Para tornar um objeto pblico a sintaxe Public nomeDaVariavel as tipoDaVariavel

    VBEsp01

  • VBEsp01*Variveis EstticasVariveis com visibilidade local so dinmicas.O valor das variveis dinmicas inicializado quando o procedimento for invocadoVariveis que devem guardar o seu ltimo valor so variveis estticasS se pode declarar objetos estticos nos procedimentos e no nos mdulosPara tornar um objeto esttico a sintaxe Static nomeDaVariavel as tipoDaVariavel

    VBEsp01

  • VBEsp01*Visibilidade e longevidade de uma varivelPublic: visvel em todos os mdulos e durante toda a execuoPrivate ou Dim: visvel dentro do seu mdulo e durante toda a execuoDim: visvel dentro do seu procedimento e durante a sua execuoStatic: visvel dentro do seu procedimento e durante toda a execuo

    VBEsp01

  • VBEsp01*ConstantesAs constantes so declaradas da formaConst nomeDaConstante as tipoDaConstante = valorDaConstante

    VBEsp01

  • VBEsp01*ConstantesSystem-defined constants: True; False; Null; Empty; NothingIntrinsic constants (bibliotecas do VBA): Const LEFT_BUTTON = 1Symbolic constants: Const PI = 3,14

    VBEsp01

  • VBEsp01*OperadoresTexto& (concatenao)Relacionais= (igual a) > (maior que) < (menor que) (diferente de) >= (maior ou igual)
  • VBEsp01*Precedncia de OperadoresMaior precedncia^ exponenciao- negao* , / multiplicao e diviso\ diviso inteiraMod resto da diviso+ , - adio e subtrao& concatenao= , > , < , , >= ,
  • VBEsp01*Outros caracteres ou Rem comentrios: mltiplas instrues na mesma linha_ uma instruo em mltiplas linhas

    VBEsp01

  • VBEsp01*ArraysArrays so agregados de valores homogneosA linguagem VB possui arrays fixos e dinmicosArrays fixos tem seu nmero de elementos determinado na declaraoArrays dinmicos

    VBEsp01

  • VBEsp01*Declarao de ArraysDim/Public/Private nomeDoArray (nmeroDeElementos) [sufixo] As tipoDoArrayDim Valores(500) as Integer Array com 500 elementos inteiros visvel localmentePublic Valores(500) as Integer Array com 500 elementos inteiros visvel globalmente

    VBEsp01

  • VBEsp01*Declarao de ArraysDim Alfa (200) Array com 200 elementos tipo Variant visvel localmentePublic Alfa (200) Array com 200 elementos tipo Variant globalDim Dias (7) As String Array com 7 elementos tipo String visvel localmentePublic Dias (7) As String Array com 7 elementos tipo String global

    VBEsp01

  • VBEsp01*Declarao de ArraysPor default o primeiro elemento de um array tem ndice 0Dim Valores (10 to 40) as IntegerDim Alfa (100 to 150)Public Dias (1 to 7) As String

    VBEsp01

  • VBEsp01*Acesso a elementos de ArraysDias(1) = DomingoAlfa(1) = Rio de JaneiroAlfa(15) = #12/12/1812#Alfa(180) = 512Valores(12) = 412

    VBEsp01

  • VBEsp01*Arrays dinmicosReDim: redefine os limites de um dado arrayRedim Preserve: redefine os limites de um dado array e preserva os valores nele existentes ( aplicvel apenas quando se redefine a ltima dimenso)LBound: retorna o limite inferior de um dado arrayUBound: retorna o limite superior de um dado array

    VBEsp01

  • VBEsp01*ProcedimentosTiposProcedimentosFunesClassificaoDa linguagemDe eventosDo usurio

    VBEsp01

  • VBEsp01*DefiniesProcedimentos e funes da linguagem so aqueles fornecidos pelo fornecedor do produto VB (Microsoft)Procedimentos e funes de eventos so aes em resposta a eventos da interfaceProcedimentos e funes do usurio so a parte do algoritmo implementada pelo usurio

    VBEsp01

  • VBEsp01*Procedimentos de eventosProcedimentos de eventos so iniciados aplicando um duplo clique no objeto correspondente, o que abre a janela de cdigo correspondenteSub Objeto_Evento (arg1, arg2, .. argN) comandos do procedimento End Sub

    VBEsp01

  • VBEsp01*Exemplo de procedimentos de eventosPrivate Sub cmdExecutar_Click()Dim i, j As SingleIf Text1.Text = "" Then Caixa de textos 1 vazia i = 0 Else: i = CSng(Text1.Text) Converter para real o contedoEnd IfIf Text2.Text = "" Then Caixa de textos 2 vazia j = 0 Else: j = CSng(Text2.Text) Converter para real o contedo End IfText3.Text = i + jEnd Sub

    VBEsp01

  • VBEsp01*Procedimentos do usurioProcedimentos e funes do usurio so criados da forma:Abrir a janela de cdigos do mduloDar um clique no menu ToolsSelecionar a opo Add ProcedureEfetuar as escolhas de tipo, escopo e tipo de variveisDar um clique no boto OKDigitar o cdigo

    VBEsp01

  • VBEsp01*Procedimentos do usurioSub Nome_do_Procedimento (arg1, arg2, .. argN) comandos do procedimentoEnd Sub

    VBEsp01

  • VBEsp01*Exemplo de procedimento do usurioSub Calculo (X As Variant) X = X * 5 MsgBox O resultado desejado & XEnd Sub

    VBEsp01

  • VBEsp01*Funes do usurioFunction Nome_da_Funo (arg1, arg2, .. argN) comandos da funoEnd Function

    VBEsp01

  • VBEsp01*Exemplo de Funo do usurioPrivate Function maximo(i As Double, j As Double) If i > j Then maximo = i Else maximo = j End IfEnd Function

    VBEsp01

  • VBEsp01*Edio de rotinas do usurioA visualizao e edio das rotinas (procedimentos e funes) do usurio podem ser feitas usando:Os ComboBoxes da janela de CdigosAs chamadas da rotinaO utilitrio ObjectBrowser

    VBEsp01

  • VBEsp01*Edio de rotinas do usurio usando ComboBoxesAbrir a janela de cdigo do componente aonde foi inserida a rotinaNo ComboBox de objetos selecionar GeneralAbrir a lista de procedimentosSelecionar o mdulo desejado

    VBEsp01

  • VBEsp01*Edio de rotinas do usurio usando as chamadasAbrir a janela de cdigo do componente aonde foi inserida a rotinaPosicionar o cursor sobre uma chamada rotinaPressionar as teclas SHIFT+F2

    VBEsp01

  • VBEsp01*Edio de rotinas do usurio usando Object BrowserPressionar F2 ou abrir o menu View e selecionar Object BrowserAbrir a janela de cdigo do componente aonde foi inserida a rotinaNa ListBox de Classes selecionar o nome do componente aonde foi inserida a rotinaNa ListBox de Member of... selecionar a rotina

    VBEsp01

  • VBEsp01*Declarao de parmetrosOs tipos de parmetros so declarados na definio das rotinasSub Objeto_Evento (arg1 As Tipo_1, arg2 As Tipo_2, ..., argN As Tipo_N) comandosEnd Sub

    VBEsp01

  • VBEsp01*Exemplo de declarao de parmetrosPrivate Sub Text1_KeyPress(KeyAscii As Integer) Dim Tecla as String Tecla$ = Chr(KeyAscii) If Tecla >= 0 And Tecla$
  • VBEsp01*Declarao de parmetrosOs argumentos podem ser passados por referncia ou por valorO default a passagem por referncia

    VBEsp01

  • VBEsp01*Declarao de parmetrosQuando no se desejar que a rotina altere os dados do procedimento chamador deve-se usar a passagem por valor que pode ser feita:Na definio da rotinaSub Objeto_Evento (ByVal arg1 As Tipo_1, ByVal arg2 As Tipo_2, ..., ByVal argN As Tipo_N) comandosEnd Subou na chamada da rotinaObjeto_Evento (arg1), (arg2), ..., (argN)

    VBEsp01

  • VBEsp01*Exemplo de passagem por valorSub Calculo (ByVal X As Variant) X = X * 5 MsgBox O resultado desejado & XEnd Sub

    VBEsp01

  • VBEsp01*Argumentos OpcionaisCom a declarao Optional especificam-se argumentos que o usurio pode utilizar ou noQuando o usurio no especificar argumentos opcionais sero utilizados argumentos defaultQuando se usa a declarao Optional para uma lista de parmetros, todos os parmetros subsequentes devero tambm ser opcionais

    VBEsp01

  • VBEsp01*Visibilidade de RotinasTal como as variveis os procedimentos e as funes podem ser dos tiposPublicPrivateStaticO default para as rotinas PublicProcedimentos de eventos so privados

    VBEsp01

  • VBEsp01*Estruturas CondicionaisTiposIf .. End IfSelect Case End Select

    VBEsp01

  • VBEsp01*Exemplo do uso de If'Testa o nmero digitado If Text1.Text = "0" Or Text1.Text = "" Then 'Se for 0 ou vazio End 'Finaliza a aplicao ElseIf Text1.Text = "1" Then 'Se for 1 MsgBox "Nmero 1 foi digitado" ElseIf Text1.Text = "10" Then 'Se for 10 MsgBox "Nmero 10 foi digitado" Else 'Se no for 0,1, 10 ou "" (vazio) If IsNumeric(Text1.Text) Then 'Se o contedo for numrico MsgBox "Nmero Invlido" ElseIf VarType(Text1.Text) = vbString Then MsgBox "No so permitidas as entradas de Strings" Else MsgBox "Contedo Invlido" End If End If

    VBEsp01

  • VBEsp01*Estruturas CondicionaisIf .condio Then comandos [ElseIf condiox Then] comandos [Else] comandosEnd If

    VBEsp01

  • VBEsp01*Estruturas CondicionaisSelect Case condio [Case expresso1] [comandos] [Case Else] [comandos] End Select

    VBEsp01

  • VBEsp01*Exemplo do uso de Selectmesi=month(date)Select case mesi Case 1 stringMes="Janeiro" Case 2 stringMes="Fevereiro" Case 3 stringMes="Maro"

    Case 12 stringMes="Dezembro" End Select

    VBEsp01

  • VBEsp01*RepetiesTiposDo WhileWhileFor

    VBEsp01

  • VBEsp01*RepetiesDo [{While | Until} condio] [comandos] [Exit DO] [comandos]Loop

    VBEsp01

  • VBEsp01*RepetiesWhile condio [comandos]Wend

    VBEsp01

  • VBEsp01*Exemplo da estrutura Whilecontador = 0While menor
  • VBEsp01*RepetiesFor contador = valor_inic To valor_final [Step incremento] [comandos] [Exit For] [comandos]Next [contador]

    VBEsp01

  • VBEsp01*Exemplo do uso de For .. Next Dim Contador% 'Varivel contadora

    Repete iniciando contador% com 0 'at que o contador seja igual 2000 For Contador% = 0 To 2000 'Adiciona um novo tem no List Box List1.AddItem "tem " & Str(Contador%) Next

    VBEsp01

  • VBEsp01*Estrutura WidthEsta estrutura simplifica a escrita de cdigo permitindo que os objetos apaream implcitos em suas propriedades.Sintaxe Width objeto comandos End Width

    VBEsp01

  • VBEsp01*Exemplo da estrutura WidthPrivate Sub cmdTestar_Click() With Label1 .Caption = Veja o teste .FontBold = True .ForeColor = vbRed .AutoSize = True End WidthEnd Sub

    VBEsp01

  • VBEsp01*Estrutura For EachEsta estrutura permite a execuo de uma seqncia de comandos para cada um dos elementos de um array ou conjunto.Sintaxe For Each elemento In grupo [comandos] [Exit For] Next

    VBEsp01

  • VBEsp01*Exemplo de For ... EachDim qry As QueryDef' Processar cada consulta armazenada For Each qry In DB.QueryDefs QryList.AddItem qry.Name Next

    VBEsp01

  • VBEsp01*Clusula ParamArrayEsta clusula permite que um array seja definido como um parmetro de procedimento.A chamada do procedimento pode ser feita passando quantos parmetros forem necessrios.

    VBEsp01

  • VBEsp01*ExemploOption ExplicitSub Insere (ParamArray Argumentos()) Dim x as Variant For Each x In Arguments List1.AddItem x NextEnd SubPrivate Sub btnInsere_Click() Insere Argumento 1, Argumento 2, _ Argumento 3End Sub

    VBEsp01

  • VBEsp01*Argumentos NomeadosUtilizando-se argumentos com nome pode-se chamar um procedimento ou funo passando os argumentos em qualquer ordem.Dentro da chamada deve-se usar o nome do parmetro com atribuio de valor pelos smbolos :=.Exemplo

    VBEsp01

  • VBEsp01*Uso de argumentos com nomePrivate Sub Command1_Click() Exibir _ pLugar := vbCenter, pMens:= Argumentos, pTamanho: = 12End SubPrivate Sub Exibir (pMens As String, pTamanho As Integer, pPLugar as Integer) Label1.Alignment = pLugar Label1.FontSize = pTamanho Label1.Caption = pMensEnd Sub

    VBEsp01

  • VBEsp01*Projetos Visual Basic

    VBEsp01

  • VBEsp01*Arquivos Componentes de um ProjetoDe Projeto (.vdp)De Formulrios (.frm)De Mdulos (.bas)De Controles ActiveX (.ocx) De Controles do usurio (.ctl)De pginas de propriedades (.pag)De recursos (.res_)Externos (.exe, .dll e outros)

    VBEsp01

  • VBEsp01*Componentes de um ProjetoArquivos de Projeto contm um ndice dos componentes do ProjetoDocumentos ActiveX so semelhantes a formulrios visualizados por browsersControles do usurio so controles ActiveX criados pelos usurios

    VBEsp01

  • VBEsp01*Componentes de um ProjetoPginas de propriedades so arquivos para gerar interfaces de manipulao dos controles ActiveX gerados pelo usurioArquivos de Recursos armazenam dados referentes a textos, menus, mapas de bits, sons, etc.

    VBEsp01

    **********************************************************************