Baixe o app para aproveitar ainda mais
Prévia do material em texto
Fundamentos do Visual Basic índice i Introdução ao Visual Basic 4 Autor: ALONCIO DE CARVALHO SANTOS Fundamentos do Visual Basic índice ii Apresentação _______________________________________1 O que é o Visual Basic ? ___________________________1 Vantagens do Visual Basic _________________________1 Edições do Visual Basic ___________________________2 Objetivos do Curso _______________________________2 Introdução _________________________________________3 Ambiente de Trabalho do Visual Basic________________3 Terminologia do Visual Basic_______________________5 Projetos e Executáveis do Visual Basic _______________6 Passos para a criação de uma aplicação em VB _________6 Técnicas de Programação __________________________7 Fundamentos _______________________________________8 Objetos ________________________________________8 Nomeando Objetos _______________________________9 Propriedades ___________________________________10 Métodos ______________________________________11 Eventos _______________________________________12 Controles Básicos _______________________________13 Manipulando Código e Formulários ___________________17 Trabalhando com Código _________________________17 Trabalhando com Formulários _____________________22 Exibindo e Escondendo Formulários ________________22 Formulários Modal ______________________________23 Configurando o Startup Form ______________________23 Encerrando sua Aplicação_________________________24 Índice V I S U A L B A S I C Fundamentos do Visual Basic índice iii Variáveis _________________________________________26 O que é uma Variável? ___________________________26 Tipos de Variáveis do Visual Basic _________________26 Nomeando Variáveis_____________________________27 Declaração_____________________________________28 Conversões ____________________________________31 Manipulando Strings_____________________________32 Manipulando Datas ______________________________32 Procedures ________________________________________35 Procedures_____________________________________35 Procedures de Evento ____________________________35 General Declarations_____________________________35 Sub Procedures _________________________________35 Function Procedures _____________________________36 Passagem de Parâmetros __________________________36 Controlando a Execução_____________________________38 Estruturas de Seleção ____________________________38 Estrutura de Repetição ___________________________40 Depuração de Aplicativos____________________________45 Tipos de Erros __________________________________45 Ferramentas de Depuração ________________________45 Break Mode____________________________________46 Debug Window _________________________________46 Índice V I S U A L B A S I C Fundamentos do Visual Basic índice iv Controles _________________________________________48 Controles Padrões _______________________________48 Custom Controls ________________________________50 Controles de Arquivos ___________________________51 CommonDialog_________________________________52 Indexando Controles _____________________________53 Projetando Menus _______________________________54 Acessando Banco de Dados __________________________57 Conceitos Básicos _______________________________57 Acessando Dados com o Visual Basic _______________57 Trabalhando com o Data Control ___________________58 RecordSet _____________________________________59 Usando SQL ___________________________________60 Data Form Designer _____________________________61 Manipulando Registros ___________________________61 Detalhes Finais ____________________________________65 Projetando sua Interface __________________________65 Desenvolvimento em 16 e 32 Bits __________________66 Distribuindo seus Aplicativos______________________66 Glossário _________________________________________68 Índice V I S U A L B A S I C Fundamentos do Visual Basic Aloncio de C. Santos página 1 1 APRESENTAÇÃO Veremos neste capítulo: 4 o que é Visual Basic 4 conhecer as edições do Visual Basic 4 objetivos do Curso O QUE É O VISUAL BASIC ? O Visual Basic é uma linguagem de programação, que permite a criação de aplicativos para o ambiente Windows. Através de ferramentas gráficas você desenha seu aplicativo, atribui suas características e gera seu código de maneira rápida e eficiente. Trata-se de uma das mais utilizadas ferramentas de programação utilizadas atualmente. VANTAGENS DO VISUAL BASIC Microsoft Visual Basic é a maneira mais rápida e fácil de se criar aplicações poderosas e com recursos que exploram todas as possibilidades da interface gráfica do Windows. Dentre as vantagens oferecidas pelo VB podemos destacar: • Ambiente de desenvolvimento que possibilita a criação de aplicativos de maneira rápida, oferecendo diversas ferramentas de depuração. • Capacidade de programação para múltiplas plataformas, gerando aplicativos de 16 bits para o Windows 3.1 ou aplicativos 32 bits para o Windows 95 e Windows NT. • Extensibilidade da linguagem, permitindo o acréscimo de controles personalizados para ampliar seus recursos. • Linguagem de programação derivada do BASIC, comum aos aplicativos do Microsoft Office (VBA - Visual Basic for Application), permitindo a integração de suas funcionalidades através da Automação OLE. Fundamentos do Visual Basic Aloncio de C. Santos página 2 EDIÇÕES DO VISUAL BASIC O Visual Basic pode ser adquirido em três edições: • Standard Edition Edição padrão com Ambiente de trabalho em 32 bits e com controles padrões • Professional Edition Edição com ambiente de trabalho para gerar aplicativos 16 e 32 bits, acrescida de controles personalizados e completa documentação on-line • Enterprise Edition Edição voltada para grupos de desenvolvimento corporativo, possuindo alguns controles persona- lizados adicionais e serviços remotos OBJETIVOS DO CURSO O Curso Fundamentos do Visual Basic tem por objetivos básicos: • Manipular o ambiente de desenvolvimento. • Conhecer conceitos de orientação à evento, propriedades e métodos. • Conhecer os conceitos básicos de programação no VB como: declaração e escopo de variáveis, subrotinas, funções, estruturas de controle. • Desenvolver e depurar aplicações simples, usar controles padrões. O Curso de Fundamentos do Visual Basic exige, como pré- requisito, o conhecimento básico de Lógica de Programação (variáveis, estruturas de controle, algoritmos estruturados) sendo recomendável, portanto, noções em alguma linguagem de programação. Questões 1. Porque utilizar o Visual Basic como linguagem de programação ? Para quais plataformas podemos desenvolver nossos aplicativos com o Visual Basic ? 2. Se eu desejo desenvolver aplicativos para serem executados no Windows 3.1, qual edição do Visual Basic devo adquirir? Fundamentos do Visual Basic Aloncio de C. Santos página 3 2 INTRODUÇÃO Neste capítulo você vai aprender: 4 o Ambiente de Trabalho do Visual Basic 4 terminologia do Visual Basic 4 projetos e executáveis do Visual Basic 4 passos para a criação de uma aplicação 4 programação Orientada a Eventos versus programação Procedural AMBIENTE DE TRABALHO DO VISUAL BASIC Exibimos abaixo o Ambiente de Trabalho do Visual Basic: Ambiente de Trabalho do VB Barra de Ferramentas Janela de Projeto Caixa de Ferramentas Janela de Propriedades FormulárioFundamentos do Visual Basic Aloncio de C. Santos página 4 O Ambiente de Trabalho do Visual Basic consiste dos seguintes elementos: Toolbox (caixa de ferramentas) A Toolbox contém todos os objetos e controles que você pode utilizar na criação de sua aplicação. Você pode adicionar objetos a sua Toolbox utilizando a Opção “Custom Controls” no menu “Tools”. Form (formulário) O formulário serve como uma janela que você pode configurar a interface para a sua aplicação. Project Window (janela de projeto) A janela de projeto contém um lista com todos os itens que compõem a sua aplicação, formulários, módulos de código e resource files. A janela de projeto é discutida mais tarde neste capítulo. Properties Window (janela de propriedades) A janela de propriedades lista as propriedades de um ou mais objetos selecionados (controles ou formulários), estas propriedades podem ser alteradas quando o formulário o controle é criado. Code Window (janela de código) A janela de código é aonde o código do o seu projeto pode ser exibido ou editado. Toolbar (barra de ferramentas) A barra de ferramentas facilita o trabalho, contendo botões que servem de atalhos para os comandos mais comuns no desenvolvimento de projetos. Quando você inicia o Visual Basic, um projeto default (padrão) é criado com um formulário genérico denominado Form1. A Caixa de Ferramentas exibirá as ferramentas (controles) padrão. Caso não estejam sendo mostrados alguns destes elementos, você pode exibi-los, através do menu View escolhendo o elemento desejado (Project, Properties, Toolbox, etc) Fundamentos do Visual Basic Aloncio de C. Santos página 5 TERMINOLOGIA DO VISUAL BASIC Existem alguns termos que usaremos constantemente no ambiente do VB: Design time (projeto) Design time é definido como qualquer momento que você esteja construindo ou dando manutenção na sua aplicação Run time (execução) Run time é quando a sua aplicação está sendo executada. É importante saber diferenciar este dois termos pois certas propriedades só podem ser alteradas em Design time, enquanto outras só podem ser feitas em Run time Forms (formulários) Servem como janelas para o desenvolvimento da sua aplicação Controls (controles) São representações gráficas de objetos tais como botões de comando, caixas de edição onde o Usuário pode interagir com a aplicação Properties (propriedades) São características, valores que um objeto possui, tais como Caption, Colors... Methods (métodos) São ações que podem ser feitas no objeto, como exibir ou não um formulário Events (eventos) São as ações reconhecidas pelo seu aplicativo, que podem ser efetuadas pelo Usuário, por seu programa ou pelo próprio Sistema Operacional Como usaremos a versão do Visual Basic em inglês (pois este não possui versão em língua portuguesa), diversos termos serão mencionados como no software e outros serão citados na apostila já traduzidos, quando isto for apropriado. Noções de Inglês são úteis ao trabalhar com o Visual Basic, uma vez que seus menus, mensagens e principalmente sua Ajuda é toda exibida em inglês. Fundamentos do Visual Basic Aloncio de C. Santos página 6 PROJETOS E EXECUTÁVEIS DO VISUAL BASIC Os arquivos de projetos do Visual Basic tem a extensão .VBP e contém informações sobre os itens que são utilizados numa determinada aplicação. Projetos podem ser compostos pelos seguintes arquivos: Tipo de arquivo Extensão Descrição Forms (formulários) .FRM .FRX Representam os Formulários. Incluem o formulário, objetos / controles e código contido no formulário. Standards Modules (módulos) .BAS Contém procedimentos SUB e FUNCTION que podem ser chamados de objetos ou formulários. Custom Controls (controles personalizados) .VBX .OCX Controles personalizados, que servem como uma extensão da funcionalidade do Visual Basic, agregando novos recursos Class Modules (classes) .CLS Módulos que contém definições de classes, com seus métodos e propriedades. Resource Files (arquivos de recursos) .RES Arquivos que contém informações binárias que podem ser utilizadas pela aplicação. PASSOS PARA A CRIAÇÃO DE UMA APLICAÇÃO EM VB 1. Criar a interface com o usuário 2. Definir as propriedades dos objetos da interface 3. Escrever os código para os eventos 4. Salvar o projeto 5. Testar e depurar a aplicação 6. Gerar um arquivo executável 7. Criar o programa de instalação (setup) Fundamentos do Visual Basic Aloncio de C. Santos página 7 TÉCNICAS DE PROGRAMAÇÃO A Programação Orientada a Evento trouxe um novo estilo de programação, novos conceitos, voltados para a criação de interfaces gráficas cuja interação com as ações do Usuário é o fator chave de sucesso para seu aplicativo. Para começarmos a compreender estes novos conceitos, vamos comparar o estilo de programação procedural (que estamos habituados a trabalhar em linguagens como Pascal, Clipper, etc) com a orientação a evento. PROGRAMAÇÃO PROCEDURAL Na programação procedural, o programador controla as ações de forma linear, perguntando ao usuário por informações em seqüência. Por exemplo, um programa pergunta ao usuário que tipo de relatório ele deseja. Quando o tipo de Relatório é escolhido, o programa verifica que um período de datas é necessário, então ele pergunta ao usuário as datas e assim por diante. Na programação procedural geralmente é um programa grande que chama rotinas quando necessário. PROGRAMAÇÃO ORIENTADA A EVENTOS Programação Orientada a Eventos capacita o sistema a responder ao usuário. O usuário tem o controle de decidir quando e onde fazer alguma coisa, e pode entrar com informações e selecionar opções em qualquer ordem. Um programa orientado a eventos, como um criado com o Visual Basic, é tipicamente feito de pequenos blocos de código (ou procedures) que executam tarefas discretas. A maior parte destas procedures são procedure de evento, e são invocadas quando o usuário faz alguma ação. Questões 1. O que são Properties? E o que são Methods? 2. Diferencie Programação Procedural de Programação Orientada a Evento. Fundamentos do Visual Basic Aloncio de C. Santos página 8 3 FUNDAMENTOS Neste capítulo você vai aprender: 4 objetos e sua nomenclatura 4 o que são Propriedades e Métodos 4 visão geral de Eventos 4 controles básicos (forms, labels, text boxes, commandbuttons OBJETOS No Visual Basic um objeto é algo que você controla. Um objeto pode ser um formulário em sua aplicação, qualquer controle (caixa de texto, botão de comando, imagem, etc) e até mesmo classes de objetos. Para controlar um objeto usamos suas Propriedades (características) e seus Métodos (ações que podem ser exercidas pelos objeto). Para compreender melhor os conceitos de Objeto, Propriedades e Métodos, vamos exemplificá-los através de uma comparação: Um rádio seria um Objeto. Este rádio possuiria Propriedades como tamanho, cor, nome. Os Métodos seriam as ações a serem tomadas, como aumentar volume, mudar de estação, desligar. Cada objeto possui seus próprios Eventos, Propriedades e Métodos, sendo alguns destes comuns a diversos objetos. Como o Visual Basic possui um ambiente gráfico de desenvolvimento, para criarmos controles em um formulário basta selecionar o controle desejado na Caixa de Ferramentas e desenhá-lo no formulário (arrastando com o mouse). Para selecionar um controle, selecione a ferramenta Ponteiro do Mouse e clique no controle desejado ou arraste em sua área. Você pode selecionar vários controles ao mesmo tempo, para movê-los ou exclui-los.Fundamentos do Visual Basic Aloncio de C. Santos página 9 NOMEANDO OBJETOS Por padrão, os controles no VB tem o nome definido como, por exemplo, Form1, Command3, Label2. Para deixar seu código mais fácil de se entender, você deve alterar a propriedade Name de cada controle em Design time para um nome que seja mais adequado a função do controle. Sugerimos a utilização da convenção de nomes de objetos descrita na tabela a seguir: Objeto Prefixo Exemplo Check box chk chkEntregue Combo box cbo cboNatural Command button cmd cmdCancelar Data dat datFunc Directory list box dir dirOrigem Drive list box drv drvPadrao File list box fil filOrigem Form frm frmPrincipal Frame fra fraConfig Grid grd grdProducts Horizontal scroll bar hsb hsbVolume Image img imgLogo Label lbl lblNomeCompleto Line lin linDetalhe List box lst lstUnidadeFederativa Menu mnu mnuArquivoFechar OLE ole oleQuadro Option button opt optSexo Picture box pic picMapaRegional Shape shp shpCircular Text box txt txtNome Timer tmr tmrAlarme Vertical scroll bar vsb vsbIndice Fundamentos do Visual Basic Aloncio de C. Santos página 10 PROPRIEDADES Propriedades são características, valores de um determinado Objeto, tais como: Name, Text, Caption, BorderStyle, Visible, as quais trocam a identificação e a aparência do controle. Você pode alterar propriedades em design time ou em run time. Para exibir as propriedades de um objeto, selecione-o e pressione a tecla F4 ou no menu View escolha a opção Properties. Será então exibida a Janela Properties. Para alterar uma propriedade em design time, nós utilizamos a janela Properties. Em run time para alterarmos uma propriedade nós temos que utilizar a programação para alterar a propriedade como no exemplo abaixo: Sintaxe: Objeto.Propriedade = Valor Exemplo: Sub Command1_Click() Label1.Caption = “Teste” End Sub Você pode também obter o valor de uma propriedade, atribuindo tal valor a uma variável em run time. Sintaxe: Variável = Objeto.Propriedade Exemplo: ´ atribui o conteúdo do controle txtNome a uma variável strNomeCliente = txtNome.Text Algumas propriedades podem ser alteradas somente em design time e outras são apenas para leitura em run time. Fundamentos do Visual Basic Aloncio de C. Santos página 11 MÉTODOS Métodos fazem um objeto executar uma ação ou tarefa. Métodos como Move e SetFocus fazem, respectivamente, um objeto ser movido ou receber o foco no controle. Métodos podem possuir argumentos e também podem retornar valor. Por isso, teremos duas sintaxes: Sintaxe: Objeto.Método [Arg1, Arg2 ,...] ou Variável = Objeto.Método([Arg1, Arg2 ,...]) onde os colchetes [ ] indicam argumentos opcionais e no caso de um método retornar valor, seus argumentos deverão ser colocados entre parêntese ( ). Exemplos: ‘ move um formulário para as coordenadas iniciais da tela frmStartUp.Move 0, 0 ‘ posiciona o foco na caixa de texto txtMatricula txtMatricula.SetFocus Fundamentos do Visual Basic Aloncio de C. Santos página 12 EVENTOS Eventos são ações reconhecidas por formulários ou controles. Eventos podem ocorrer quando o usuário toma alguma ação (por exemplo, clicar em um botão), ou através de comandos em seu programa ou ainda pelo próprio Sistema Operacional. Você escreve o código do evento (Procedure de Evento) que só vai ser executado quando o evento ocorrer. Virtualmente, quase todas as ações possíveis estão associadas com um evento do Visual Basic, dando a você o controle total sobre como a sua aplicação vai responder a ação. Aqui estão alguns exemplos de eventos dos controles do Visual Basic: Evento Descrição Change Indica que o conteúdo de um controle mudou, como o evento ocorre varia de acordo com o tipo de controle Click Indica que o mouse foi pressionado sobre um controle DblClick Indica que o usuário pressionou o mouse duas vezes no controle GotFocus Ocorre quando o controle recebe o foco LostFocus Ocorre quando o controle perde o foco Load Ocorre quando o formulário é carregado na memória Unload Ocorre quando o formulário é descarregado da memória KeyDown Indica quando uma tecla foi pressionada e não foi solta KeyUp Indica quando uma tecla foi liberada MouseDown Indica que um botão do mouse foi pressionado MouseUp Indica que um botão do mouse foi liberado MouseMove Ocorre quando o mouse se movimenta sobre um controle Cada objeto no Visual Basic tem seus próprios eventos. Os eventos acima listados não se aplicam a todos os objetos. Explorar os Eventos disponíveis para cada objeto é parte importante no aprendizado do Visual Basic. Fundamentos do Visual Basic Aloncio de C. Santos página 13 CONTROLES BÁSICOS FORMS Forms (formulários) são objetos muito importantes em sua aplicação, pois toda interface com o Usuário será construída sobre eles. Os principais eventos, propriedades e métodos de um formulário são: Propriedades Name, Caption, BackColor, BorderStyle, Enabled, ControlBox, MaxButton, MinButton, WindowState; Eventos Click, DblClick, Load, Unload, MouseMove, Activate, Deactivate, DragOver, DragDrop; Métodos Show, Hide, Move, SetFocus, Refresh, Print Quando um formulário é carregado, é gerado um evento Load. Dentro deste evento podemos efetuar ações, como centralizar na tela um formulário ao ser carregado: Private Sub Form_Load() ´Centraliza o formulário na tela Form1.Top = (Screen.Height - Height) / 2 Form1.Left = (Screen.Width - Width) / 2 End Sub LABEL As Labels (Etiquetas) são textos que não podem ser alterados pelo Usuário, como etiquetas indicando a finalidade de uma textbox, mas podem ser alterados via programação. As Labels são normalmente utilizadas para exibir um nome de um campo que o usuário deve preencher. Para se criar um atalho para um campo, no estilo ALT + Letra sublinhada, devemos colocar um & (e comercial) antes da letra desejada na propriedade Caption. Fundamentos do Visual Basic Aloncio de C. Santos página 14 TEXTBOX O controle Textbox (caixa de texto) é utilizado para obter informações do usuário ou para exibir informações fornecidas pela aplicação. (Note que as informações exibidas com a Textbox podem ser alteradas pelo usuário, o que não pode ser feito nas Labels, que só podem ser alteradas por código) Para maiores informações sobre propriedades, métodos e eventos de qualquer controle, consulte o Help do VB. COMMANDBUTTON Um CommandButton (botão de comando) executa uma ação quando o usuário clica no botão. É o principal elemento usado para que o Usuário execute uma ação. Questões 1. Cite 4 exemplos de Objetos no Visual Basic. 2. Defina o que é um evento? Cite 4 Eventos. 3. Por que devemos utilizar uma nomenclatura padronizada para objetos, variáveis, etc? 4. Como posso alterar em Design Time e em Run Time o texto exibido em uma textbox e em um label ? Exercíci o 1 1. Criar um programa em Visual Basic com o seguinte formulário Fundamentos do Visual Basic Aloncio de C. Santos página 15 Exercíci o 1 (continuação) 2. Crie os controles necessários e defina as seguintes propriedades Formulário: Caption = Login Name = frmLogin Label de Titulo Caption = Entre com seu nome e sua senha Name = lblTitulo Label Nome Caption = Nome: Name = lblNome Caixa de Texto Nome Text = “” (em branco) Name = txtNome Label Senha Caption = Senha: Name = lblSenha Caixa de Texto Senha Text = “” (em branco) Name = txtSenha PasswordChar = * (asterisco) (continua) Fundamentos do Visual Basic Aloncio de C. Santospágina 16 Exercíci o 1 (continuação) Botão OK Name = cmdOk Caption = &OK Default = True Botão Cancelar Name = cmdCancelar Caption = &Cancelar Cancel = True 3. Pressione o botão direito do mouse sobre o Botão OK, no menu de contexto escolha a opção View Code e digite o seguinte código: MsgBox “Seu nome ” & txtNome.Text & _ “ sua senha ” & txtSenha.Text 4. Pressione o botão direito do mouse sobre o Botão Cancelar, no menu de contexto escolha a opção View Code e digite o seguinte código: End 5. Salve o projeto com as seguintes definições: • Diretório de trabalho: C:\VB40FUND\CAP03 • Nome do Formulário: frmLogin.frm • Nome do projeto: Login 6. Execute o programa pressionando a tecla F5 ou no menu Run escolha a opção Start. Fundamentos do Visual Basic Aloncio de C. Santos página 17 4 MANIPULANDO CÓDIGO E FORMULÁRIOS Neste capítulo você vai aprender: 4 trabalhar com código 4 enviar mensagens e obter dados 4 trabalhar com formulários 4 terminar uma aplicação em Visual Basic TRABALHANDO COM CÓDIGO PROCEDURES DE EVENTO Procedures de Evento (event procedures) são procedimentos acionados a partir de um evento (como um clique do mouse, pressionamento de uma tecla, a exibição de um formulário, etc). Ao criarmos um objeto/controle são disponibilizadas as procedures de evento relativas a tal objeto. Para codificar uma procedure de evento siga os seguintes passos: 1. Desenhe o controle desejado. 2. Com o ponteiro do mouse dê um duplo clique no controle. Será exibida a Janela de Código (que será detalhada na próxima página). 3. Escolha, para o controle escolhido, o evento apropriado. 4. Escreva o código de sua procedure de evento. Exemplo: Private Sub Form_MouseMove(Button As Integer, _ Shift As Integer, X As Single, Y As Single) LblX.Caption = X ‘ exibe coordenada X LblY = Y ‘ exibe coordenada Y End Sub No exemplo anterior, ao omitirmos a propriedade Caption na coordenada Y, o Visual Basic assume uma propriedade padrão para cada controle, que no caso da label é a Caption. Fundamentos do Visual Basic Aloncio de C. Santos página 18 JANELA DE CÓDIGO A janela de código é utilizada para escrever, exibir e editar código em VB. Você pode abrir uma janela de código para cada módulo em sua aplicação. A janela de código inclui: Object Box Exibe o nome do objeto selecionado, permitindo a seleção de qualquer objeto associado com o form. Procedure Box Exibe todos os eventos associados com o objeto selecionado. Quando você seleciona um evento, uma procedure de evento correspondente é exibida na Code Window. Split Bar A split bar é localizada abaixo da barra de titulo no topo da barra de rolagem vertical. Arrastando a barra para baixo, dividi-se a janela de código em duas partes MÓDULOS DE CÓDIGO Os módulos de código podem conter código que é comum a vários formulários na sua aplicação. O código é Público por padrão, o que quer dizer que ele é compartilhado por todos outros itens do seu projeto. Módulos de código não podem conter Procedures de Evento pois eles não tem objetos. Os módulos de código são armazenados como arquivos de extensão .BAS. EDITANDO CÓDIGO Os principais recursos de edição de texto do ambiente Windows estão disponíveis na janela de código, tais como seleção, utilização Área de Transferência e outros. Para aumentar a legibilidade do código, devemos usar alguns recursos de programação que são simples, porém eficientes. Ao escrevermos um programa, devemos ter em mente que este deverá ser o mais claro e bem documentado possível, facilitando desta forma também sua manutenção. Fundamentos do Visual Basic Aloncio de C. Santos página 19 A Identação de Código serve para fazer uma separação visual das estruturas lógicas de seu programa. Para identar utilize a tecla TAB. Private Sub AnalisaValor(Valor) If Valor = 0 Then Msgbox “Valor igual a Zero” ElseIf Valor < 0 Then Msgbox “Valor Negativo” Else MsgBox “Valor Positivo” Endif End Sub Os Comentários servem para facilitar a vida do programador documentando o seu código. Os comentários são precedidos por uma Aspas Simples (‘) ou um comando REM. Veja o exemplo anterior acrescido de comentários. ‘Procedimento para testar um valor e exibir uma Mensagem Private Sub AnalisaValor(Valor) If Valor = 0 Then ‘ Se o valor for Zero então Msgbox “Valor igual a Zero” ‘Exibe mensagem ElseIf Valor < 0 Then ‘Se o valor for menor que zero Msgbox “Valor Negativo” Else ‘ Senão Valor maior que zero MsgBox “Valor Positivo” Endif End Sub ‘Fim do procedimento AnalisaValor O caracter de continuação de linha é o sublinhado (_) que permite que uma linha de código possa ser dividida em várias partes para melhor exibição na tela. Veja o exemplo: iResposta = MsgBox(“Deseja continuar operação”, _ vbExclamation + vbYesNo, “Sistema”) Fundamentos do Visual Basic Aloncio de C. Santos página 20 ENVIANDO MENSAGENS (FUNÇÃO MSGBOX) A função MsgBox permite o envio, através de caixas de diálogo, de mensagens para o Usuário, na qual este interage com seu aplicativo através da escolha (clique) em um botão de comando. Sintaxe: Variável = MsgBox (mensagem[, botões][, título]) • mensagem é o texto da sua mensagem. • botões são os botões/ícones que serão exibidos na caixa de diálogo, definidos através de constantes do VB. • título é o título que será exibido na caixa de diálogo. Constante VB Valor Exibe Botões vbOKOnly 0 OK vbOKCancel 1 OK e Cancelar vbAbortRetryIgnore 2 Abortar, Repetir e Ignorar vbYesNoCancel 3 Sim, Não e Cancelar vbYesNo 4 Sim e Não vbRetryCancel 5 Repetir e Cancelar Ao executarmos a função MsgBox, esta irá retornar um valor correspondente ao botão de comando clicado, segundo as constantes: Botão Constante Botão Constante OK vbOK Cancelar vbCancel Abortar vbAbort Repetir vbRetry Ignorar vbIgnore Sim vbYes Não vbNo Fundamentos do Visual Basic Aloncio de C. Santos página 21 Para maiores informações, consulte no Help do Visual Basic a função MsgBox. Exemplo Sub cmdOk_Click() Dim botoes, resposta As Integer botoes = vbYesNo + VbExclamation + vbDefaultButton2 resposta = MsgBox(“Deseja continuar operação”, _ botoes, “Sistema”) If Resposta = vbYes Then ‘ Ação se o usuário clicou no botão Sim ‘ Comandos Else ‘ Ação se o usuário clicou no botão Não ‘ Comandos End If End Sub SOLICITANDO DADOS (FUNÇÃO INPUTBOX) A função InputBox solicita que o Usuário digite uma informação, como por exemplo um nome ou um valor. Sintaxe: Variável = InputBox(mensagem[, título][, default]) • mensagem é o texto da sua mensagem. • título é o título que será exibido na caixa de diálogo. • default é o valor padrão que será exibido como sugestão. Exemplo strNacional = InputBox(“Digite sua Nacionalidade”, _ “Nacionalidade”, “brasileira”) Fundamentos do Visual Basic Aloncio de C. Santos página 22 TRABALHANDO COM FORMULÁRIOS Os formulários são um dos principais blocos de construção de uma aplicação em Visual Basic. Os usuários podem interagir no seu formulário para obter resultados. Métodos, propriedades e eventos comumente tratados que os formulários possuem: Propriedade ActiveControl, BackColor, BorderStyle, Caption, ControlBox, Enabled, Icon, Left, MaxButton, MinButton, Name, Top, WindowState Método Hide, Move, Paint, PrintForm, Refresh, SetFocus, Show Eventos Activate, Click, DblClick, Deactivate, DragDrop, DragOver, GotFocus, Load, LostFocus, MouseDown, MouseMove, UnloadPara maiores informações sobre o objeto Form, veja na ajuda “Form Object”. EXIBINDO E ESCONDENDO FORMULÁRIOS A maioria das aplicações é composta por diversos formulários. O formulário definido como Startup form é automaticamente carregado quando a sua aplicação é iniciada, mas durante a execução de seu aplicativo, outros formulários devem ser exibidos e escondidos. O método ou a função usada para exibir ou ocultar um formulário depende do que você deseja fazer: Tarefa Método ou função Carregar um formulário na memória, mas não exibi-lo Use o comando LOAD, ou faça uma referencia ou a uma propriedade ou controle no formulário Carregar e exibir um formulário Use o método SHOW Exibir um formulário carregado Use o método SHOW Esconder um formulário Use o método HIDE Esconder um formulário e descarrega-lo da memória Use o comando UNLOAD Fundamentos do Visual Basic Aloncio de C. Santos página 23 Exemplo: ‘Procedimento de inicialização do programa Sub Main() Load frmPrincipal ‘Carrega para a memória o _ Formulário principal Load frmCadastro ‘Carrega para a memória o _ Formulário de cadastro ‘Define que o formulário será exibido maximizado frmPrincipal.WindowState = vbMaximized frmPrincipal.Show ‘Exibe o formulário End Sub ‘ Fim do procedimento FORMULÁRIOS MODAL Um formulário Modal não deixa que o usuário passe de um formulário para outro na mesma aplicação. A maioria das caixas de dialogo no Visual Basic são modais. Quando um formulário modal é exibido, a aplicação gera um beep caso o usuário clique fora do formulário modal. Um formulário modeless (que é o padrão do VB ao usar o método Show) permite ao usuário passar de um formulário para outro. Exemplos de formulário modeless no Ambiente de Desenvolvimento do Visual Basic são as janelas Project, Properties, Code e Formulários. Private Sub cmdSobre_Click() frmSobre.Show vbModal ‘ exibe o formulário como modal End Sub CONFIGURANDO O STARTUP FORM Por padrão o Visual Basic carrega o primeiro formulário criado no seu projeto quando a aplicação é executada. Entretanto, você pode especificar qualquer outro formulário ou uma procedure, chamada Main, para iniciar o seu programa. Para definir qual o Startup Form, siga os seguintes passos: 1. No menu Tools, escolha Options e selecione a guia Project 2. Selecione a partir da lista em startup form o formulário desejado Fundamentos do Visual Basic Aloncio de C. Santos página 24 ENCERRANDO SUA APLICAÇÃO Como programadores nós podemos encerrar a execução da aplicação a qualquer momento de duas formas, a primeira usando o comand END. Este comando termina a execução da sua aplicação e descarrega todos os formulários. A outra maneira seria usar o comando UNLOAD, neste caso a sua aplicação deve ter apenas um formulário carregado na memória. Sub cmdSair_click() End ‘ Encerra a execução do aplicativo End Sub Quando o usuário escolhe uma opção que descarregue um formulário, para este formulário é gerado um evento UNLOAD(cancel as integer) onde nós podemos tratar o evento e podemos cancelar tal evento, perguntando se o usuário deseja realmente fechar o formulário. Veja o exemplo a seguir: Sub Form_Unload(Cancel as Integer) If MsgBox(“Deseja fechar este formulário?”,_ vbYesNo,”Fechar”) = vbNo Then Cancel = True End if End Sub Questões 1. O que é uma Procedure de Evento? Por que uma procedure de evento não pode estar contida em um módulo standard? 2. Comente sobre as características da função MsgBox. 3. Quando usar o comando LOAD e o método SHOW para exibir formulários? 4. Quando devemos usar um formulário Modal? Fundamentos do Visual Basic Aloncio de C. Santos página 25 Exercíci o 2 1. Abra, na pasta C:\VB4FUND\CAP04, o projeto Saldo.vbp 2. Insira e construa o formulário abaixo, usando as convenções de nomenclatura de objetos estabelecida 3. Para o botão Calcular Saldo, crie um código que exiba em uma caixa de mensagem a diferença entre a receita e a despesa. 4. Para o botão Limpar Valores, crie um código que apague o conteúdo das caixas de texto receita e despesa. 5. Para o botão Sair, crie um código que encerre o programa. 6. Crie um novo formulário, como Caption = Sobre, no qual exiba seu nome e contenha um botão OK, que o descarregue da memória. 7. Para o botão Sobre, exiba o formulário Sobre, criado no item anterior, de maneira Modal. 8. Salve os formulários criados e também seu projeto Saldo.vbp. Fundamentos do Visual Basic Aloncio de C. Santos página 26 5 VARIÁVEIS Neste capítulo você vai aprender: 4 o que é uma variável e quais seus tipos 4 nomenclatura de variáveis que adotaremos 4 declaração e escopo de variáveis 4 usar algumas funções de conversão de variáveis, manipulação de strings e de datas O QUE É UMA VARIÁVEL? Uma variável é um local de armazenamento de dados, identificada por um nome. Ela pode ter seu conteúdo alterado durante a execução de seu programa. conteúdo de uma variável pode ser texto, data, números, valores lógicos (TRUE ou FALSE), objetos, etc. Exemplo de variáveis: x = 12, strNome = “Antônio ” TIPOS DE VARIÁVEIS DO VISUAL BASIC Tipo Descrição Exemplo Tamanho Byte inteiro simples 5 1 byte Boolean valor TRUE ou FALSE TRUE 2 bytes Integer inteiro curto 528 2 bytes Long inteiro longo 7430180 4 bytes Single precisão simples 93.16 4 bytes Double precisão dupla 492.028433 8 bytes Currency monetário $ 735.16 8 bytes Date data 10/01/95 8 bytes Object referência a um objeto frmLogSys 4 bytes String cadeia de caracteres “Operação OK” 10 bytes + string Variant qualquer tipo de variável Qualquer valor 22 bytes + tipo de dado Fundamentos do Visual Basic Aloncio de C. Santos página 27 NOMEANDO VARIÁVEIS Cada variável é identificada por um nome, que deve ser único dentro de seu escopo (visibilidade dentro da aplicação). REGRAS A nomenclatura de variáveis deve seguir as seguinte regras: 1. Deve começar com um caracter alfabético 2. Não deve conter espaços nem os caracteres %, &, !, #, @ ou $ 3. Deve ser único dentro de seu escopo 4. Não deve exceder 255 caracteres CONVENÇÃO Para facilitar a identificação de nossas variáveis, adotaremos uma convenção, sugerida pela Microsoft, para nomenclatura de variáveis: Tipo de Variável Prefixo Exemplo Byte b bNumCopias Boolean f fAtivo Integer i iQtdeAlunos Long l lPopulaçao Single s sParcela Double dbl dblRaizCubica Currency c cSalario Date dt dtNasc Object prefixo do objeto referido frmPessoal, txtBairro, lblMensg, etc String str strCargo Variant v vDados Fundamentos do Visual Basic Aloncio de C. Santos página 28 DECLARAÇÃO Ao declarar uma variável iremos estabelecer seu escopo, conforme definido na tabela abaixo: ESCOPO O escopo é a visibilidade da variável, ele indica se uma variável é visível fora do local onde ela foi definida. Escopo Visibilidade Local uma variável definida a nível de procedure só é visível dentro da procedure onde foi declarada Módulo / Formulário uma variável declarada na General Declaration de um módulo ou de um formulário só é visível para todas as procedures dentro do módulo ou formulário onde foram declaradas Público uma variável declarada em um módulo como Public é visível em todas as procedures de seu projeto Esquema de Visibilidade de Variáveis Public Module/Form Local a = “Windows 95” b = FALSE c = 10 Fundamentos do Visual Basic Aloncio de C. Santos página 29 VARIÁVEIS LOCAIS Variáveis locais sãoaquelas que tem vida somente dentro do procedimento que as criou. Quando o procedimento termina, seu espaço de memória é liberado. Para declarar uma variável local usamos a palavra- chave DIM: Sintaxe: Dim nomevariável [As type] Exemplo: Dim strBairro As String Dim fConfirma As Boolean Dim iQtdeAlunos As Integer DECLARAÇÃO IMPLÍCITA E EXPLÍCITA Podemos usar uma variável sem declará-la, simplesmente atribuindo um valor, o que chamamos de declaração implícita. Uma variável declarada implicitamente terá escopo Local e será do tipo Variant. Temp = 20 Devemos evitar o uso de declarações implícitas, declarando cada variável. Para obrigar a declaração de todas as variáveis, no menu Tools escolha a opção Options e na guia Environment clique na caixa de seleção Require Variable Declaration. Será incluído, automaticamente, em seu código (na General Declaration) a definição Option Explicit. Usando a declaração explícita, o VB irá verificar a sintaxe das variáveis automaticamente, acusando erros de digitação VARIÁVEIS STATIC Variáveis do tipo Static são variáveis que não perdem seu valor quando o procedimento que as criou terminar. Quando o procedimento for chamado mais uma vez ela manterá o valor da chamada anterior. Static iCounter As Integer Static strNome As String Fundamentos do Visual Basic Aloncio de C. Santos página 30 VARIÁVEIS EM FORMULÁRIOS/MÓDULOS Variáveis declaradas na seção General Declarations de um Formulário ou Módulo são visíveis em todos os procedimentos daquele módulo. Nesta seção nós só declaramos as variáveis, não é possível atribuir valores na General Declarations, para se atribuir um valor devemos usar uma Function ou uma Sub. CONSTANTES Constantes são similares a variáveis no sentido de armazenar um valor na memória. Elas também podem ser de escopo Local, Módulo e Global. Entretanto, constantes contém valores que não mudam durante toda a execução do programa Const PI = 3.1415 Const BotaoSimNao = 4 Const BotaoSim=6 CONSTANTES PRÉ-DEFINIDAS DO VISUAL BASIC As Constantes Pré-definidas do Visual Basic são valores incorporados à linguagem, representados por constantes iniciadas por vb. Veja os exemplos: vbModal vbMaximized vbYesNo vbNormal vbCascade vbExclamation vbLeftButtons vbCancel Exemplo iConfirma = MsgBox(“Confirma Operação?” , vbYesNo + _ vbCritical + vbDefaultButton2 If iConfirma = vbNo Then Msgbox “Operação Cancelada”, vbExclamation Else Msgbox “Operação Confirmada”, vbExclamation End if Fundamentos do Visual Basic Aloncio de C. Santos página 31 CONVERSÕES Quando você se torna mais interessado com o desempenho do seu programa você declara variáveis de tipos diferentes, você precisará de converter variáveis entre diferentes tipos de dados dependendo do que você está tentando calcular ou processar e o que precisa exibir. Visual Basic executa algumas conversões automaticamente. Por exemplo, se a String “1234” é colocada numa variável do tipo Integer, Visual Basic automaticamente converte para integer a string. Outro exemplo, quando uma string “100” é adicionada a um valor numérico usando a formula “100” + 10, o Visual Basic converterá a string para número para executar a formula. Existem alguns casos, entretanto, que o Visual Basic poderá gerar resultados estranhos. Por exemplo, se duas strings são adicionadas, o Visual Basic irá concatenar as strings (“100” + “10” = “10010”). Você pode evitar bugs em seu programa convertendo explicitamente, usando as funções de conversão, antes de usa-las. Também quando os valores são convertidos explicitamente, o seu programa é executado mais rapidamente porque você minimiza o trabalho extra do Visual Basic. Função Converte para Função Converte para CBool Boolean CByte Byte CCur Currency CDate Date CDbl Double CInt Integer CLng Long CSng Single CStr String CVar Variant Text1.Text = CStr(HScroll1.Value) txtPixels.Text = CStr(CInt(txtPixels)+1) sngMoney = 1.22 ‘ Valor single curNewMoney = CCur(iMoney) ‘ Valor convertido em moeda MyDouble = 437.324 ' MyDouble é um Double. MyString = CStr(MyDouble) ' MyString contém "437.324". Fundamentos do Visual Basic Aloncio de C. Santos página 32 MANIPULANDO STRINGS Quando precisamos manipular strings o Visual Basic traz algumas funções para trabalharmos com elas. Função Descrição Left (strText, iCont) Retorna iCont letras de strText a partir da esquerda Right(strText, iCont) Retorna iCont letras de strText a partir da direita Mid( strText, iStart[,iCont]) Retorna iCont letras de strText a partir da posição iStart UCase(strText) Retorna strText em maiúsculas LCase(strText) Retorna strText em minúsculas Len(strText) Retorna o tamanho de strText Dim strNome as String strNome = InputBox(“Entre com seu nome”) MsgBox “A primeira letra é: “ & Left(strNome,1) MsgBox “A última letra é: “ & Right(strNome,1) MsgBox “A quinta letra é: “ & Mid(strNome,5,1) MsgBox “Seu nome tem “ & Len(strNome) & “ caracteres” Msgbox “Seu nome em maiúsculas : “ & UCase(strNome) Msgbox “Seu nome em minúsculas : “ & LCase(strNome) MANIPULANDO DATAS As datas e horas são armazenadas internamente como números. Isto permite que você faça cálculos com as datas, tais como adicionando dias ao dia de hoje para ter uma nova data num futuro. O Visual Basic prove funções para retorno da data e hora atual, e para gerar datas baseado em strings ou outra expressão. Fundamentos do Visual Basic Aloncio de C. Santos página 33 Exemplo: Dim dtNovaData As Date dtNovaData = Date + 15 ‘dtNovaData recebe a data de _ hoje mais 15 dias Função Descrição Date Retorna a data atual Time Retorna a hora atual Now Retorna a data e hora atual Hour, Minute, Second Retornam Hora, Minuto e Segundo atual Day, Month, Year Retornam Dia, Mês e Ano de uma data qualquer DataDiff Retorna a diferença entre duas datas MsgBox “Data atual: ” & Date MsgBox “Dia de Hoje: ” & Day(Date) MsgBox “Mês Atual: ” & Month(Date) MsgBox “Ano Atual: ” & Year(Date) Questões 1. Qual a vantagem de usarmos a declaração explícita de variáveis? Como ativá-la? 2. Quais os níveis de escopo para declaração de variáveis? 3. O que são constantes? E o que são constantes pré-definidas? Fundamentos do Visual Basic Aloncio de C. Santos página 34 Exercíci o 3 Primeira Parte 1. Abra, na pasta C:\VB4FUND\CAP05\CONVERTE, o projeto converte.vbp 2. No evento KeyUp de cada uma das caixa de texto, codifique a fórmula de conversão entre as unidades: • 1 Polegada = 2,54 centímetros • 1 Pé = 30,4 centímetros 3. Para formatar os valores numéricos calculados, utilize a função Format, cujo código de formatação é: “##0.0000” 4. Para evitar problemas com valores não numéricos, verifique se o conteúdo digitado é numérico (função IsNumeric), antes de efetuar os cálculos 5. No botão Limpar Valores, criar o código para limpar as caixas de texto. 6. Salve o projeto na pasta C:\VB40FUND\CAP05\CONVERTE Segunda Parte 1. Abra, na pasta C:\VB4FUND\CAP05\DATAS, o projeto Datas.vbp 2. Crie uma linha de código que faça a caixa de texto Hoje receber o valor da data de hoje quando o programa for iniciado 3. Crie um código para que sempre que o formulário se tornar ativo a caixa de texto txtDataIni receba o foco 4. Crie dois procedimentos de eventos para as caixas de texto Data Inicial e Data Final para que quando uma delas for alterada a caixa de texto Diferença seja limpa 5. Para o botão calcular use a função DateDiff para calcular a diferença das datas entradas e atribuir o resultado a caixa de texto Diferença 6. Salve o projeto na pasta C:\VB40FUND\CAP05\DATASFundamentos do Visual Basic Aloncio de C. Santos página 35 6 PROCEDURES Neste capítulo você vai aprender: 4 o que são Sub procedures e Function procedures 4 como declará-las e usá-las, para modularizar seu programa 4 como passar parâmetros entre procedures PROCEDURES Procedures são blocos de código que escrevemos, visando modularizar nossos programas, tornando-o mais organizado, reutilizável e de manutenção mais simples. PROCEDURES DE EVENTO Uma procedure de evento (event procedure) contém linhas de código que são acionadas somente quando ocorre tal evento. Cada controle possui uma série de eventos, que são disponibilizados pelo VB, através de procedures de evento. GENERAL DECLARATIONS A General Declaration é uma área disponível em Formulários e Módulos onde podemos codificar procedures que serão genéricas para o formulário ou módulo. Usamos também para declararmos constantes e variáveis dentro de seu escopo. SUB PROCEDURES São procedimentos independentes que executam comandos, não retornando valor nenhum. Veja o exemplo de uma sub procedure a seguir: Sub AbreArquivo() ‘Abre um arquivo para leitura Open “LogFile.Log” For Input as #1 End Sub Fundamentos do Visual Basic Aloncio de C. Santos página 36 FUNCTION PROCEDURES São procedimentos que executam comandos, retornando valor para o procedimento de onde foi chamada a função. Exemplo 1: Function GetFileName() as String Dim strFile as String ‘Abre uma janela de entrada e pede o nome do arquivo strFile=InputBox(“Entre com o nome do arquivo”) ‘para retornar um valor de uma função deve-se atribuir o ‘valor desejado ao nome da função GetFileName = strFile End Sub Exemplo 2: Function CalculaComissao (Vendas As Single,_ Comissao as Single) As Single Dim sngRetorno As Single sngRetorno = (Vendas * Comissao) / 100 CalculaComissao = sngRetorno End Function PASSAGEM DE PARÂMETROS Parâmetro é um valor que é passado à uma Sub ou uma Function para que seja executado um processamento com este valor. Como visto no exemplo anterior, a função CalculaComissao recebe dois parâmetros: Vendas e Comissao que servirão de base para o cálculo da comissão de um vendedor. Quando desejarmos passar um parâmetro para um procedimento, devemos declará-lo juntamente com a declaração do procedimento, dentro dos parênteses e separados por vírgulas. Function CalculaComissao (Vendas As Single,_ Comissao as Single) As Single Fundamentos do Visual Basic Aloncio de C. Santos página 37 Questões 1. Qual a diferença entre Sub procedures e Function procedures? 2. Cite exemplos de procedimentos que caracterizariam Sub procedures e Function procedures. 3. Por que passarmos parâmetros a uma procedure? Exercíci o 4 1. Abra o projeto Temp na pasta C:\VB40FUND\CAP06 2. Crie um módulo novo e nele crie uma sub para centralizar um formulário qualquer 3. Neste mesmo módulo crie duas funções para conversão entre temperaturas Fahrenheit e Celsius usando as seguintes fórmulas: • Temp.Fahrenheit = Temp.Celsius * (9 / 5) +32 • Temp.Celsius = (Temp.Fahrenheit - 32) * (5 / 9) 4. No botão Converter para Celsius crie um código que converta o valor digitado na caixa de texto da temperatura e defina o foco para o botão Converter para Fahrenheit 5. No botão Converter para Fahrenheit crie um código que converta o valor digitado na caixa de texto da temperatura e defina o foco para o botão Converter para Celsius 6. No botão Sair coloque o código para finalizar a aplicação 7. Salve o projeto Fundamentos do Visual Basic Aloncio de C. Santos página 38 7 CONTROLANDO A EXECUÇÃO Neste capítulo você vai aprender: 4 usar estruturas de controle, para estabelecer a seqüência lógica de seu programa 4 conhecer estruturas de seleção 4 conhecer estruturas de repetição ESTRUTURAS DE SELEÇÃO Estruturas de Seleção permitem a execução de um bloco de código de acordo com o resultado de um teste lógico (comparação). IF...THEN...ELSE Sintaxe: If teste lógico Then [comandos...] [ElseIf teste lógico Then [comandos...] ] [Else [comandos...] ] End If Exemplo: If sVendas > 50000 Then ‘ vendas maiores que 50000 sComissão = 0.11 ElseIf sVendas > 15000 Then ‘ vendas maiores que 15000 sComissão = 0.07 ElseIf sVendas > 8000 Then ‘ vendas maiores que 8000 sComissão = 0.04 Else ‘ vendas menores ou iguais sComissão = 0.02 ‘ a 8000 End If Fundamentos do Visual Basic Aloncio de C. Santos página 39 SELECT CASE Sintaxe: Select Case expressão Case valor expressão1 [comandos...] [Case valor expressão2 [comandos...] ] [Case Else [comandos...] ] End Select Exemplo: Select Case iCódigo Case 10 iPrioridade = 1 Case 15,20 iPrioridade = 2 Case 25 To 45 iPrioridade = 3 Case Else iPrioridade = 4 End Select A estrutura Select Case é mais apropriada para verificar a igualdade de diversos valores discretos, enquanto a estrutura If...Then...Else é mais indicada para testes lógicos de expressões. Podemos inserir uma estrutura de seleção dentro de outra estrutura de seleção para manipularmos lógicas mais complexas. Fundamentos do Visual Basic Aloncio de C. Santos página 40 ESTRUTURA DE REPETIÇÃO Estrutura de repetição permite a execução de um bloco de código repetidas vezes de acordo com o critério (teste lógico) estabelecido. DO UNTIL/WHILE...LOOP Sintaxe: Do [ { While | Until } condição] [comandos...] [Exit Do] [comandos...] Loop Function GetFileName() as String Dim strFileName as String strFileName = “” Do While strFileName =“” strFileName = InputBox(“Nome do arquivo”,_ ”Abrir Arquivo”,””) Loop GetFileName = strFileName End Function Fundamentos do Visual Basic Aloncio de C. Santos página 41 DO...LOOP UNTIL/WHILE Sintaxe: Do [comandos...] [Exit Do] [comandos...] Loop [ { While | Until } condição] Sub EntradaDeDados() Dim iCont As Integer Dim iEntrada As Integer Dim iValores(10) As Integer iCont = 0 Do iCont = iCont + 1 iEntrada=InputBox(“Entre com Inteiro. 0 Termina”) If iEntrada = 0 Then Exit Do End If Valores(iCont) = Entrada Loop Until iCont = 10 End Sub Fundamentos do Visual Basic Aloncio de C. Santos página 42 FOR...NEXT Sintaxe: For contador = valor inicial To valor final [Step incremento] [comandos...] [Exit For] [comandos...] Next [contador] Sub Form_Paint() Dim iI, iJ As Integer For iI = 2 To 3 For iJ = 1 To 10 Print iI & “ x “ & iJ & “ = “ & iI * iJ Next Next End Sub Questões 1. Compare uma estrutura de seleção If...Then...Else como uma estrutura Select...Case. 2. Podemos usar estruturas de controles dentro de outras estruturas de controle? 3. Para que serve o comando Exit Do? Fundamentos do Visual Basic Aloncio de C. Santos página 43 Exercíci o 5 1. Crie um formulário com a seguinte interface: 2. Quando for selecionado o relatório anual devem ser desabilitados os seguintes controles: Caixa de combinação ao lado do botão de opção Mensal Caixas de texto Inicio e Fim para o relatório de período 3. Quando for selecionado o relatório mensal devem ser desabilitados os seguintes controles: Caixa de texto ao lado do botão de opção Anual Caixas de texto Inicio e Fim para o relatório de período O conteúdo da caixa de combinação será uma seqüência numerada de 1 até 12 representando os meses 4. Quando forselecionado o relatório mensal devem ser desabilitados os seguintes controles Caixa de texto ao lado do botão de opção Anual Caixa de combinação ao lado do botão de opção Mensal (continua) Fundamentos do Visual Basic Aloncio de C. Santos página 44 (continuação) 5. Quando for pressionado o botão de imprimir o programa deverá exibir, numa caixa de mensagem, para cada cópia desejada as seguintes mensagens de acordo com o tipo de relatório pedido: Anual: Imprimindo <Cópia Atual> página de <Total de cópias> do Relatório Anual de <Ano> Mensal: Imprimindo <Cópia Atual> página de <Total de cópias> do Relatório do mês de <Mês por extenso> Período: Imprimindo <Cópia Atual> página de <Total de cópias> do Relatório do Período de <Data inicial> e <Data Final> 6. Salve o projeto e o formulário com o nome de Imprime.vbp na pasta C:\VB40FUND\CAP07 Fundamentos do Visual Basic Aloncio de C. Santos página 45 8 DEPURAÇÃO DE APLICATIVOS Neste capítulo você vai aprender: 4 identificar os tipos de erros no VB 4 conhecer as ferramentas de depuração 4 conhecer a Debug Window TIPOS DE ERROS • Sintaxe são erros provocados por erros de digitação de comandos • Run-time são erros durante a execução do programa • Lógicos são erros causados por lógicas incorretas FERRAMENTAS DE DEPURAÇÃO Breakpoint É um local no código onde o Visual Basic para a execução do programa e entra em break mode. Via teclado, pressione a tecla F9. Instant Watch Exibe o valor atual de uma expressão sobre o cursor ou que esteja selecionada. Calls Lista todas as chamadas de funções durante a execução da aplicação. Step Into Executa passo a passo o conteúdo de uma procedure, Via teclado, pressione a tecla F8. Step Over Roda o próximo código executável, passando através de cada linha de código que se segue. Se o código chamar uma procedure definida pelo usuário, esta procedure será executa diretamente. Start Inicia a sua aplicação Break Entra em Break Mode End Termina a sua aplicação Fundamentos do Visual Basic Aloncio de C. Santos página 46 BREAK MODE O Break Mode para a execução do seu programa para que você possa executá- lo passo a passo, ver o conteúdo de variáveis, propriedades e expressões e até mudar os valores de variáveis e propriedades. Estando em Break Mode, para executar passo a passo seu programa, clique na ferramenta Step Into ou pressione a tecla F8. Para executar uma procedure, sem passar linha a linha, pressione a ferramenta Step Over, ou pressione as teclas SHIFT + F8. DEBUG WINDOW Para acompanhar o conteúdo de uma variável você deve fazer: 1. No menu Tools selecione a opção Add Watch. 2. Na caixa de texto Expression digite a variável desejada. 3. Pressione o botão de OK. 4. Visualize seu conteúdo em Watch Pane. A Debug Window é dividida em duas partes, a parte superior exibe as variáveis que foram adicio- nadas na janela com o comando Add Watch para monitorar os valores durante a execução do programa. Na parte inferior temos a janela imediata, onde podemos exibir variáveis, alterar seu valor e chamar funções do próprio Visual Basic . Immediate Pane Watch Pane Fundamentos do Visual Basic Aloncio de C. Santos página 47 Questões 1. Explique os tipos de erros que podem ser gerados no VB? 2. Como podemos entrar em Break Mode? 3. O que podemos fazer através da Debug Window? Exercíci o 6 1. Abra um projeto criado anteriormente 2. Execute o aplicativo, utilizando as diversas ferramentas de depuração descritas neste capítulo 3. Encerre seu projeto Fundamentos do Visual Basic Aloncio de C. Santos página 48 9 CONTROLES Neste capítulo você vai aprender: 4 usar controles padrões 4 usar alguns custom controls 4 projetar Menus para sua aplicação CONTROLES PADRÕES Controle Descrição Pointer (ponteiro)- Este botão não desenha nenhum controle, ele é utilizado para redimencionar ou selecionar controle já criados PictureBox (figura) - Use este controle para a exibição de imagens, tanto decorativas como ativas), como container para métodos gráficos ou container para outros controles Label (etiqueta)- Use para exibir texto que você não deseja que o usuário altere. Como o título de um gráfico TextBox (caixa de texto)- Use para editar um texto onde o usuário pode entrar com um texto ou alterá-lo Frame (moldura) - Use este controle para criar uma divisão gráfica ou funcional para agrupar os controle. Para agrupar os controle, crie primeiro a frame depois desenhe os controle dentro dela CommandButton (botão de comando) - Use este controle para criar um botão que quando pressionado executa uma ação CheckBox (caixa de verificação) - Use este controle para que o usuário possa rapidamente escolher se uma informação é verdadeira ou falsa ou exibir múltiplas escolhas quando o usuário puder escolher mais de uma opção OptionButton (botão de opção) - Use dentro de um grupo com múltiplas opções de onde o usuário só poderá escolher uma opção Fundamentos do Visual Basic Aloncio de C. Santos página 49 Controle Descrição Combo box (caixa de combinação) - Use para desenhar uma combinação de Textbox e Listbox onde a opção pode ser digita no controle ou escolhida através de uma lista ListBox (caixa de listagem) - Usado para exibir um lista de opções de onde o usuário pode escolher uma ou várias opções dependendo das propriedades. A lista pode ser rolada se ela tiver mais itens que for possível exibir de uma só vez HScrollBar (barra de rolagem horizontal) - Utilizada para fornecer uma ferramenta gráfica para o acesso rápido a longas listas de itens ou uma grande quantidade de informações VScrollBar (barra de rolagem vertical) - Utilizada para fornecer uma ferramenta gráfica para o acesso rápido a longas listas de itens ou uma grande quantidade de informações Timer (temporizador) - Executa uma ação num determinado espaço de tempo, este controle não é visível em run time DriveListBox (caixa de listagem de drives)- Exibe uma lista de drives do sistema DirListBox (caixa de listagem de diretórios) - Exibe um lista com os diretórios de um drive FileListBox (caixa de listagem de arquivos) - Exibe um lista com os arquivos de um diretório Shape (figura) - Usado para desenhar várias formas geométricas no formulário em design time Line (linha) - Desenha uma variedade de linhas com estilos diferentes Image (imagem) - Utilizado para exibir uma imagem (bitmap, metafile ou ícone), as imagens criadas com este controle são apenas decorativas DataControl (acesso a dados) - Fornece acesso a base de dados OLE Container (objeto OLE)- Utilizado como container para objetos de outros aplicativos no Visual Basic Fundamentos do Visual Basic Aloncio de C. Santos página 50 CUSTOM CONTROLS Custom Controls (controles personalizados) são controles adicionais aos controles padrões que aparecem na toolbox. Um custom control é um arquivo que pode ser adicionado ao seu projeto. Uma vez adicionado, ele cria um botão na toolbox para então você pode colocar o custom control no seu formulário. Os custom controls tem as extensões .VBX ou .OCX. Os custom controls com a extensão .OCX tiram proveito da tecnologia OLE e podem ser escritos para 16-bit ou 32-bit. (Estes controles também são chamados de OLE Controls.) Custom controls com a extensão .VBX usam uma tecnologia antiga e são encontrados em algumas aplicaçõesescritas nas versões anteriores do Visual Basic 4.0. Veja as regras para a utilização de custom controls: Versão do Visual Basic .VBX .OCX (16-bit) .OCX (32-bit) VB 4 versão 32 bits Não Não Sim VB 4 versão 16 bits Sim Sim Não Versões anteriores Sim Não Não Nota: Quando um projeto contendo um .VBX control é aberto, a ação padrão é atualizar este controle para um .OCX se a versão .OCX do controle estiver disponível. Alguns custom controls são controles que só podem ser utilizados em Sistemas Operacionais de 32 bits, como o Windows 95 e Windows NT 3.51 ou superiores. Se você desenvolveu aplicativos na versão 3.0 do Visual Basic, usando controles personalizados de terceiros, e quer migrar seus aplicativos, verifique com seu fornecedor de controles .VBX se já está disponível uma versão atualizada (.OCX) do controle para ser utilizado no Visual Basic 4.0. Fundamentos do Visual Basic Aloncio de C. Santos página 51 CONTROLES DE ARQUIVOS Existem controles específicos para navegação entre unidades, diretórios e arquivos. Para integrá-los utilizamos apenas algumas linhas de código em suas procedures de evento, como descreveremos a seguir: A procedure abaixo é ativada quando ocorrer uma mudança no drive, atribuindo sua escolha ao caminho de diretório: Sub drvDrive_Change() dirDirectory.Path = drvDrive.Drive End Sub A procedure abaixo é ativada quando ocorrer uma mudança no diretório selecionado, atualizando a lista de arquivos exibida: Sub dirDirectory_Change() filFileList.Path = dirDirectory.Path End Sub A procedure abaixo utiliza o caminho de diretório e o arquivo selecionado para exibir uma figura: Sub filFileList_Click() Image1.Picture = LoadPicture(dirDirectory.Path _ & “\” & filFileList.FileName) End Sub Para inserir caixas de diálogo de Abrir, Salvar, Fontes e outras, em nossos aplicativos, podemos usar o controle CommonDialog, que veremos a seguir Fundamentos do Visual Basic Aloncio de C. Santos página 52 COMMONDIALOG Algumas Caixas de Diálogo do Windows são utilizadas em diversos aplicativos, como as de Abrir, Fonte, Cores, Help, Salvar e Impressora. Para aproveitarmos tal característica, podemos utilizar o controle CommonDialog. CommonDialog é um controle adicionado ao seu formulário, sendo seu ícone mostrado somente em design time, que exibe Caixas de Diálogo padrão. Para exibir uma caixa de diálogo, utilizamos os método do CommonDialog: ShowColor, ShowFont, ShowOpen, ShowSave, ShowHelp e ShowPrinter. Exemplo: Sub cmdAbrirFigura() CommonDialog1.DialogTitle = “Escolha um arquivo “ CommonDialog1.Filter = “Figuras(*.bmp) *.bmp” CommonDialog1.ShowOpen If CommonDialog1.FileName Like “*.BMP” Then image1.Picture = LoadPicture(CommonDialog1.FileName) Else MsgBox “ Escolha um arquivo *.bmp “, vbOKOnly + _ vbExclamation End If End Sub Fundamentos do Visual Basic Aloncio de C. Santos página 53 INDEXANDO CONTROLES Para facilitar a referência a diversos controles em um formulário, ao invés de criarmos um nome para cada ocorrência do controle podemos usar um único nome e indexá-lo, para diferenciar cada ocorrência. Para criar controles indexados, siga os passos: 1. Crie um controle em seu formulário 2. Selecione-o e copie-o para a Área de Transferência - no menu Editar escolha a opção Copiar. 3. Cole-o em seu formulário - no menu Editar escolha a opção Colar. Surgirá uma caixa de diálogo, perguntando se você deseja criar um control array - vetor de controles. Clique em Yes. Ao usarmos controles indexados, nosso código poderá ser reduzido, pois evitaremos escrever linhas de código que sejam idênticas em diversos ou em todos os elementos, criando uma única procedure de evento que receberá como parâmetro o Index do controle desejado. Com isso, sua procedure deverá verificar o valor do Index e selecionar o procedimento apropriado. Veja no exemplo a seguir, onde foram criados em um formulário 4 botões de comando com o nome de cmdCalcula, que efetuam operações aritméticas: Private Sub cmdCalcula_Click(Index As Integer) Select Case Index Case 0 txtResultado = CDbl(txtOp1) + CDbl(txtOp2) strSinal = "+" Case 1 txtResultado = CDbl(txtOp1) - CDbl(txtOp2) strSinal = "-" Case 2 txtResultado = CDbl(txtOp1) * CDbl(txtOp2) strSinal = "*" Case 3 txtResultado = CDbl(txtOp1) / CDbl(txtOp2) strSinal = "/" End Select Fundamentos do Visual Basic Aloncio de C. Santos página 54 PROJETANDO MENUS Para que o projeto de interface de seu aplicativo seja coerente com os padrões do Windows, devemos incorporar Menus aos nossos programas em VB. Usaremos o Editor de menus do VB para criar facilmente todos os elementos componentes de menus. TERMINOLOGIA DE MENUS Existem vários termos associados aos menus no ambiente Windows. Barra de Menus Barra que contém os menus de sua aplicação, localizada abaixo da barra de título Menu Contém uma lista de itens (comandos) Item de Menu É uma opção (comando) dentro de um menu SubMenu É um subordinado a um item de menu Menu Popup É um menu de contexto, que é exibido no local onde o Usuário clicou Tecla de Atalho É uma tecla ou combinação de teclas que permite o rápido acesso a um item de menu Barra de Menus Menu Item de Menu SubMenu Fundamentos do Visual Basic Aloncio de C. Santos página 55 EDITOR DE MENUS A criação de menus no Visual Basic é feita através do Editor de Menus Para ativá-lo clique na ferramenta Menu Editor. Surgirá a seguinte janela, onde criaremos nossos menus, submenus, teclas de atalho, tornaremos os menus visíveis, etc. MENUS POPUP Menus pop-up são os menus de contexto, aqueles que aparecem quando pressionamos o botão direito do mouse sobre alguma área da aplicação. Para se exibir um menu de contexto, basta utilizar o método PopupMenu de um formulário, passando para ele o nome do menu que você deseja exibir. Private Sub Form_MouseUp(Button As Integer, _ Shift As Integer, X As Single, Y As Single) If Button = vbRightButton Then Form1.PopupMenu mnuFormatar End If End Sub Fundamentos do Visual Basic Aloncio de C. Santos página 56 Questões 1. Podemos expandir os controles disponíveis no VB? 2. Para que usamos controles indexados? 3. Cite os termos associados a Menus? Exercíci o 7 1. Crie um formulário com a seguinte interface: 2. Adicione ao formulário um controle Timer e faça com que a propriedade Interval seja igual a 1000 3. No evento Timer altere a propriedade Caption para que seja igual a hora atual. Se a hora atual for igual ou maior hora digitada na caixa de texto e o botão de opção Ativo estiver selecionado, exiba uma caixa de mensagem com uma mensagem de alarme Fundamentos do Visual Basic Aloncio de C. Santos página 57 10 ACESSANDO BANCO DE DADOS Neste capítulo você vai aprender: 4 como o VB trabalha com Banco de Dados 4 usar o Data Control para exibir registros 4 noções de SQL 4 usar o Data Form Designer para gerar formulários de banco de dados CONCEITOS BÁSICOS Banco de Dados (database) É um conjunto de informações relacionadas, armazenadas em forma de Tabelas. Ex.: banco de dados de vendas. Tabela (table) É um conjunto de registros relativos a uma mesma entidade. Ex.: tabela de vendedores. Registro (record) É um conjunto de campos relacionados a uma ocorrência específica. Ex.: registro do vendedor. Campo (fields) É uma categoria de informação armazenada em um registro.Ex.: campo Nome do vendedor. Chave (primary key) É uma identificação unívoca de um registro, cujo propósito é diferenciá-lo dos demais. Ex.: matrícula do vendedor. ACESSANDO DADOS COM O VISUAL BASIC O Visual Basic permite o acesso a diversos tipos de Banco de Dados: • Jet Databases Engine Banco de Dados do MS-Access e do Visual Basic, que manipulam os dados através do Jet Engine • ISAM Databases Banco de Dados ISAM (Indexed Sequential Access Method) como dBase, Fox Pro, Paradox, etc • ODBC Databases Outros Banco de Dados que suportem o padrão ODBC (Open Database Connectivity) como ORACLE e Microsoft SQL Server Fundamentos do Visual Basic Aloncio de C. Santos página 58 TRABALHANDO COM O DATA CONTROL O Data Control permite o acesso a banco de dados de maneira simples. Primeiro você relaciona um Data Control a uma tabela de um banco de dados ou até mesmo a uma consulta em SQL. Depois basta relacionar em seu formulário os controles (textbox, label, listbox, combo box, picture, etc) a campos do seu banco de dados. Para usar o Data Control, siga os seguintes passos: 1. Selecione a ferramenta Data Control 2. Desenhe-o, arrastando com o mouse, em seu formulário 3. Clique com o botão direito do mouse e escolha Properties, para definir as propriedades para conexão com banco de dados. As propriedades do Data Control que devemos definir para estabelecer a conexão com banco de dados são: Propriedade Descrição Exemplo Name nome do Data Control Data1 Connect tipo de banco de dados conectado Access DatabaseName arquivo de banco de dados C:\NWIND.MDB RecordSource tabela do banco de dados Clientes Por padrão, o Visual Basic trabalha com banco de dados .MDB (do MS-Access, pois usa o mesmo Jet Engine), mas você pode escolher outros como Dbase e até formato .XLS do Excel. DatabaseName normalmente é o nome do arquivo de banco de dados, porém se seu banco de dados é separado em diversos arquivos (caso típico de arquivos Xbase), indique o nome do diretório onde estão contidos tais arquivos. RecordSource normalmente indica uma tabela, mas podemos indicar uma consulta em SQL, para buscar um subconjunto dos dados de acordo que critérios que iremos estabelecer. Fundamentos do Visual Basic Aloncio de C. Santos página 59 Agora que seu banco de dados já está indicado, falta relacionar seus campos com os controles em seu formulário. Para relacioná-los, você precisa definir duas propriedades em seu controle: Propriedade Descrição Exemplo DataSource qual Data Control é a origem dos dados relacionados Data1 DataField qual campo está relacionado com o controle Matricula Ao trabalhar com o Data Control, você está acessando diretamente o banco de dados, podendo manipulá-lo indevidamente. Para obter maior controle sobre seus dados, usamos técnicas mais sofisticadas de manipulação, utilizando DAO - Objetos de Acesso a Dados, que demandam maior trabalho de programação, mas oferecem maior flexibilidade (Este tópico, não faz parte do presente curso). RECORDSET Um RecordSet é um Objeto que contém um conjunto de registros fornecidos pelo Data Control. Existem propriedades e métodos do Data control relacionados com o RecordSet, como: Propriedades Descrição RecordSet.EOF Retorna indicação de final dos registros RecordSet.Bookmark Retorna ou define um indicador para o registro corrente RecordSet.NoMatch Retorna TRUE se nenhum registro foi encontrado através do método Find Métodos Descrição Refresh Reestabelece a exibição do banco de dados RecordSet.FindFirst, FindLast, FindPrevious, FindNext Localizam um registro de acordo com um determinado critério, posicionando-o como registro corrente. Fundamentos do Visual Basic Aloncio de C. Santos página 60 USANDO SQL SQL (Structured Query Language) é uma linguagem de banco de dados que contém comandos simples e padronizados para consulta e manipulação de dados. Podemos utilizar SQL no Visual Basic para especificar um RecordSource em um Data Control que contenha somente alguns dados de uma tabela, ao invés da tabela inteira, como no exemplo abaixo: Data1.RecordSource = “SELECT [nome aluno] FROM Alunos” O comando SELECT é utilizado para gerar consultas, oferecendo várias cláusulas e sintaxes: • FROM indica a tabela onde estão armazenados os dados • WHERE especifica condições de filtragem dos dados • ORDER BY indica a ordenação dos registros por um determinado campo Sintaxe Exemplo SELECT lista de campos FROM tabela WHERE condições ORDER BY campos SELECT [codigo aluno], [nome aluno] FROM alunos WHERE sexo = “F” ORDER BY [nome aluno] DESC Você pode usar o Microsoft Access para gerar a consulta e abria-la como recordsource de um Data Control Fundamentos do Visual Basic Aloncio de C. Santos página 61 DATA FORM DESIGNER O Data Form Designer é um Add-In que gera formulários simples para manipulação de banco de dados. Para acessá-lo, clique no menu Add-Ins e escolha a opção Data Form Designer. Caso esta opção não esteja visível, clique no menu Add-Ins e escolha a opção Add-In Manager. Surgirá uma caixa de diálogo na qual você irá marcar a checkbox Data Form Designer e pressionar OK. A partir daí, esta opção se tornará disponível. Ao carregar o Data Form Designer, você deverá fornecer um nome para seu formulário, o tipo de conexão (default é o MS-Access), selecionar o arquivo de banco de dados através do botão de comando Open Database, e escolher a tabela que será o RecordSource. Após escolher seu RecordSource, serão exibidos seus campos, e você irá escolher quais campos farão parte de seu formulário. Escolhidos os campos, clique no botão Build the Form para que seu formulário seja construído. MANIPULANDO REGISTROS Apresentamos a seguir as procedures básicas de manipulação de banco de dados. INCLUINDO A procedure abaixo inclui um novo registro em branco no final do RecordSet, permitindo a entrada de um novo registro. Private Sub cmdAdd_Click() Data1.Recordset.AddNew End Sub Fundamentos do Visual Basic Aloncio de C. Santos página 62 EXCLUINDO A procedure abaixo exclui o registro atual e move-se para o próximo registro. Caso o registro excluído tenha sido o último, movemos o registro corrente para o último registro atual. Private Sub cmdDelete_Click() Data1.Recordset.Delete Data1.Recordset.MoveNext ‘ Verificar se foi deletado o último registro If Data1.RecordSet.EOF = True Then Data1.RecordSet.MoveLast End If End Sub REESTABELECER A procedure abaixo reestabelece o conteúdo dos controles de acordo com o conteúdo original dos campos do banco de dados, desprezando as alterações que você acabou de digitar. Private Sub cmdRefresh_Click() Data1.Refresh End Sub Note que você só pode Reestabelecer os campos de um registro alterado enquanto você não tenha navegado entre os registros, pois ao navegar as alterações já são automaticamente salvas. MODIFICANDO E ATUALIZANDO A procedure abaixo atualiza o registro, posicionando como registro atual o registro modificado. Private Sub cmdUpdate_Click() Data1.UpdateRecord Data1.Recordset.Bookmark = Data1.Recordset.LastModified End Sub Fundamentos do Visual Basic Aloncio de C. Santos página 63 PROCURANDO A procedure abaixo armazena o indicador do registro atual e usa o método Find para localizar um registro de acordo com um critério (definido por strCriteria). Private Sub cmdFind_Click() Dim CurrentRecord As String ‘ armazena a opsição do registro atual CurrentRecord = Data1.Recordset.Bookmark Data1.Recordset.FindFirst strCriteria ‘ verifica se o registro
Compartilhar