Programando em - VISUAL BASIC LTP-II / 2°Semestre-2001 •Declarações •Comandos •Procedures/Funções Arquivos Básicos do Projeto Extensão .VBP Tipo de Arquivo Arquivo de Projeto Arquivo de Formulário .FRM .FRX Módulos padrões do Visual Basic .BAS Visual Basic Class Modules .CLS especiais Controles CONTROLS) (CUSTOM .OCX .VBX Descrição O arquivo de projeto não contém fisicamente os arquivos do projeto , mas sim uma lista dos arquivos usados no projeto. Estes arquivos incluem os formulários e os controles contidos nestes formulários e o código a ser executado quando um evento ocorrer no formulário. Estes módulos contém procedures do tipo SUB e Function e podem ser chamadas por qualquer formulário ou controle dentro dos formulários. O módulo padrão é opcional para o aplicativo. Estes módulos contém definições de classes, métodos e propriedades. Os CLASS MODULES são opcionais. Estes controles são fornecidos pela Microsoft em adição aos controles padrões ou por outros desenvolvedores. Eles são adicionados no projeto através da opção Custom Controls Command no menu TOOLS e aparece na caixa de ferramentas presente no seu projeto. Comentários, Mais de um comando por linha, Continuando o comando em outra linha • Linha de comentário - REM • Linha de comando com comentário - (‘) – REM - Calculo da taxa de juros – comissao = venda * 0.015 ´ calculo da comissao sobre a venda • Escrevendo mais de um comando por linha (:) – A=B:X=Y • Continuando o comando em outra linha ( _ ) – X = “Centro Universitário Fumec” & _ A & “Visual Basic” Declaração de Variáveis • Regras para Nomes de Variáveis – O nome da variável deve começar com uma letra – O nome deve ter no máximo 255 caracteres – O conteúdo formado por letras, números e Sublinhado. • Comando DIM – Declara variáveis e aloca espaços de memória. – Dim Variável1 [ AS Tipo ] [, Variável2 [ as Tipo ] ... ] • Exemplos: – Dim Quantidade as Integer, Nome as String Declaração de Variáveis • Comando Static – Usado dentro do procedimento para declarar variáveis e alocar espaços de memória.Com o comando Static os valores das variáveis são retidos durante as vezes em que o procedimento é executado na aplicação. – Static varname[([subscripts])] [As type] [, varname[([subscripts])] [As type]] . . . • Exemplos: – Static Quantidade as Integer, Nome as String Declaração de Variáveis ' Definição da function.. Function KeepTotal(Number) ' Somente a variável Accumulate preserva o seu valor entre as chamadas da função. Static Accumulate Accumulate = Accumulate + Number KeepTotal = Accumulate End Function ' Definição de Static function. Static Function MyFunction(Arg1, Arg2, Arg3) ' Todas as variáveis locais preservam seus valores entre as chamadas da função. Accumulate = Arg1 + Arg2 + Arg3 Half = Accumulate / 2 MyFunction = Half End Function Declaração de Variáveis • Comando Option Explicit – Usado a nível de arquivo para forçar a declaração de todas as variáveis dentro do arquivo (Formulário ou Módulo). Option Explicit ' Força declaração explicita de variavéis Dim MyVar ' Declara variável tipo default variant. MyInt = 10 ' Variável não declarada gerará erro. MyVar = 10 ' Variável não declarada não gerará erro. Tipos de dados Tipo Byte Boolean Integer Long Single Double Currency Date String Tamanho/Dominío 1 byte 0 até 255 2 bytes True ou False 2 bytes -32,768 até 32,767 4 bytes -2,147,483,648 até 2,147,483,647. 4 bytes -3.402823E38 até -1.401298E-45 para valores negativos; 1.401298E-45 até 3.402823E38 para valores positivos. 8 bytes -1.79769313486232E308 a -4.94065645841247E-324 para valores negativos; 4.94065645841247E-324 a 1.79769313486232E308 para valores positivos. 8 bytes -922,337,203,685,477.5808 a 922,337,203,685,477.5807. 8 bytes Janeiro 1, 100 até dezembro 31, 9999 e Hora 0:00:00 a 23:59:59 10 bytes + tamanho da string (0 a aproximadamente 2 milhões) (tamanho variável) String Tamanho da String (1 a aproximadamente 65,400) (tamanho fixo) Variant 16 bytes - Qualquer valor numérico com a faixa de Double. (com números) Variant (com caracteres) 22 bytes + tamanho da string (Mesma faixa da variável String). Variáveis públicas e privadas • Variáveis Private – Só existem no arquivo em que são declaradas • Private Total As Integer • Variáveis Public – Estas variáveis podem ser referenciadas em todos os módulos dentro da aplicação e devem ser declaradas nos arquivos tipo módulo. • Public Total As Integer Constantes • As constantes possui um nome mas o seu conteúdo não pode ser alterado durante a execução do programa. • Const nome_constante1 [ as Tipo ] = valor da constante1 [ , nome_constante2 [ as Tipo ] = valor da constante2 ... ] ' Constante Public Public Const MyString = "HELP” ' Constante Private Private Const MyInt As Integer = 5 ' Constantes são Private por default Const MyVar = 459, MyDouble As Double = 3.4567 Declaração de Vetores / Matrizes • Declaração ' DayArray é um vetor com 51 elementos indexado, de 0 a 50, índice base é 0 (default) Dim DayArray(50) as integer ' Matriz com 2 e 3 dimensões Dim Matrix(3, 4) As Integer Dim MyMatrix(1 To 5, 4 To 9, 3 To 5) As Double Public BirthDay(1 To 10) As Date Dim MyArray() As Integer ' Declarar vetor dinâmico. • Fazer referência a um elemento do vetor DayArray(25) = 35 ‘ Atribuição de valor ao 25° item Declaração de Vetores / Matrizes • Comando Option Base {0 | 1} – Usado no módulo para declarar o valor default do menor índice dos array´s (vetores/matrizes). Option base 1 ' Atribui valor default de 1 para o menor index de array´s. Dim Lower Dim MyArray(20), TwoDArray(3, 4) ' Declaração de array´s. Dim ZeroArray(0 To 5) ' Alterar base default para este vetor. ' Usar a função Lbound para testar o menor índice dos vetores Lower = LBound(MyArray) ' Retorna 1. Lower = LBound(TwoDArray, 2) ' Retorna 1. Lower = LBound(ZeroArray) ' Retorna 0. Redimensionamento de Vetores dinâmicos • Comando ReDim – Usado dentro do procedimento para realocar espaço para vetores dinâmicos. Option Base 1 Dim MyArray() As Integer ' Declarar vetor dinamico. Redim MyArray(5) ' Aloca 5 elementos. For I = 1 To 5 ' Loop 5 vezes. MyArray(I) = I ' Inicializa o vetor. Next I ‘ O bloco abaixo redimensiona o vetor e inicializa o elementos. Redim MyArray(10) ' Redimensiona para 10 elementos. For I = 1 To 10 ' Loop 10 vezes. MyArray(I) = I ' Inicializa o vetor. Next I ‘ O comado abaixo redimensiona o vetor mas preserva os valores. Redim Preserve MyArray(15) ' Redimensiona para 15 elementos. Vetores - A função Array • Array(arglist) – Retorna uma Variant contendo um vetor. Option Base 1 Private Sub Command1_Click() Dim Semana Semana = Array("Domingo", "Segunda", "Terça", _ "Quarta", "Quinta", "Sexta", "Sábado") MsgBox "Dia Corrente: " & Semana(Weekday(Date)) End Sub Declaração de Registros • Usado nos arquivos Módulo para declaração de tipos Registro. [Private | Public] Type NomeTipo NomeItem As type [NomeItem As type] ... End Type Type TEmpregado ' Criar um type. Codigo As Integer ' Definir os itens do data type. Nome As String * 20 Endereco As String * 30 Telefone As Long Data_Admissao As Date End Type Public Reg_Empregado as TEmpregado ‘ Declara variável registro Referência aos Campos do Registro • Qualificação: <Variável_Registro>.<Nome_do_Campo> • Comando With With <Variável_Registro> .<Nome_do_Campo> .<Nome_do_Campo> ...... End With. Exemplo do Comando With num procedimento With Reg_Hospital .NUM_INSC = "" .DV_INSC = "" .RAZAO_SOC = "" .FANTASIA = "" .ENDERECO = "" .BAIRRO = "" .CIDADE = "" .UF = "" .CEP = "" .Telefone = "" .CGC = "” End With With facilitando a referencia de propriedades dos objetos With Form1 .Height = 100 ' Mesmo que Form1.Height = 100. .Caption = "Hello World" ' Mesmo que Form1.Caption = "Hello World” . With .Font .Font .Color = Red ' Mesmo que Form1.Font.Color = Red. .Bold = True ' Mesmo que Form1.Font.Bold = True. End With End With Expressões e Operadores • Aritméticos ( em ordem de prioridade) ^ *,/ \ mod +,- Exponenciação ( potência ). Inversão de sinal Multiplicação e divisão. Divisão inteira Resto da divisão ex: (A mod B) = 0 Adição e subtração. Expressões e Operadores • Relacionais: < menor que. > maior que. = igualdade. <> diferente. <= menor igual. >= maior igual. Expressões e Operadores • Lógicos ( em ordem de prioridade ) : not negação. and e or ou Xor ou exclusivo ( uma das relações verdadeiras ) Eqv equivalência ( as duas relações c/ mesmo resultado) Expressões e Operadores • Strings: + concatenação de strings. & concatenação de strings e conversão de parcelas para string se necessário. – Exemplo: MsgBox "Teste " & Date & " - " & 10 Expressões e Operadores • Datas: + Calcula a soma de uma data com um número de dias e retorna uma data. - Calcula a diferença em dias de duas datas e retorna a diferença em dias, ou a diferença de uma data com um número de dias retornando uma data. – Exemplo: MsgBox "Data Final: " & Format(#1/18/2001# + 10, "dd/mm/yyyy") Expressões e Operadores • Horas: + Calcula a soma de duas horas e retorna uma hora. - Calcula a diferença em dias de duas horas e retorna a diferença em horas. – Exemplo: MsgBox Format(#10:00:15 AM# - #10:00:10 AM#, "hh:mm:ss") Atribuição de Valores • [ LET ] Nome_da_variável = Expressão – Exemplo: Total = 0 soma = soma + 1 depto = “ “ Alternativa IF-ENDIF If condição Then [comandos] [ElseIf condição-1 Then [comandos]] . . . [ElseIf condição-2 Then [comandos]] . . . [ElseIf condição-n Then [comandos]] . . . [Else [comandos]] End If Alternativa If-End If - Exemplo IF a >= 0 Then x=x+1 b=a End IF IF X+Y <= 0 Then X=0 ELSEIF Y > 0 Then Y=0 ELSE X=0 Y=0 End IF Múltipla escolha - CASE Select Case expressão [Case expressão - n [comandos - n]] . . . [Case Else [comandos - n ]] End Select Múltipla escolha - CASE - Exemplo Number = 8 ' Inicializa variável. Select Case Number ' Avalia Number. Case 1 To 5 ' Number entre 1 e 5. MsgBox("Entre 1 e 5") Case 6, 7, 8 ' Number entre 6 e 8. MsgBox("Entre 6 e 8") Case Is > 8 And Number < 11 ' Number é 9 ou 10 MsgBox("Maior que 8 e Menor que 11") Case Else ' Outros valores. MsgBox("Não está entre 1 e 10") End Select Repetição - DO WHILE | UNTIL Do [ {While | Until} condição ] [comandos] [Exit Do] [comandos] Loop Repetição - DO WHILE | UNTIL Do [comandos] [Exit Do] [comandos] Loop [ {While | Until} condição ] Repetição - DO WHILE | UNTIL Check = True: Counter = 0 ' Inicializa variáveis. Do ' loop externo. Do While Counter < 20 ' loop interno. Counter = Counter + 1 If Counter = 10 Then Check = False Exit Do End If Loop Loop Until Check = False ' Incrementa Counter. ' Se condição é verdadeira ' Set valor do flag para False. ' Saida do loop interno ' Saida do loop externo. Repetição -While...Wend While <Expressão Lógica> [comando] [comando] [comando ...] Wend Repetição -While...Wend Counter = 0 ' Inicializa variável While Counter < 20 ' Testa valor do Counter. Counter = Counter + 1 ' Incrementa Counter. Wend ' Saida do repetição While quando Counter > 19. MsgBox(Counter) ' Mostra 20 na Caixa de Mensagem. Repetição -For...Next For var = inicio To fim [ Step inc ] [comandos] [Exit For] [comandos] Next [variável] Repetição -For...Next For Words = 10 To 1 Step -1 ' Controlar até 10 repetições. For Chars = 0 To 9 ' Controlar até 10 repetições. MyString = MyString & Chars ' Incluir numero na string. Next Chars ' Incrementar contador MyString = MyString & “ “ ‘ incluir um espaço na string. Next Words