1. iniciando o visual basic elementos...

79
1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual Basic 4.0 permite a instalação para 16 Bits (Windows 3.1 e 3.11) e para 32 Bits (Windows 95 e NT). Apresentaremos, inicialmente, os objetos e rotinas para 16 Bits, que são comuns às duas instalações. O ambiente de trabalho do Visual Basic é formado por um conjunto de janelas que podem ser abertas e fechadas individualmente. A janela principal é aquela que contém a Barra de Menus (Menu Bar) e a Barra de Ferramentas (Tool Bar), conforme mostrado na figura 1 abaixo Figura 1 - Barra de Menus e de Ferramentas Como pode ser visto, esta janela contém os controles usuais de qualquer aplicativo Windows, tais como Abrir Arquivo, Salvar Arquivo, Editar, etc. A figura 2 mostra a Caixa de Ferramentas (Tool Box), que contém todos os controles personalizados (objetos) do Visual Basic. A figura 3 mostra a Janela de Propriedades (Properties Window) que permite o acesso a todas as propriedades do controle selecionado. Fig. 2 Fig. 3 Fig. 4 A figura 4 mostra a Janela do Projeto (Project Window), que permite o acesso a todos os arquivos do projeto em questão. UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL Centro Interdisciplinar de Novas Tecnologias na Educação

Upload: trankhue

Post on 25-Apr-2018

224 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual Basic 4.0 permite a instalação para 16 Bits (Windows 3.1 e 3.11) e para 32 Bits (Windows 95 e NT). Apresentaremos, inicialmente, os objetos e rotinas para 16 Bits, que são comuns às duas instalações. O ambiente de trabalho do Visual Basic é formado por um conjunto de janelas que podem ser abertas e fechadas individualmente. A janela principal é aquela que contém a Barra de Menus (Menu Bar) e a Barra de Ferramentas (Tool Bar), conforme mostrado na figura 1 abaixo

Figura 1 - Barra de Menus e de Ferramentas

Como pode ser visto, esta janela contém os controles usuais de qualquer aplicativo Windows, tais como Abrir Arquivo, Salvar Arquivo, Editar, etc. A figura 2 mostra a Caixa de Ferramentas (Tool Box), que contém todos os controles personalizados (objetos) do Visual Basic. A figura 3 mostra a Janela de Propriedades (Properties Window) que permite o acesso a todas as propriedades do controle selecionado.

Fig. 2 Fig. 3 Fig. 4

A figura 4 mostra a Janela do Projeto (Project Window), que permite o acesso a todos os arquivos do projeto em questão.

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL Centro Interdisciplinar de Novas Tecnologias na Educação

Page 2: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Para abrir cada uma destas janelas você pode usar o menu View, ou, então, digitar F4 para abrir a Janela de Propriedades e Ctrl+R para abrir a Janela do Projeto.

A Caixa de Ferramentas não tem tecla de atalho associada. O ambiente de desenvolvimento integrado do VB 5.0 é um pouco diferente. As diversas janelas não são mais flutuantes e não se pode mais ver o aplicativo rodando no fundo. Embora as janelas possam ser movidas e dimensionadas, elas não são mais independentes entre si. A Janela de Projeto também mudou, sendo capaz de identificar claramente formulários

e módulos de programação por meio de uma árvore. Mudanças menores dizem respeito à aparência das janelas, especialmente da Caixa de Ferramentas. Talvez o melhor seja remover a Janela de Projetos, utilizando-a somente quando estritamente necessária. Você também pode configurar o ambiente de trabalho do VB 5.0 de modo a ficar parecido com o do VB 4.0. Basta entrar no menu Tools|Options|, escolher a opção Advanced e verificar a janela SDI Development Environment.

A Caixa de Ferramentas é usada para desenhar controles no formulário. Ela contém todos os controles padronizados do Visual Basic e mais aqueles controles que tiverem sido inseridos por meio da janela Custom Controls (menu Tools). O formulário (form) é uma janela do Windows, inicialmente em branco, usada para configurar a interface gráfica do projeto em VB. Cada projeto pode ter um ou mais formulários, cada um deles associado a uma janela (por exemplo, podemos ter uma janela para salvar arquivos, uma para abrir arquivos, etc.). ALGUMA TERMINOLOGIA Um objeto, em Visual Basic, é uma conjunto de códigos de programação (sub-rotinas) e propriedades. Na verdade, cada elemento que você vê em um programa Windows é um objeto individual, dotado de propriedades características..

Exemplo: Objeto Avião: Propriedades: velocidade, altitude, inclinação, etc.; Rotinas: decolar, aterrissar, taxiar, etc. Mudando as propriedades de um objeto, podemos mudar a forma como ele interage com o ambiente. Na programação em VB não é necessário ter um conhecimento muito grande de programação orientada a objetos, como é necessário em outras linguagens. Os objetos estão prontos para serem usados e o Visual Basic cuida de quase tudo. A programação em VB não é um exemplo de “Programação Orientada a Objetos” (POO), como é o caso do C++ ou do Object Pascal. O termo “objeto”, em VB, é usado de uma maneira um pouco diferente, mas isto não significa que a abordagem seja deficiente. É apenas diferente da POO clássica. Projeto é o nome dado a um aplicativo desenvolvido em Visual Basic. O arquivo do projeto (.vpb) é apenas uma lista de todos os outros arquivos que fazem parte do aplicativo, tais como:

• formulários (.FRM);

Page 3: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

• módulos de programação (.bas); • controles de 16 bits (.VBX); • controles de 32 bits (.OCX); • bancos de dados (.mdb).

Quando se gera o programa executável, o VB cria um arquivo .EXE que tem todas as características do arquivo .VBP, mas que pode ser executado fora do ambiente do VB. Os formulários são janelas onde se desenha controles e se escreve procedures de eventos. Os módulos são arquivos que contém declarações de variáveis, declarações de constantes e procedures internas. Para inserir um novo módulo, use o menu Insert, opção Module. Para remover módulos e formulários do projeto (mas não do disco rígido), use o menu File, opção Remove File. Esta opção remove do projeto o arquivo selecionado na Janela de Projetos. Os arquivos de projeto do Visual Basic (.VBP) são, na verdade, descrições de quais arquivos .FRM e .bas estão associados ao projeto, qual é o modo de associação e onde encontrá-los no disco rígido. Quando for gerado o arquivo executável *.exe, este substituirá as funções do arquivo .VBP. Este último continuará presente no disco, naturalmente. ALTERANDO PROPRIEDADES As propriedades de qualquer controle em VB podem ser alteradas em tempo de projeto ou em tempo de execução. Em tempo de projeto, quando não estamos rodando o programa, devemos usar a Janela de Propriedades. Por exemplo, clique sobre um formulário vazio e pressione F4 para abrir a janela de propriedades. Este formulário já é um programa em VB, o que pode parecer um choque para os programadores convencionais. Entretanto, não é um programa capaz de fazer muita coisa. Na janela de propriedades, mude a propriedade “caption”1 para “Minha Janela”. Você verá que a legenda (caption) do formulário mudará de “Form1” para “Minha Janela”. Você pode, agora, pressionar F5 para rodar o programa. Em menos de um minuto você foi capaz de criar um programa que apresenta uma janela com um título personalizado. Não é fácil ?

As propriedades dos controles também pode ser alteradas em tempo de execução (quando o programa estiver rodando). Para tanto, devemos usar a seguinte sintaxe: Objeto. Propriedade = Novo Valor. Por exemplo, para mudar a propriedade caption do formulário Form1 para “Minha Janela”, escreveríamos:

1 Até a data de impressão desta apostila, o Visual Basic era disponível nas seguintes línguas: inglês, francês, alemão,

italiano, espanhol, japonês e chinês (não sei se mandarim ou cantonês). Como, visto, nossa querida língua lusa ficou

de fora e o melhor que temos a fazer é nos virarmos com o inglês. Como diria Vicente Mateus, “Se você quiser fazer

um omelete, terá que chutar os ovos...”.

Page 4: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Form1.Caption = “Minha Janela”

Note que Minha Janela é um string (cadeia de caracteres) e deve estar sempre entre aspas. O único problema é onde escrever esta frase. Todo trecho de código em VB deve ser escrito dentro da Janela de Código. Por exemplo, em tempo de projeto, dê dois cliques no formulário para abrir a janela de código. Deve aparecer o seguinte trecho2:

Private Sub Form_Load() End Sub

Este é o “esqueleto” de um procedimento de eventos em VB, que será executado toda vez que ocorrer o evento Carregar (Load) do formulário Form1. Agora, complete o procedimento como a seguir e pressione F5 para rodar o programa.

Private Sub Form_Load() Form1.Caption = “Outra Janela” End Sub

Você verá que o formulário é carregado com o título “Outra Janela”. Entretanto, em tempo de projeto ele continua com o título “Minha Janela” (ou seja lá o que for). Uma correta compreensão da diferença entre “tempo de projeto” e “tempo de execução” é vital para o programador em VB. Existem propriedades que só podem ser alteradas em tempo de execução. CRIANDO UM APLICATIVO SIMPLES Nosso formulário personalizado da seção anterior já é um programa VB, mas ainda não é alguma coisa que você possa mostrar para os amigos (embora, se feita em C++, devesse ter mais de duzentas linhas de código e um suspiro no final...). O VB dispõe de recursos suficientes para começarmos a trabalhar com coisas mais complicadas. Os passo na construção de qualquer programa VB são os seguintes:

• Criação da interface gráfica; • Definição das propriedades dos controles; • Escrita do código de programação.

a) Criando a Interface com o usuário

2 Para maior clareza, indicaremos os delimitadores de uma procedure ou função em negrito. O VB, naturalmente,

insere estas palavras automaticamente sem o negrito. Da mesma forma, faremos a docuentação do programa

(comentários) em itálico. No VB, basta que você coloque um apóstrofo na frente de uma linha para ela ser

interpretada como comentário.

Page 5: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

A revolução criada pelo aparecimento das interfaces gráficas com o usuário ainda não acabou, mas algumas pessoas ainda não se deram conta de que ela tenha começado. Programadores antigos - e tenho ouvido vários - dizem que

interfaces gráficas não são coisas de programadores sérios. Talvez estes sisudos senhores prefiram realmente aqueles monitores pavorosamente verdes da época do DOS, mas a humanidade toda está contra eles. Os seres humanos são seres essencialmente visuais, e não é possível exagerar a importância da visão no desenvolvimento da inteligência humana. Reconhecemos figuras muito mais depressa do que reconhecemos letras, tanto que uma

das técnicas da chamada “Leitura Dinâmica” tenta ensinar as pessoas a visualizar palavras ou frases inteiras como se fossem figuras. Neste aspecto os chineses e outros povos asiáticos estão literalmente milênios à nossa frente. Talvez sejam eles os verdadeiros inventores da interface gráfica ! Figura 5 - A Interface Muito bem, se você não se sente bem com interfaces gráficas, tenho a dizer que talvez você esteja estudando a linguagem errada. Por outro lado, se você pertence aos 99,9% da humanidade que saliva frente à figura de uma lasanha, mas sente apenas uma comichão lendo a frase “Coma uma Lasanha !”, bem, então você está no lugar certo. O VB dispõe de recursos fantásticos para o projeto de interfaces gráficas. Para iniciar a interface, desenhe, com auxílio da Caixa de Ferramentas, uma Caixa de Texto e dois Botões de Comando, posicionando-os como na figura ao lado. Redimensione o formulário de modo que ele fique do tamanho indicado na figura. Note que você pode trabalhar com estes objetos da mesma maneira que trabalha com objetos de desenho do Word ou do Excel. A explicação das funções deste controles é dada a seguir.

Botão de Comando: é provavelmente o controle mais simples e mais utilizado no VB. Trata-se, basicamente de um botão que, quando clicado, comandará a execução de um trecho de código. O evento “default” associado ao botão de

comando é o evento click. Este botão, ao contrário do botão 3D (SSCommand, edições Profissional e Enterprise apenas), não suporta bitmaps e não pode ter a aparência 3D configurada.

Caixa de Texto: também denominado de Caixa de Edição, este controle permite apresentar textos editáveis pelo usuário. Para apresentar textos que não possam ser editáveis pelo usuário, use o controle Label

(Rótulo). A Caixa de Texto convencional não suporta máscaras de digitação. Se

Page 6: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

isto for necessário, é melhor usar o controle MaskEdit (edições Profissional e Enterprise apenas). b) Definindo as propriedades dos controles Com auxílio da Janela de Propriedades, redefina algumas propriedades dos controles criados, conforme mostrado na tabela 1 a seguir.

Tabela 1

OBJETO PROPRIEDADE DEFINIÇÃO formulário Caption (Legenda) “Bom Dia !” Caixa de Texto Text (Texto) (Vazio) Botão de Comando 1 Caption (Legenda) OK Botão de Comando 1 Caption (Legenda) Sair

c) Escrevendo o código Cada objeto do VB, que denominamos aqui de “controle”, tem vários eventos associados. A cada um destes eventos podemos associar um “procedimento de eventos”, que será executado a cada vez que o evento correspondente ocorrer. Para associar um procedimento de eventos ao Botão de Comando 1 clique duas vezes sobre este controle, de modo a abrir a Janela de Código a ele associada. Escreva a linha central do procedimento a seguir. Private Sub Command1_Click()

Text1.Text = "Até mais tarde !" End Sub

Clicando duas vezes sobre o Botão de Comando 2, abra a janela de código associada a ele e escreva a palavra “End”. Private Sub Command2_Click() End End Sub Isto é tudo. Cada botão de comando tem, agora, um código associado, que não será executado até que os botões sejam acionados. O primeiro botão escreverá o texto “Até mais tarde!” na caixa de texto, enquanto o segundo encerrará a execução do programa. Procedimentos são também denominados “procedures” (pronuncia-se “procídiur”) e é comum que se use este termo em inglês, mesmo quando se escreve ou se fala em português (um “procedimento” que nossos amigos lusos abominam). UM PROGRAMA DE ANIMAÇÃO

Page 7: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Em Visual Basic, Método é um procedimento reservado que atua sobre um objeto específico. Um método especialmente concebido para realizar efeitos de animação é o método Move, cuja função é mover suavemente um objeto pela tela. A sintaxe é a seguinte:

[Objeto.]Move Left[,Top[,Width[,Height]]], onde Left é a distância medida a partir da esquerda do formulário até o lado esquerdo do objeto, Top é a distância medida do topo do formulário até o topo do objeto, Width é a largura do objeto e Height a altura (veja a figura 6). Colchetes indicam parâmetros opcionais. Por exemplo, se Objeto for omitido, o VB moverá o objeto que tem o “foco” no momento, isto é, o objeto que está presentemente selecionado. A escala padrão de medidas gráficas no Windows é o twip. Existem 1440 twips por polegada ou aproximadamente 567 twips por centímetro. A escala de medição pode ser alterada para pixels, centímetros e outras (ver propriedade ScaleMode). a) Criando a interface de Borbolet.vbp A finalidade de nosso aplicativo é mover uma borboleta pela tela, enquanto ela bate as asas. Inicie um Novo Projeto, através do menu File|New Project e, com auxílio da Caixa de Ferramentas, posicione os seguintes controles no formulário: um Botão de Comando, três Caixas de Imagem, e um Timer.

Imagem: é um controle capaz de conter imagens do tipo bitmap, metafile e outros. O VB dispõe também do controle PictureBox, que tem mais recursos do que o Imagem. Contudo, o controle de Imagem ocupa menos memória e

redesenha figuras complexas mais rapidamente.

Timer: é um controle de cronômetro. O timer simplesmente gera um evento de timer a cada intervalo de tempo pré-definido. Interval é uma propriedade que pode ser definida em tempo de projeto ou de execução.

Figura 6 - Coordenadas de um objeto

b) Definindo as Propriedades

Page 8: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Com auxílio da Janela de Propriedades, defina as seguintes propriedades para os controles inseridos:

Tabela 2

OBJETO PROPRIEDADE

DEFINIÇÃO

formulário Caption Borboleta WindowState 2-Maximized BackColor White ScaleMode 3-Pixel Timer1 Interval 500 (ms) Image1 Name imgAbreAsas Picture BFLY1.BMP Visible False Image2 Name imgFechaAsa

s Picture BFLY2.BMP Visible False Image3 Name imgPrincipal Picture BFLY1.BMP Visible True Command1

Name cmdSair

Caption &Sair

Com as propriedades acima definidas, o formulário deve ficar com o aspecto indicado na figura 7.

c) Escrevendo o código de Borbolet.vbp Anexe os seguintes trechos de código aos controles cmdSair e Timer1:

Private Sub Timer1_Timer() Static CarregaBmp As Boolean imgPrincipal.Move imgPrincipal.Left + 20, imgPrincipal.Top - 5 If CarregaBmp Then imgPrincipal.Picture = imgAbreAsas.Picture ' Mostra a borboleta com as asas abertas Else imgPrincipal.Picture = imgFechaAsas.Picture ' Mostra a borboleta com as asas fecha’das End If CarregaBmp = Not CarregaBmp ' Inverte o valor de CarregaBmp End Sub Private Sub Command1_Click() End End Sub

Page 9: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Figura 7 - O aplicativo Borbolet.vbp

Isto é tudo. Quando o programa for executado (menu Run ou F5), a borboleta se moverá ao longo da tela, abrindo e fechando as asas.

Como funciona ? A mágica toda é feita com o método Move, mas alguns adereços são necessários. O efeito de animação das asas é conseguido com a alternação de duas imagens, como se faz em desenho animado. Em vez de buscarmos tais imagens no disco rígido, o que seria muito lento, optamos por armazená-las em controles de imagem. A cada evento Timer a outra figura é carregada no controle imgPrincipal (que é quem se move). Os controles de imagens imgAbreAsas e imgFechaAsas são mantidos invisíveis durante toda a execução. Note, ainda, que CarregaBmp é uma variável booleana que atua como “flag”, definindo qual imagem deve ser carregada em imgPrincipal. Não se preocupe, por enquanto, com a palavra usada para declarar esta variável (“Static”). Isto significa simplesmente que o valor da variável é preservado entre eventos Timer consecutivos. Nossa borboleta tem um problema: quando ela vai voando e atinge a borda direita do monitor, não há como voltar. Você pode pensar em maneiras de fazer a borboleta voltar ou, melhor ainda, aprisioná-la dentro da janela ? Como dica, você pode usar as seguintes propriedades do formulário: • ScaleWidth: especifica a largura da parte interna do formulário; • ScaleHeight: especifica a altura da parte interna do formulário. Basta verificar o valor destas propriedades e alterar a posição de imgPrincipal.

Page 10: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

d) Salvando o projeto Para salvar o projeto, vá até o menu File e escolha a opção Save Project. Você pode alterar o nome do formulário para frmBorb.frm e o nome do projeto para Borbolet.vbp. Estes serão os nomes dos arquivos em disco. e) Associando um ícone ao projeto Para criar um ícone para o aplicativo, proceda da seguinte maneira: • Defina a propriedade Ícone do formulário principal; • Gere o programa executável (menu File, opção Make EXE file): Borbolet.exe; • No Windows 3.1 ou 3.11, crie um novo grupo e um novo item de programas; • No Windows 95, crie um atalho para Borbolet.exe e arraste-o para a janela principal. Renomeie o atalho como preferir. Agora você poderá executar o programa clicando duas vezes sobre o ícone, sem que seja necessário abrir o Visual Basic antes. Isto ocorre por que o programa executável (.EXE) é independente do VB e pode ser executado em qualquer máquina, desde que você forneça todos os controles. No nosso caso, tais controles seriam: • O arquivo de formulário: frmBorb.frm; • O arquivo executável: Borbolet.exe; • O arquivo vb40016.dll, se você estiver usando a versão de 16 bits; • O arquivo vb40032.dll, se você estiver usando a versão de 32 bits. Os arquivos do tipo vb.dll são “Bibliotecas de Vínculo Dinâmico” (Dynamic Link Libraries), necessárias para que o seu programa VB possa se comunicar com o Windows e devem ser fornecidos sempre que o computador onde for instalado o programa não tiver o VB instalado. Estes arquivos podem ser encontrados no diretório C:\Windows\System. DIFERENÇAS ENTRE AS VERSÕES DE 16 E 32 BITS O Windows 95 e o Windows NT acessam totalmente todos os 32 bits do computador, enquanto o Windows 3.1 e o Windows 3.11 trabalham somente com 16 bits (por causa da “ditadura” do DOS). Por razões de compatibilidade, é possível escolher por instalar somente a versão de 16 Bits do VB. Adicionalmente, é possível instalar a versão de 32 Bits e gerar programas executáveis de 16 Bits, que podem ser executados no Windows 3.1 ou 3.11. Entretanto, se você instalar a versão de 16 Bits, não terá acesso aos novos controles .OCX do VB 4.0, mas somente aos controles .VBX do VB 3.0 .A Microsoft afirma que estes controles .VBX são suportados completamente somente pelo VB 3.0. Minha visão particular é que é melhor esquecer logo essa estória de 16 Bits e partir logo para os 32, a não ser naqueles casos em que seja imperativo que o programa vá rodar sob o Windows 3.1. Além disso, problemas de instalação têm sido detectados na versão de 16 Bits do VB 4.0. DIFERENÇAS ENTRE AS EDIÇÕES DO VISUAL BASIC 4.0

Page 11: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

A Edição mais básica e barata do VB é a Standard (fique longe dela !). A Edição Professional do VB 4.0 apresenta, entre outras, as seguintes melhorias em relação à Standard: • Controles Profissionais: Controles 3D, Animated Button, Gauge, Graph, Key State, BitMap Clipping, MAPI, Multimedia, Communications, Outline, Masked Edit e, Spin Button; • Suporte para ODBC (Open Database Connectivity); • Suporte para SQL (Structured Query Language); • Crystal Reports: aplicativo para gerar relatórios de bancos de dados; • Bitmaps ìcones e Metafiles : mais de 250 arquivos com bitmaps, ícones e figuras prontas para o uso; • Compilador de Help: aplicativo para produzir arquivos de help on-line personalizados. A Edição Enterprise, em adição à Professional, apresenta ainda as seguintes características: • Controles Remote Data Objects (RDO) e Remote Data (RDC): controles para criação de aplicativos cliente-servidor; • Visual SourceSafe: sistema de controle integrado de código-fonte. Ferramenta útil quando um programa é desenvolvido por um equipe, com computadores em rede; • Automação Remota: extensão do OLE (Object Linking and Embedding) para redes. Recomenda-se adquirir, ao menos, a Edição Professional. Esta edição contém tantos controles a mais que a diferença no preço vale a pena. A Edição Enterprise provavelmente só será útil em ambientes empresariais dedicados ao desenvolvimento de software, mas ela provê alguns controles que não estão na Edição Professional, tais como a Barra de Ferramentas e Lista de Imagens.

2. USANDO CONTROLES CONVENÇÕES DE NOMES PARA CONTROLES É sempre bom estabelecer convenções de nomes para objetos do Visual Basic, sob risco de não se saber, no meio de um projeto mais complicado, qual o tipo de um objeto cujo nome é, por exemplo, “dados”. A tabela 3 a seguir apresenta alguns exemplos para os controles mais comuns.

Tabela 3

Controle Nome em Português Prefixo Exemplo Form formulário frm frmAbrir Check Box Caixa de Verificação chk chkLeitura Combo Box Caixa “Combo” cbo cboPortuguês Command Button Botão de Comando cmd cmdCancelar Data Dados dat datLivros Directory List Box Caixa de Diretório dir dirFontes

Page 12: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Drive List Box Caixa de Drives drv drvAlvo File List Box Caixa de Arquivos fil filArquivos Frame Quadro fra fraLíngua Grid Grade grd grdPreços Horizontal scroll bar

Barra de Rolagem Horizontal

hsb hsbVolume

Image Imagem img imgÍcone Label Rótulo lbl lblMensagem Line Linha lin linVertical List Box Caixa de Lista lst lstCEP Menu Menu mnu mnuSalvar OLE OLE ole oleObjeto Option Button Botão de Opções opt optFrancês Picture Box Caixa de Figuras pic picDesenho Shape Forma (geométrica) sha shaCírculo Text Box Caixa de Texto txt txtEntrada Timer Temporizador tmr tmrAlarme Vertical Scroll Bar Barra de Rolagem Vertical vsb vsbTaxa

O BLOCO DE NOTAS BLOCO.VBP Processamento de texto é uma das funções básicas dos computadores e o VB oferece algumas ferramentas poderosas relacionadas a texto. Nosso objetivo inicial é projetar um Bloco de Notas simplificado que funcione a partir da caixa de textos do Visual Basic e que disponha dos seguintes recursos:

• Edição básica: inserção e exclusão de texto, movimentação do cursor, etc.;

• Seleção de texto; • Cortar, copiar e colar textos.

Futuramente, nosso Bloco de Notas se transformará em um editor mais poderoso, capaz de abrir e salvar arquivos do tipo texto e de funcionar também a partir de menus. O Bloco de Notas usará as seguintes propriedades de controles do Visual Basic:

• Text: string que contém o texto em uma Caixa de Texto. O tamanho máximo é 64 kBytes.

• Enabled: se for true, o controle é disponível; • Default: se for true, o controle recebe o foco quando o formulário

for ativado. • SelText: string que contém o texto selecionado em uma Caixa de

Texto.

Além disso, vamos precisar do método SetFocus, cuja sintaxe é a seguinte:

Objeto. Setfocus

Page 13: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

O “Foco” é uma propriedade comum a todos os controles do VB. Apenas um objeto pode ter o foco de cada vez e apenas objetos visíveis podem receber o foco. Geralmente, o objeto que tem o foco é diferenciado dos outros por uma legenda ou título realçado. Em tempo de execução, o usuário define o foco clicando sobre os objetos ou usando a tecla TAB. O método Setfocus também define o foco para um objeto em tempo de execução, mas de maneira automática. Se ocorrer uma tentativa de definir o foco em um objeto invisível, um erro de execução será gerado. a) Criando a interface de BLOCO.VBP Inicie um novo projeto e desenhe, no formulário, uma Caixa de Texto e quatro botões de comando, conforme ilustrado na figura 8 a seguir.

Figura 8 - Objetos de BLOCO.VBP

b) Definindo as propriedades Defina as propriedades dos controles de acordo com a tabela a seguir.

Tabela 4

OBJETO PROPRIEDADE DEFINIÇÃO formulário WindowState Maximized Caixa de Texto Name txtBloco Text (Vazio) Multiline True ScrollBars Vertical Botão de Comando 1 Name cmdCortar Caption &Cortar

Page 14: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Botão de Comando 2 Name cmdColar Caption Co&lar Botão de Comando 3 Name cmdApagar Caption &Apagar Botão de Comando 4 Name cmdSair Caption &Sair

Note que a caixa de textos suporta textos com várias linhas, por causa da propriedade “Multiline” e tem uma barra de paginação vertical. Esta barra de paginação não é um objeto adicional, mas faz parte da caixa de textos. O VB cuida de toda a automação necessária para a rolagem do texto. A característica de edição em linhas múltiplas seria perdida caso definíssemos também uma barra de paginação horizontal para a caixa. É por esta razão que estamos usando apenas uma barra de paginação vertical. c) Escrevendo o código Neste aplicativo iremos precisar de uma variável Public3, ou seja, uma variável que seja “vista” por todas os procedimentos de todos os objetos do aplicativo. Estas variáveis só podem ser declaradas dentro de módulos. Portanto, a primeira coisa que devemos fazer é inserir um módulo, o que pode ser feito no menu Insert|Module. A seguir, escreva a seguinte linha dentro da seção “General - Declarations”: Public CortaTexto As String O primeiro botão a ser implementado é o “Apagar”. Este botão apagará todo o texto da caixa de texto, indiscriminadamente. Tudo o que temos a fazer é “anular” a propriedade text da caixa de textos. Para tanto, dê dois cliques sobre o botão apagar e escreva o seguinte código:

Private Sub cmdApagar_Click() txtBloco.Text = "" txtBloco.SetFocus End Sub

Após apagar o texto, o que é feito na primeira linha, devemos jogar o foco novamente na caixa de textos, pois após clicar o botão “Apagar” o foco ficou com ele. Seria desagradável se o usuário tivesse que clicar na caixa de textos toda vez que usasse o botão “Apagar”. O computador não se importa de prestar este pequeno favor. O botão “Sair” também é fácil e o código é idêntico ao do aplicativo Borbolet.vbp, ou seja:

Private Sub cmdSair_Click()

3 Variáveis “Public”, até a versão 3.0, eram denominadas “Globals”. Esta última palavra ainda é aceita

nas declarações, mas está definitivamente fora de moda.

Page 15: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

End End Sub

Os procedimentos para os botões “Cortar” e “Colar” requerem um raciocínio adicional. O que desejamos fazer é cortar um trecho de texto, provavelmente, mas não necessariamente, para ser colado em algum outro lugar. Logo, será necessário armazenar o texto recortado em alguma variável temporária, o que será conseguido com a variável CortaTexto. Clique sobre o botão “Cortar” e escreva o seguinte trecho:

Private Sub cmdCortar_Click() CortaTexto = txtBloco.SelText txtBloco.SelText = "" txtBloco.SetFocus End Sub

A primeira linha armazena o conteúdo do texto selecionado na variável CortaTexto. A segunda apaga o texto selecionado, dando um efeito de que o texto foi recortado. Finalmente, a última linha joga o foco novamente na caixa de textos. A prodecure para o botão “Colar” atua de modo inverso a “Cortar”, ou seja, devemos recuperar o texto armazenado em CortaTexto e atribuí-lo à propriedade SelText da caixa de textos, conforme descrito a seguir.

Private Sub cmdColar_Click() txtBloco.SelText = CortaTexto txtBloco.SetFocus End Sub

O nosso “mini-editor” já funciona bem, mas algumas melhorias são necessárias. Primeiro, caso o usuário queira redimensionar o formulário, os botões e a caixa de texto não o acompanharão. Este problema pode ser contornado por meio do evento Resize do formulário. Este evento ocorre sempre que o formulário é redimensionado, seja por meio do mouse, seja por meio dos ícones de maximizar e minimizar. Resize também ocorre quando o formulário é exibido pela primeira vez, na entrada do programa. O que devemos fazer é ajustar a caixa de texto automaticamente no formulário cada vez que este for redimensionado, o que pode ser conseguido com alguns cálculos (estes cálculos são comuns em procedures de dimensionamento). Clique o formulário duas vezes, em tempo de projeto, e procure o evento Resize na caixa “Drop-Down” com o nome “Proc:”. Nesta procedure, escreva o código abaixo.

Private Sub Form_Resize() If frmBloco.Width > 50 then txtBloco.Top = 0 txtBloco.Left = 0 txtBloco.Width = ScaleWidth txtBloco.Height = ScaleHeight - cmdCortar.Height cmdCortar.Left = 0

Page 16: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

cmdColar.Left = cmdCortar.Width cmdApagar.Left = 2 * cmdCortar.Width cmdSair.Left = ScaleWidth - cmdSair.Width cmdCortar.Top = ScaleHeight - cmdCortar.Height cmdColar.Top = ScaleHeight - cmdColar.Height cmdApagar.Top = ScaleHeight - cmdApagar.Height cmdSair.Top = ScaleHeight - cmdSair.Height End If End Sub

Estudando a procedure de Resize com cuidado você verá que estamos simplesmente alterando valores de propriedades dos controles (em VB isto é feito com muito mais freqüência do que você pode imaginar). As primeiras quatro linhas ajustam a caixa de textos propriamente dita, de forma que sobre espaço em baixo para os botões (é por isso que a altura do botão Cortar - cmdCortar.Height - é descontada). As linhas seguintes ajustam a posição de todos os botões, atuando sobre as propriedades Left e Top. Como exercício, fica a tarefa de descobrir qual a finalidade do comando If ... Then. EVENTOS DE TECLA E UM RELÓGIO DESPERTADOR O VB 4.0 suporta diversas funções e eventos para manipulação do teclado. O reconhecimento de teclas pressionadas pode ser feito por meio dos seguintes eventos:

• KeyDown - ocorre quando uma tecla é pressionada; • KeyUp - ocorre quando uma tecla é liberada; • KeyPress - ocorre quando uma tecla é pressionada.

Os eventos KeyDown e KeyUp passam o código ANSI da tecla acionada, enquanto KeyPress passa o código ASCII. KeyDown e KeyUp são mais sofisticados do que KeyPress e detectam teclas que KeyPress não detecta, tais como: combinações das teclas Shift, Ctrl e Alt; teclas de setas; teclas de funções; PageUp e PageDown. A sintaxe para uma procedure do evento KeyPress é mostrada abaixo:

Private Sub controle_KeyPress (KeyAscii As Integer) [Bloco de código] End Sub

KeyAscii é o código ASCII da tecla pressionada. Controle é o controle do Visual Basic que usamos para capturar o evento KeyPress. Os eventos KeyDown e KeyUp têm a mesma sintaxe, mostrada abaixo.

Page 17: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Private Sub controle_KeyDown(KeyCode As Integer, Shift As Integer) [Bloco de código] End Sub

KeyCode é o código ANSI da tecla acionada. Shift é um campo de bits que corresponde ao estado das teclas Shift, Ctrl e Alt no momento do evento, de acordo com a tabela 5 a seguir.

Tabela 5

Valor de Shift Significado 1 “Shift” pressionado 2 “Ctrl” pressionado 4 “Alt” pressionado

Dentro de uma procedure do evento KeyPress, quando fazemos KeyAscii = 0 o evento será anulado e a procedure será encerrada. O mesmo ocorre para os eventos KeyDown e KeyUp no que diz respeito ao parâmetro KeyCode.

O parâmetro Shift também admite combinações. Por exemplo, Shift = 6

corresponde às teclas Ctrl e Alt pressionadas simultaneamente. O programa de relógio-despertador utiliza, ainda, algumas funções do Visual Basic, descritas abaixo.

• Time$: retorna a hora do sistema.; • Chr$(): converte um código ASCII para um string; • Asc():retorna o código ASCII do primeiro caractere de um string.

Para iniciar o projeto do Relógio Despertador, posicione os seguintes controles em um formulário, conforme a figura 9:

• Dois Rótulos; • Dois Botões de Opção; • Um Timer.

Um rótulo, ou label, é basicamente um controle não editável para saída de dados. Deve ser usado em substituição à caixa de texto sempre que não for necessário que o usuário edite o texto. Estaremos usando dois rótulos neste

projeto: um deles servirá de “display” para mostrar as horas. Este controle deve ser um rótulo, pois não queremos, evidentemente, que o usuário edite a hora atual !; o outro rótulo terá uma finalidade mais prosaica, servindo apenas para indicar a função da caixa de textos. Rótulos constituem, portanto, um maneira fácil de se imprimir textos no formulário. Para modificar o texto em tempo de execução, mude a propriedade “caption” (rótulos não têm a propriedade “text”).

Os botões de opção, algumas vezes denominados “botões de rádio”, são semelhantes àqueles botões push-button encontrados em vários tipos de

Page 18: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

aparelhos de som. A finalidade é convidar o usuário a escolher apenas uma opção dentre várias. É uma boa prática de programação usar botões de opção dentro de uma estrutura denominada “array de controles”, isto é, os controles tem o mesmo nome, mas índices diferentes. Para criar um array de controles proceda da seguinte forma: insira o primeiro controle e mude o nome. A seguir, clique sobre o controle e use os comandos do menu Editar para copiar o controle e colá-lo novamente no formulário. Uma mensagem será gerada pelo VB, avisando que já existe um controle com o mesmo nome e perguntando se você quer criar um array. Responda que sim e repita a operação tantas vezes quantas forem necessárias. O controle de timer tem a propriedade Interval ajustada para 1000 ms, ou 1 s, pois desejamos que a hora seja mostrada no display a intervalos de 1 segundo. A tabela a seguir mostra as definições dos objetos de Alarme.vbp.

Tabela 6

OBJETO PROPRIEDADE

DEFINIÇÃO

formulário Nome frmAlarme Rótulo Nome

Legenda Fonte

lblDisplay (vazio) MS Sans Serif, 24, negrito

Caixa de Texto Nome txtAjuste

Tabela 6 (contiuação)

OBJETO PROPRIEDADE

DEFINIÇÃO

Botão de Opção(0)

Nome Índice

optOpção 0

Botão de Opção(1)

Nome Índice

optOpção 1

Timer Intervalo 1000

Page 19: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Figura 9 - O formulário frmAlarme

Para começar a inserção do código de optOpção, clique duas vezes em um dos botões de opção e digite o seguinte trecho:

Private Sub optOpção_Click(Index As Integer) If (Index = 1) Then AlarmOn = True Else AlarmOn = False End If End Sub

AlarmOn é uma variável Public booleana que definirá se o som de alarme deve estar ligado ou desligado. Para declarar esta variável, insira um módulo de programação (menu Insert|Module) e digite a seguinte linha na seção General-Declarations:

Public AlarmOn As Integer A seguir, salve o módulo com o nome Alarme.bas. A procedure optOpções_Click é chamada cada vez que o usuário clica em qualquer um dos botões de opção. Index é um parâmetro passado para a procedure, correspondendo ao índice do botão que foi acionado (é assim que o VB fica sabendo qual controle foi acionado dentro de um array). Assim, se o usuário tiver clicado no segundo botão (On, índice 1), o valor da variável AlarmOn será verdadeiro (true). Caso contrário (Else), o valor será falso. O próximo passo é escrever o código de validação de entrada da caixa de texto txtAjuste. Não queremos que o usuário escreva qualquer coisa nesta caixa. Somente números no formato de data devem ser permitidos. Para realizar a validação, capturamos o evento KeyPress da caixa de texto e verificamos se o caractere digitado é aceitável. Por exemplo, apenas números entre zero e nove podem ser aceitos, assim como o sinal de dois pontos para

Page 20: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

separar horas de minutos. Clicando duas vezes sobre txtAjuste, escreva o seguinte trecho de código:

Private Sub txtAjuste_KeyPress(KeyAscii As Integer) Key$ = Chr$(KeyAscii) If ((Key$ < "0" Or Key$ > "9") And Key$ <> ":") Then Beep KeyAscii = 0 End If End Sub

A primeira linha transforma o parâmetro KeyAscii de inteiro para string. A cláusula de verificação If ... Then verfica se o caractere digitado é aceitável. Se for, a procedure é encerrada e a caixa de texto conterá, deste modo o novo caractere. Caso contrário, o evento KeyAscii é desabitado e um bip soa. Tudo se passa como se o usuário não tivesse digitado caractere algum. Esta rotina de validação é simples e exclui teclas como “del” e “backspace”, que podem ser incluídas desde que saibamos o código ASCII de cada uma delas. O próximo código pertence ao objeto Timer. Devemos simplesmente mostrar a hora atual, com auxílio da função Time$. Além disso, caso a variável AlarmOn seja verdadeira, devemos soar um bip, mostrando que o alarme está ativado. Naturalmente, esta última condição só deve ocorrer se a hora ajustada em txtAjuste for maior do que a hora atual, conforme mostra a rotina abaixo.

Private Sub Timer1_Timer() If (Time$ > txtAjuste.Text And AlarmOn) Then Beep End If lblDisplay.Caption = Time$ End Sub

Resumindo, o funcionamento do alarme é simples. A cada segundo é gerado um evento de Timer e, capturando este evento, verificamos se o tempo ajustado em txtAjuste é maior ou menor do que o tempo do display lblDisplay. Se for maior, e se o botão de opção estiver na posição “Ligado”, fazemos o alto-falante emitir um “bip” a cada segundo. Cada vez que ocorre um evento Timer a função Time$ é usada para atualizar a hora em lblDisplay. O som gerado pelo alarme não é muito emocionante e poderíamos pensar em tocar uma música de qualquer espécie (que tal aquela musiquinha do gás ?). Linguagens convencionais escritas para DOS resolviam este problema fornecendo funções que faziam soar uma nota musical de freqüência escolhida pelo programador. Trabalhando com a freqüência e duração de cada nota era possível compor trechos de musicas (nada de acordes, portanto). O VB trata o assunto de maneira muito mais eficiente e moderna, executando arquivos .wav, desde que se tenha uma placa de som instalada. Entretanto arquivos .wav são assunto da ferramenta multimídia do VB e ficarão para mais tarde. Por enquanto ficamos apenas com o bip, por mais monótono que seja.

Page 21: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

NOTA SOBRE OS CÓDIGOS ASCII, ANSI E UNICODE O ASCII é um código de caracteres de 8 bits (1 byte) desenvolvido na época em que só o DOS existia. Com estes 8 bits não é possível representar mais do que 256 caracteres, mas no início as coisas eram mais simples e memórias de computador mais caras (é por estas questões econômicas, entre outras coisas, que alguém teve a fantástica idéia de usar apenas dois dígitos para representar anos, sem se lembrar do que aconteceria quando chegássemos ao ano 2000). O ANSI também é um código de 8 bits, mas inclui alguns caracteres não suportados pelo ASCII. O Windows 3.1 usava o ANSI como padrão, suportando também o ASCII. O Unicode é um código de 16 bits desenvolvido pela International Standards Organization (ISO), com possibilidade para 65.536 caracteres diferentes. Este espaço é suficiente para acomodar todos os caracteres usados no Usinas atualmente, incluindo línguas antigas como sânscrito e hieroglifos egípcios. Também existe espaço vago suficiente para que não se precise preocupar com isto durante mais algumas centenas de anos. O Unicode é totalmente suportado pelo Windows 95 e pelo Windows NT, convertendo-se caracteres do ANSI para o Unicode e vice-versa. Os caracteres são armazenados em ANSI pelo sistema operacional e manipulados em Unicode pelo Visual Basic. ERROS COMUNS EM PROGRAMAÇÃO

FORMULÁRIOS MUITO CARREGADOS O Visual Basic disponibiliza uma quantidade fantástica de controles e é grande a tentação de usar todos em um só formulário. Esta estória é semelhante à de um grande jornal brasileiro que, certa vez, completou a instalação de um parque gráfico super-moderno. No dia seguinte, a primeira página do jornal continha reportagens escritas em todas as cores e fontes disponíveis nos equipamentos, como se os jornalistas não tivessem resistido à tentação de fazer todas as experiências possíveis de um só vez. O Visual Basic oferece mais de uma solução para este problema da “densidade gráfica”, tais como controles giratórios (spin buttons), caixas “drop-down”, páginas “tab-strip” e outros. A melhor ferramenta, contudo, é uma boa programação gráfica dos formulários. Outra maneira de evitar o carregamento dos formulários é usar controles carregados dinamicamente, isto é, à medida que o programa vai sendo executado.

Page 22: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Lembre-se, o uso excessivo de controles não será visto como um sinal de que o programador conhece profundamente a linguagem, mas sim como um sinal de amadorismo.

FALTA DE IDENTAÇÃO E ESPAÇAMENTO O Visual Basic não exige que você idente o código e compilará trechos de código identados ou não exatamente da mesma maneira. Ainda assim, você descobrirá que a identação é uma ferramenta poderosa na documentação de programas. Por exemplo, compare os seguintes trechos.

Public Sub FileName() If (Right$(frmSave.Dir1.Path, 1) = "\") Then frmSave.txtFileName.Text = frmSave.Dir1.Path + frmSave.File1.FileName Else frmSave.txtFileName.Text = frmSave.Dir1.Path + "\" + frmSave.File1.FileName End If End Sub Public Sub FileName() If (Right$(frmSave.Dir1.Path, 1) = "\") Then frmSave.txtFileName.Text = frmSave.Dir1.Path + frmSave.File1.FileName Else frmSave.txtFileName.Text = frmSave.Dir1.Path + "\" + frmSave.File1.FileName End If End Sub

É evidente que o primeiro trecho, embora contenha as mesmas instruções do segundo é muito mais fácil de ser lido. Facilidade de leitura não é um preciosismo, mas sim um instrumento de depuração muito usado. Infelizmente, linguagens mais antigas, especialmente linguagens para MainFrame4, não permitiam a identação nem a presença de linhas em branco. Pior para elas !

USAR NOMES LONGOS Outra prática desaconselhável é usar nomes longos para variáveis e constantes. Alguns desenvolvedores, em vez de chamar um simples botão de cmdOK, preferem escrever cmdOKformulárioFechaArquivoSemSalvar. Esta prática é totalmente desnecessária e dificulta enormemente a leitura (se bem 4 Se você é um “micreiro”, talvez fique espantado em saber que os mainframes ainda existem e que, mais incrível

ainda, ainda existem programadores que só programam para mainframes. Eles estão tendo muito trabalho atualmente

para minimizar os estragos futuros do “bug milênio”, quando todos os computadores, na virada do século, mudarão as

datas de 99 para 00 (2000).

Page 23: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

que eu tenha a impressão que a intenção destes programadores é justamente esta.).

PROCEDIMENTOS LONGOS Sempre é possível quebrar um procedimento longo em outros menores, aumentando a reusabilidade do código e facilitando o entendimento. Além disso, procedimentos muito longos tornarão o programa susceptível a estouro de memória.

3. MENUS UM EDITOR DE TEXTOS GERENCIADO POR MENUS

O Visual Basic disponibiliza uma excelente ferramenta para projeto de menus: o “Menu Design Window”, ou Janela de Projeto de Menus, que pode ser acessada com Ctrl-E ou por meio do botão direito do mouse. Projetar um menu em VB não é mais difícil do que trabalhar com outros controles. Entretanto, alguns cuidados são necessários para evitar conflitos entre itens de menu. A Janela de Projeto de Menus é mostrada na Figura 10 a seguir.

Figura 10 - A Janela de Projeto de Menus

As propriedades de itens de menus são as seguintes:

Page 24: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

• Checked: se for true, uma marca de verificação aparecerá ao lado do item de menu;

• Enabled: se for true, o item de menu estará disponível; • Visible: se for true, o item estará visível.

Estas propriedades podem ser alteradas em tempo de execução ou de projeto. É, ainda, possível anexar teclas de atalho a cada item de menu. A maneira mais fácil de trabalhar com menus é construir “Arrays de Menus”, ou seja, os diferentes sub-itens de um mesmo menu serão diferenciados apenas por um índice, tendo o mesmo nome. A tabela 7 abaixo exemplifica esta construção para o caso de um menu chamado “Arquivo”.

Tabela 7

Legenda Nome Índice Arquivo mnuArquivo - --- Abrir mnuArquivoItem 0 --- Salvar mnuArquivoItem 1 --- - mnuArquivoItem 2 --- Sair mnuArquivoItem 3

O item principal do menu não tem índice. Os sub-itens são diferenciados por índices, tendo o mesmo nome e sendo “indentados” em relação ao item principal. O Visual Basic admite até cinco sub-itens, mas este limite raramente é usado. A identação dois itens é feita por meio das setas da Janela de Projeto de Menus. A barra de separação é criada com um hífen e não admite código associado. O índice, entretanto, é obrigatório. Podemos usar menus para implementar uma versão aperfeiçoada do nosso bloco de notas. Em vez de usarmos botões de comando, usaremos itens de menus para realizar as operações. Inicie um novo projeto, pressione Ctrl-E para entrar na Janela de Projeto de Menus e adicione os itens de menu conforme a tabela abaixo.

Tabela 8

Legenda Nome Índice Tecla de Atalho

Arquivo mnuArquivo - - --- Abrir mnuArquivoIte

m 0 Ctrl + F12

--- Salvar mnuArquivoItem

1 Shitf + F12

--- - mnuArquivoItem

2 -

--- Sair mnuArquivoItem

3 Ctrl + Z

Editar mnuEditar - -

Page 25: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

--- Cortar mnuEditarItem 0 Ctrl + X --- Colar mnuEditarItem 1 Ctrl + V --- Apagar mnuEditarItem 2 Ctrl + P Fontes mnuFontes - - --- Courier mnuFontesIte

m 0 -

--- Helvética

mnuFontesItem

1 -

--- Roman mnuFontesItem

2 -

--- Modern mnuFontesItem

3 -

--- Script mnuFontesItem

4 -

--- Symbol mnuFontesItem

5 -

--- System mnuFontesItem

6 -

--- Terminal

mnuFontesItem

7 -

Após terminar o menu, mude a legenda do formulário para “Editor”. O resultado final deve ser semelhante ao da Figura 11.

Figura 11 - Um editor de textos baseado em menus

O menu Editar contém basicamente o mesmo código que, antes, estava nos botões do bloco de notas. Quando um menu é construído a partir de arrays, a maneira mais fácil de escrever o código é usando o comando “Select ...Case”. Para iniciar a programação, insira uma caixa de texto do formulário, renomeando-a para txtEditor e abra a janela de código do menu mnuEditarItem, escrevendo as seguintes linhas:

Page 26: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Private Sub mnuEditarItem_Click(index As Integer) Select Case index Case 0 'Cortar CortaTexto = txtEditor.SelText txtEditor.SelText = "" txtEditor.SetFocus Case 1 'Colar txtEditor.SelText = CortaTexto Case 2 'Apagar txtEditor.Text = "" txtEditor.SetFocus End Select End Sub

Note que o núcleo do código é idêntico ao utilizado no Bloco de Notas. A utilização do comando Select ... Case certamente facilita as coisas e funciona da seguinte maneira: quando um item do menu mnuEditar é selecionado, o evento clique passa o parâmetro Index, que corresponde ao item selecionado. A estrutura de decisão Select ... Case verifica o valor de Index e executa imediatamente o bloco de comandos associado, pulando a seguir para a linha End Select. O comando Select ... Case não verifica todos os possíveis valores de Index, sendo muito mais rápido do que uma estrutura correspondente construída com comandos If ... Then ... Else. O código do menu Fontes pode ser implementado rapidamente. A diferença é que estaremos usando a propriedade Checked dos menus, para identificar qual a fonte atualmente selecionada.

Private Sub mnuFontesItem_Click(index As Integer) Select Case index Case 0 txtEditor.FontName = "Courier" Case 1 txtEditor.FontName = "Helv" Case 2 txtEditor.FontName = "Roman" Case 3 txtEditor.FontName = "Modern" Case 4 txtEditor.FontName = "Script" Case 5 txtEditor.FontName = "Symbol" Case 6 txtEditor.FontName = "System" Case 7 txtEditor.FontName = "Terminal" End Select For Contador = 0 To 7

Page 27: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

mnuFontesItem(Contador).Checked = False Next loop_index mnuFontesItem(Contador).Checked = True End Sub

Inicialmente, o comando Select ... Case é usado para atribuir à propriedade “FontName” da caixa de textos a fonte escolhida pelo usuário. Depois, um pequeno laço For ... Next remove as marcas de verificação de todos os sete itens de menu (porque não sabemos qual delas está ativa). Finalmente, colocamos uma marca de verificação no item de menu escolhido atualmente. Está não é a única maneira de trabalhar com marcas de verificação e alguém poderia argumentar que não é a mais rápida (por causa do laço For .. Next). Sinceramente, para computadores superiores a um Pentium 90 isto não faz diferença ... .Entretanto, é verdade que poderíamos memorizar o item escolhido anteriormente, fazendo uso de uma variável do tipo Integer, e então remover a barra de verificação somente deste item. Esta pequena modificação fica como lição de casa. Os comandos para o menu mnuArquivoItem são mais complicados e exigem que trabalhemos com arquivos e janelas de diálogo, o que será visto nas próximas seções. CONSTRUINDO UMA CAIXA DE DIÁLOGO Uma das maneiras de se abrir ou salvar um arquivo é mostrar uma caixa de diálogo onde o usuário escolhe o nome do arquivo e o caminho desejado. Uma caixa de diálogo personalizada em Visual Basic é basicamente um formulário adicional, inserido através do menu Insert...Form. Um aplicativo em Visual Basic pode ter até 264 formulários, mas é raro que se precise de tantos. Caixas de diálogo podem ser modais ou não modais:

• Modal: a janela deve ser fechada (escondida ou descarregada) antes que o aplicativo possa continuar a execução.

• Não Modal: a execução do aplicativo continua, mesmo com a janela aberta.

Janelas modais são bastante comuns em situações em que devemos evitar que o usuário faça qualquer coisa em outras janelas enquanto uma operação importante está sendo realizada. Por exemplo, quando você escolhe o menu File | Save File As..., no VB 4.0, a caixa de diálogo é aberta modalmente na tela. Se o usuário tentar dar um clique fora da caixa de diálogo, um som de erro será emitido. Embora caixas de diálogo modais tenham suas vantagens, algumas vezes você não poderá usá-las, pois existem situações em que devemos ter mais de uma janela aberta ao mesmo tempo. O ambiente de trabalho do VB é um exemplo de várias janelas não modais abertas ao mesmo tempo, possibilitando que o usuário alterne entre elas sem ter de fechá-las antes.

Page 28: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Os métodos e comandos a seguir podem ser usados para carregar e descarregar caixas de diálogo.

• Método Show: Carrega formulários na memória e os mostra na tela. Para carregar formulários modais, escreva: Nome_do_Form.Show 1. Para carregar formulários não modais, escreva Nome_do_Form.Show .

• Método Hide: esconde (apaga da tela) uma janela, mas não a

descarrega da memória. Sintaxe: Nome_do_Form.Hide.

• Comando Load: carrega um formulário na memória, mas não o mostra na tela. Sintaxe: Load Nome_do_Form.

• Comando UnLoad: descarrega um formulário da memória e da tela.

Sintaxe: UnLoad Nome_do_Form. Janelas previamente carregadas na memória podem ser mostradas fazendo-se a propriedade Visible ser verdadeira. Da mesma forma, janelas carregadas na memória podem ser escondidas fazendo-se Visible falsa. Quando uma janela é descarregada da memória todos os seus controles, variáveis locais e procedures tornam-se inacessíveis. Vale salientar que formulários que tenham sido apenas escondidos, mas não descarregados, continuarão presentes, ocupando memória. Entretanto, poderão ser acessados muito mais rapidamente da próxima vez em que forem necessários, haja vista que não precisarão ser recuperados do disco. A figura 12 mostra algumas propriedades de formulários que podem ser úteis na personalização, bem como para evitar que o usuário “faça coisas que não deve”, tais como maximizar ou minimizar o formulário ou acessar a Control Box.

• ControlBox: Se for false, eliminará a caixinha com o menu ControlBox, que contém comandos como Restaurar, Mover, Maximizar, Minimizar e Fechar. A tecla de atalho Alt-F4, usada para fechar janelas, também ficará indisponível;

• MaxButton: Se for false, eliminará o botão de maximização de janela; • MinButton: Se for false, eliminará o botão de minimização de janela; • BorderStyle: Permite as seguintes definições para a borda do

formulário: Fixed Single, Fixed Double e Sizable. Control Box Caption (Legenda) MinButton MaxButton

Page 29: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

BorderSt

yle

Figura 12 - Propriedades de formulários

Estas propriedades são úteis na personalização de formulários, mas devem ser usadas com cuidado. O usuário deve ter ao menos uma opção de fechar a janela antes de recorrer às derradeiras teclas Ctrl + Alt + Del ... Uma recomendação útil é que você pense, antes de mais nada, em opções de saída do formulário, pois é muito fácil esquecer delas depois. Botões de comando também têm algumas propriedades que ajudam na personalização de caixas de diálogo.

• Default: O botão que tiver Default = true será acionado quando o usuário pressionar Enter;

• Cancel: O botão que tiver Cancel = true será acionado quando o usuário pressionar Esc.

A JANELA ABRIR ARQUIVO O menu mnuArquivoItem apresenta dois sub-itens que requerem caixas de diálogos. Veremos mais tarde que o VB oferece recursos para implementar rapidamente caixas de diálogo do tipo Abrir Arquivo, Salvar Arquivo, Imprimir, etc., mas é interessante saber como funcionam alguns controles relacionados a arquivos. Além disso, este tipo de procedimento é tão geral que podemos construir caixas e deixá-las prontas para serem usadas em vários projetos diferentes, mudando apenas o código associado. Para iniciar uma nova janela, escolha o menu Insert | Form, renomeando o formulário para frmAbrir. Desenhe no formulário os seguintes controle: dois Botões de Comando, três Rótulos, uma Caixa de Lista de Arquivos (FileListBox), uma Caixa de Lista de Diretórios (DirListBox) e uma Caixa de Lista de Unidades (DriveListBox). As funções destes três últimos controles são descritas a seguir: Caixa de Lista de Arquivos: este controle localiza e lista, em tempo de execução, os arquivos do diretório especificado pela propriedade Path. O

evento padrão deste controle é “Click”;

Page 30: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Caixa de Lista de Diretórios: lista os caminhos e diretórios da unidade selecionada em tempo de execução. O evento padrão é “Change”, que ocorre sempre que o usuário alterar o caminho com o mouse ou a teclas de direção; Caixa de Lista de Unidades: possibilita que o usuário selecione uma unidade (drive) em tempo de execução. O evento padrão é “Change”.

Estes três controles, uma vez posicionados no formulário, são inicialmente independentes. Para torná-los interconectados devemos escrever algumas linhas de código, baseadas na troca de informações que deve haver entre eles, conforme a figura 13 a seguir.

Figura 13 Tudo começa quando o usuário seleciona uma unidade em Drive1, gerando um evento change. Devemos capturar este evento e atribuir o caminho (Path) selecionado à propriedade Path da caixa de lista de diretórios (Dir1). A atribuição desta propriedade gerará um evento change em Dir1. Novamente, este evento será capturado para repassar o caminho correto para File1. Para implementar esta automação na janela Abrir Arquivo, escreva os seguintes trechos de código nos objetos correspondentes:

Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub

Nada muito complicado, não é mesmo ! O formulário frmAbrir, finalmente, pode ser configurado de modo a ficar como na figura 14. Falta apenas escrever os códigos para os botões cmdOK e cmdCancelar. O mais simples deles é o botão cmdCancelar, cuja procedure para o evento clique deve apenas descarregar o formulário sem realizar ação alguma, conforme mostrado abaixo.

Private Sub cmdCancelar_Click()

Drive1 Dir1 File1

Path Path

Page 31: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Unload frmAbrir End Sub

Figura 14 - O formulári frmAbrir

A procedure para o botão cmdOk é um pouco mais complicada, mas de utlização geral. Antes de mais nada, devemos compor o nome do arquivo a ser aberto a partir das informações de Dir1.Path e File1.FileName. Depois, devemos abrir este arquivo com o comando Open. A procedure completa é mostrada a seguir.

Private Sub cmdOK_Click() If (Right$(Dir1.Path, 1) = "\") Then FileName$ = Dir1.Path + File1.FileName Else FileName$ = Dir1.Path + "\" + File1.FileName End If Open FileName$ For Input As #1 frmEditor.txtPad.Text = Input$(LOF(1), #1) Close #1 Unload frmLoad End Sub

A primeira linha verifica se o diretório é o raiz. Se for, o caminho completo deve ser formado com a concatenação direta dos strings Dir1.Path e File1.FileName. Caso contrário, devemos inserir uma barra invertida (\) para compor o caminho corretamente. A última linha descarrega o formulário da memória. A sintaxe completa do comando Open será vista na próxima seção. A JANELA SALVAR COMO

Page 32: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

A janela Salvar Como não é muito diferente da janela Abrir Arquivo. A única diferença é que devemos inserir uma caixa de texto onde o usuário pode escrever o nome do arquivo diretamente ou formá-lo a partir dos controles de unidade, drive e arquivo. Insira um novo formulário e desenhe os objetos mostrados na figura 15, renomeando a caixa de textos para txtFileName. A implementação do código será um pouco diferente, mostrando que existe, frequentemente, mais de uma maneira de fazer as coisas. A principal diferença é que não iremos compor o nome do arquivo somente quando o usuário clicar o botão OK, mas sim a cada evento gerado pelos controles de arquivos. Entretanto, seria desnecessário escrever o mesmo trecho de código em três procedures diferentes, nos controles Drive1, Dir1 e File1. O melhor é criar uma procedure interna, que não depende de eventos, e chamá-la quando necessário. Para criar esta procedure, insira um módulo de programação, por meio do menu Insert | Module. A seguir, clique no menu Insert | Procedure e chame-a de FileName. Esta será uma procedure do tipo Public Sub, o que significa que ela será acessível por todos os formulários e módulos do projeto. Dentro do corpo de FileName escreva o seguinte código:

Public Sub FileName() If (Right$(frmSave.Dir1.Path, 1) = "\") Then frmSave.txtFileName.Text = frmSave.Dir1.Path + frmSave.File1.FileName Else frmSave.txtFileName.Text = frmSave.Dir1.Path + "\" + frmSave.File1.FileName End If End Sub

O que precisamos fazer, agora, é chamar a procedure FileName sempre que o usuário mudar um dos controles do caminho final. Escreva os seguintes trechos de código nos objetos correspondentes:

Private Sub Drive1_Change() Dir1.Path = Drive1.Drive Call FileName End Sub Private Sub Dir1_Change() File1.Path = Dir1.Path Call FileName End Sub Private Sub File1_Click() Call FileName End Sub

Note que o comando “Call” serve para chamar a procedure FileName. Poderíamos escrever simplesmente “FileName”, mas é sempre melhor, por

Page 33: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

questões de documentação de programa, usar o comando Call. Veremos mais sobre procedures internas na seção seguinte.

Figura 15 - o formulário frmSalvar

Agora, tudo que falta é escrever o código para carregar os formulários frmAbrir e frmSalvar, quando requerido pelo usuário. Isto é feito na procedure associada ao menu mnuArquivoItem, conforme abaixo.

Private Sub mnuArquivoItem_Click(index As Integer) Select Case index Case 0 'Abrir frmAbrir.Show Case 1 'Salvar frmSalvar.Show Case 2 'Separador Case 3 'Sair End End Select End Sub

Como anteriormente, estamos usando o comando Select Case para estruturar a chamada de comandos. O método Show está sendo usado para abrir os formulários frmAbrir e frmSlvar modalmente. O índice 2 corresponde à barra separadora do menu e não admite código, pois esta barra não executa o evento clique. O editor está quase pronto. Você pode implementar, no evento Resize do formulário frmEditor, o mesmo código do Bloco de Notas. Melhorias

Page 34: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

adicionais envolvem o desenvolvimento de um menu flutuante e o uso do “ClipBoard”. MENUS FLUTUANTES (POP-UP) Menus flutuantes são aqueles que aparecem quando clicamos o botão direito do mouse sobre um objeto. O Windows 95 é repleto destes menus (em qualquer lugar que você clicar com o botão direito, alguma coisa aparece !) e o VB, desde a versão 2.0, fornece recursos para a implementação destes menus. Por exemplo, para fazer o menu Editar aparecer como flutuante quando o botão direito do mouse for pressionado sobre a caixa de texto txtEdit, devemos fazer,

Private Sub txtEdit_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then ‘Botão direito foi pressionado PopUpMenu mnuEditar End If End Sub

O OBJETO CLIPBOARD

O ClipBoard (Área de Transferência) é uma área da memória, comum a todos os programas Windows, usada para armazenar temporariamente texto e figuras. Podemos usar o ClipBoard para substituir as funções da variável

CortaTexto do menu Editar do nosso editor de textos. Por exemplo, para armazenar o texto selecionado em txtEditor no ClipBoard, usamos a função SetText, ClipBoard.SetText txtEditor.SelText Para recuperar o texto do ClipBoard, usamos o método GetText, txtEditor, SelText = ClipBoard.GetText() O código completo do menu Editar fica da seguinte forma:

Private Sub mnuEditarItem_Click(Index As Integer) Select Case Index Case 0 'Cortar Clipboard.Clear Clipboard.SetText txtEditor.SelText ' Copia o texto selecionado para o "ClipBoard. txtEditor.SelText = "" ' Apaga o texto selecionado. Case 1 ' Copiar Clipboard.Clear

Page 35: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Clipboard.SetText txtEditor.SelText 'Copia o texto selecionado para o "ClipBoard. Case 2 ' Colar txtEditor.SelText = Clipboard.GetText() ' Cola o texto presente no "Clipboard" End Select End Sub

10. PRINCIPAIS FUNÇÕES E COMANDOS DO VB A relação abaixo apresenta as principais funções e comandos do Visual Basic 3.0. Funções financeiras e do Controle de Dados (DataControl) não estão mostradas. Abs (Função) Descrição Retorna o valor absoluto de um número. Sintaxe Abs(número) Comentários O argumento número pode ser qualquer expressão

numérica válida. O valor absoluto de um número corresponde à sua magnitude, sem o sinal. O tipo de dado retornado é o mesmo do argumento número.

Exemplo Abs(-1) e Abs(1) retornam, ambos, o valor 1. Asc (Função) Descrição Retorna o valor numérico correspondente ao código ANSI

para o primeiro caractere de uma expressão string. Sintaxe Asc(expressão_string) Comentários Se expressão_string tiver comprimento zero ocorrerá um

erro em tempo de execução. Atn (Função) Descrição Retorna o arco-tangente de um número. Sintaxe Atn(número) Comentários O argumento número pode ser qualquer expressão

numérica válida. O resultado é expresso em radianos e está na faixa -π/2 e +π/2.

Beep (Comando) Descrição Gera um tom sonoro no alto-falante do computador.

Page 36: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Sintaxe Beep Comentários A freqüência e a duração do som dependem do hardware e

das configurações da placa de som.

Page 37: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

ChDir (Comando) Descrição Muda o diretório atual de um drive especificado. Sintaxe ChDir caminho Comentários O argumento caminho é um string que especifica qual

diretório deve se tornar o default. Este argumento deve conter menos de 128 caracteres e deve ter a seguinte sintaxe:

[drive:] [ \ ]diretório [ \diretório] ... O comando ChDir opera de maneira semelhante ao

comando CHDIR do DOS. Da mesma forma que CHDIR, ChDir (que não pode ser abreviado para CD) muda o diretório default, mas não o drive default.

Exemplo Se o drive default for o C, o comando a seguir muda o diretório default do drive D, mas o drive default continua sendo o C.

ChDir “D:\WINDOWS” ChDrive (Comando) Descrição Muda o drive default. Sintaxe ChDrive drive Comentários O argumento drive é um string que especifica o novo drive

default e deve corresponder a um drive existente no computador.

Exemplo ChDrive “D:” - muda para o drive D, que passa a ser o novo default.

Chr, Chr$ (Funções) Descrição Retorna um string de um caractere cujo código ANSI é o

argumento. Sintaxe Chr[$] (código_do_caractere) Comentários Chr retorna Variant; Chr[$] retorna String. O argumento

código_do_caractere é um inteiro entre 0 e 255, inclusive. Aplicativos WINDOWS usam o código ANSI e não o código

ASCII. Os caracteres correspondentes aos números 0 e 31, inclusive, são os mesmos para estes dois códigos. Por exemplo, Chr(10) retorna o caractere “mudança de linha” (linefeed).

Close (Comando)

Page 38: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Descrição Conclui uma operação I/O (input/output) para um arquivo,

ou seja, fecha um arquivo anteriormente aberto. Sintaxe Close [[#]número_do_arquivo] [,[#]número_do_arquivo]... Comentários O argumento número_do_arquivo deve ser o mesmo usado

no comando Open para abrir o arquivo. O comando Close, usado sem argumento, fecha todos os arquivos abertos.

Cos (Função) Descrição Retorna o co-seno de um ângulo. Sintaxe Cos (ângulo) Comentários O argumento ângulo pode ser qualquer expressão

numérica válida em radianos. CurDir, CurDir$ (Funções) Descrição Retorna o caminho atual para o drive especificado. Sintaxe CurDir[$] [(drive)] Comentários CurDir retorna um Variant; CurDir$ retorna String. O

argumento drive deve corresponder a um drive existente no computador. Se nenhum drive for especificado, CurDir[$] retornará o caminho do drive atual.

Exemplo Se o diretório atual for C:\VB\ o comando CurDir$ retornará o string “C:\VB”.

Date, Date$ (Funções) Descrição Retorna a data atual do sistema. Sintaxe Date [$] Comentários Date retorna Variant; Date$ retorna String de comprimento

10 formatado como mm-dd-aaaa. Date, Date$ (Comandos) Descrição Define a data do sistema. Sintaxe Date[$] = expressão Comentários Para Date, o argumento expressão deve ser um String ou

Variant. Para Date$, expressão deve ser um String com um dos seguintes formatos: mm-dd-aa; mm-dd-aaaa; mm/dd/aa; mm/dd/aaaa.

Page 39: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Dim (Comando) Descrição Declara variáveis e aloca espaço na memória para

armazená-las. Quando usada na seção de Declarações de um formulário ou módulo, as variáveis declaradas com Dim tornam-se acessíveis a todas os procedimentos do formulário ou módulo. Quando usada dentro de uma procedure, as variáveis estarão disponíveis apenas para a procedure em questão.

Sintaxe Dim nome_da_variável [([índices])] [As [New] tipo][, nome_da_variável [([índices])] [As [New]] ...

Comentários O comando Dim tem as seguintes partes:

Parte Descrição Nome_da_variáv Nome da variável a ser declarada.

Índices Dimensões de variáveis do tipo array, quando for o caso.

As tipo Palavra reservada para indicar o tipo de variável a ser declarada: Integer, Long, Single, Double. Currency, String ou Variant.

New Cria um novo “instance” de um objeto. Somente aplicável a variáveis-objeto.

Exemplo Dim Volume As Single Dir, Dir$ (Funções) Descrição Retorna o nome de um arquivo ou diretório que se adeque

aos Editorrões especificados. Sintaxe Dir[$] [(arquivo_espec[,atributos])] Comentários Dir retorna Variant; Dir$ retorna um String. O argumento

arquivo_espec é um string que especifica o caminho e nome do arquivo. O argumento atributos especifica os atributos do arquivo, de acordo com a seguinte tabela:

Valor

Significado Constante Simbólica

0 Arquivos normais ATTR_NORMAL 2 Arquivos

escondidos ATTR_HIDDEN

4 Arquivos de sistema

ATTR_SYSTEM

8 Rótulo do volume ATTR_VOLUME 16 Diretório ATTR_DIRECTOR

Page 40: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Y Do...Loop (Comando) Descrição Repete um bloco de comandos enquanto (“While”) uma

condição for verdadeira ou até que (“Until”) a condição se torne verdadeira.

Sintaxe 1 Do[{While|Until} condição] [bloco de comandos] Loop Sintaxe 2 Do [bloco de comandos] Loop [{While|Until} condição] End (Comando) Descrição Finaliza uma procedure em Visual Basic. Sintaxe End Comentários O comando End por si só pode ser colocado em qualquer

lugar de uma procedure e equivale a selecionar End no menu Run do Visual Basic. A execução é encerrada imediatamente.

EOF (Função) Descrição Retorna um valor que indica se o fim de um arquivo foi

atingido. Sintaxe EOF(número_do_arquivo) Comentários O argumento nome_do_arquivo deve ser o mesmo usado

no comando Open. EOF retorna True (verdadeiro) se o fim do arquivo foi atingido e False (falso) em caso contrário.

Err, Erl (Funções) Descrição Retorna o estado do erro ocorrido. Sintaxe Err Erl Comentários Depois de ocorrido um erro, a função Err retorna uma

variável Integer correspondente ao código do erro. A função Erl retorna uma variável Long correspondente ao número da linha onde o erro ocorreu. Estas funções devem ser usadas em rotinas de tratamentos de erros. Ver On Error e Resume.

Page 41: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Error, Error$ (Funções) Descrição Retorna a mensagem de erro (em inglês) que corresponde

a um dado código de erro. Sintaxe Error[$](código_do_erro) Comentários Error retorna Variant; Erro$ retorna String. O argumento

código_do_erro é um inteiro e deve estar entre 1 e 32.767. A função Err pode ser usada para determinar o código do erro ocorrido. Se a função Error[$] for usada sem argumento, será retornada a mensagem de erro do erro ocorrido mais recentemente.

Exp (Função) Descrição Retorna o número “e” (base dos logaritmos nepperianos)

elevado a uma dada potência. Sintaxe Exp(número) Comentários Se o valor de número exceder 709,782712893, ocorrerá um

erro de Overflow. A constante e é aproximadamente igual a 2,718282.

FileCopy (Comando) Descrição Copia um arquivo. Sintaxe FileCopy arq_origem, arq_destino Comentários Arq_origem é um string contendo uma especificação não

ambígua do arquivo a ser copiado. Este argumento pode incluir informações sobre o drive e o caminho.

Arq_destino é um string contendo uma especificação não ambígua do arquivo para onde Arq_origem deve ser copiado. Este argumento pode incluir informações sobre o drive e o caminho. O arquivo a ser copiado não pode estar aberto por qualquer aplicativo, seja DOS ou Windows.

Exemplo O comando a seguir copia o arquivo “VBJUNK.DOC” do diretório “C:\FOBOS” para o diretório “D:\DEIMOS” e o renomeia para “VBJUNK.BAK”:

FileCopy “C:\FOBOS\VBJUNK.DOC”, “D:\VBJUNK.BAK”

FileLen (Funções) Descrição Retorna uma variável Long que expressa o comprimento

(length) de um arquivo, em bytes.

Page 42: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Sintaxe FileLen (nome_do_arquivo) Comentários O argumento nome_do_arquivo é um string que contém

uma referência não ambígua a um arquivo, podendo conter informações sobre drives e caminhos.

Exemplo O comando a seguir mostra, na caixa de texto Text1, o tamanho do arquivo “VBJUNK.DOC” contido no caminho “C:\FOBOS\”

Text1.Text = FileLen("C:\FOBOS\VBJUNK.DOC") For...Next (Comando) Descrição Repete um grupo de instruções um determinado número de

vezes. Sintaxe For contador = começo To fim [Step incremento] [bloco de comandos] Next [contador] Format, Format$ (Funções) Descrição Formata números, datas, tempos ou strings de acordo com

instruções específicas. Sintaxe Format[$](expressão[,fmt]) Comentários Format retorna Variant; Format$ retorna String. O

argumento expressão é o string ou expressão numérica a ser formatada. O argumento fmt é a expressão de formato. Para maiores informações, consultar o manual “Language Reference” ou o Help on-line do Visual Basic.

FreeFile (Função) Descrição Retorna o próximo número de arquivo disponível (não

aberto). Sintaxe FreeFile [()] Comentários FreeFile pode ser usada quando se deseja abrir um arquivo

com a certeza de que não existe um arquivo já aberto com este número.

Function (Comando) Descrição Declara o nome, argumento e código que formam o corpo

de uma procedure do tipo Function. Sintaxe [Static] [Private] Function nome_da_função

[(lista_de_argumentos)] [As tipo]

Page 43: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

[bloco de comandos] [nome_da_função=expressão] End Function Comentários O comando Function tem as seguintes partes:

Parte Descrição Static Indica que as variáveis locais da procedure

Function em questão são preservadas entre duas chamadas.

Private Indica que a procedure Function em questão é acessível somente a outros procedimentos do módulo em que ela está declarada.

Lista_de_argumentos

Lista de variáveis passadas pela Function como parâmetros.

As tipo Indica o tipo da procedure Function (Integer, Long, Single, Double, Currency, String ou Variant).

Bloco de comandos Expressões a serem executadas pela procedure Function.

Expressão Valor de retorno da procedure Function

Precaução: Procedures do tipo Function podem ser recursivas, isto é, podem chamar a si mesmas. Entretanto, este procedimento pode causar overflow da área da memória conhecida como stack, por onde os parâmetros são passados. Quando a recursividade for necessária, aconselha-se a não declarar a Function como Static.

Exemplo A seguinte função pode ser usada para calcular a raiz quadrada de um número.

Function SquareRoot (X As Double) As Double Select Case Sgn(X) ' Determina o sinal do

argumento. Case 1 ' OK se for positivo. SquareRoot = Sqr(X) Exit Function Case 0 ' Alertar usuário se for zero. SquareRoot = 0 Case -1 ' Alertar usuário se for negativo. SquareRoot = -1 End Select End Function Get (Comando) Descrição Lê uma variável a partir de um arquivo em disco.

Page 44: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Sintaxe Get [#] número_do_arquivo,[número_do_registro], nome_da_variável

Comentários O comando Get tem as seguintes partes:

Parte Descrição Número_do_arquivo

Número usado no comando Open para abrir o arquivo.

Número_do_registro

Para arquivos abertos no modo Random, este argumento é o número do registro a ser lido. Para arquivos abertos no modo Binary, este argumento corresponde ao byte onde a leitura deve começar.

Nome_da_variável

Nome da variável usada para receber o conteúdo do arquivo.

Exemplo O seguinte comando lê o décimo registro do arquivo

número 1 e o armazena na variável Cliente. Get #1, 10, Cliente Public (Comando) Descrição Usado na seção de Declarações de um módulo para

declarar variáveis Públicas e alocar espaço de memória para armazená-las. Variáveis Públicas são disponíveis para todas os procedimentos de todos os formulários e módulos,

Sintaxe Public nome_da_variável [([índices])] [As [New] tipo][, nome_da_variável [([índices])] [As [New]tipo]] ...

Comentários O comando Public tem as seguintes partes:

Parte Descrição Nome_da_variável

Nome da variável a ser declarada.

Índices Dimensões de variáveis do tipo array, quando for o caso.

As tipo Palavra reservada para indicar o tipo de variável a ser declarada: Integer, Long, Single, Double. Currency, String ou Variant.

New Cria um novo “instance” de um objeto. Somente aplicável a variáveis-objeto.

Exemplo Public Número As Integer Hex, Hex$ (Funções) Descrição Retorna um string que representa o valor hexadecimal de

um argumento decimal.

Page 45: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Sintaxe Hex[$](número) Comentários Hex retorna Variant; Hex[$] retorna String. Exemplo O argumento número pode ser qualquer expressão

numérica válida e será arredondada para o número inteiro mais próximo antes da conversão.

If...Then...Else (Comando) Descrição Permite execução condicional de um bloco de comandos,

baseado em uma expressão. Sintaxe If condição 1 Then [bloco de comandos 1] [ElseIf condição 2 Then [bloco de comandos 2]] [Else [bloco de comandos n]] End if Input# (Comando) Descrição Lê dados de um arquivo sequencial e os armazena em

variáveis. Sintaxe Input # número_do_arquivo, lista_de_variáveis Comentários O comando Input# tem as seguintes partes:

Parte Descrição Número_do_arquivo

Número usado no comando Open para abrir o arquivo. O sinal (#) que precede o número do arquivo é obrigatório.

Lista_de_variáveis

Lista, separada por vírgulas, que descreve as variáveis usadas para armazenar os dados lidos dos arquivos. Lista_de_variáveis não pode ser um array, mas pode ser uma variável que descreve um elemento de um array. Lista_de_variáveis também não pode ser um tipo de dado definido pelo usuário (user-defined type), mas pode ser um elemento deste tipo de dado

Exemplo O seguinte comando lê o primeiro registro do arquivo

número 1 e o armazena na variável Dados: Input #1, Dados

InputBox, InputBox$ (Funções)

Page 46: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Descrição Mostra um pedido de entrada (“prompt”) em uma caixa de diálogo, para que o usuário entre com um texto.

Sintaxe InputBox[$](prompt[,título][,default][,xpos, ypos]]]) Comentários InputBox retorna Variant; InputBox$ retorna String. A função InputBox[$] tem as seguintes partes:

Parte Descrição Prompt String mostrado como mensagem na caixa de diálogo. Título String a ser mostrado na barra de título da caixa de

diálogo. Default String mostrado na caixa de diálogo como resposta

default, caso o usuário não entre com uma expressão. xpos Expressão numérica que especifica, em twips, a distância

horizontal da borda esquerda da caixa até a borda esquerda da tela.

ypos Expressão numérica que especifica, em twips, a distância vertical da borda superior da caixa até a borda superior da tela.

Exemplo InputBox(“Entre com um valor de 0 a 15”, “Demonstração”,

“1”) Int (Função) Descrição Retorna a porção inteira de um número. Sintaxe Int(número) Comentários O argumento número pode ser qualquer expressão

numérica válida. Kill (Comando) Descrição Deleta arquivos de um disco. Sintaxe Kill arquivo Comentários O comando Kill é similar aos comandos ERASE e DEL do

DOS e deleta apenas arquivos. Para remover diretórios, deve-se usar o comando RmDir. O arquivo a ser removido deve existir previamente. Caso contrário, um erro em tempo de execução ocorrerá.

Exemplo Kill “C:\VBJUNK.DOC”

Page 47: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

LBound (Função) Descrição Retorna o menor índice disponível para a dimensão

indicada de um array. Sintaxe LBound(array[,dimensão]) Comentários A função LBound pode ser usada em conjunto com a

função UBound para se determinar o tamanho de um array. LBound pode ser necessária pois, em Visual Basic, os arrays não precisam começar necessariamente no índice um.

Exemplo Seja M um array tridimensional declarado da seguinte maneira:

Dim M(1 To 100, 0 To 3, -3 To 4). A função LBound retornará os seguintes valores:

Declaração Valor Retornado

LBound (M, 1) 1 LBound (M, 2) 0 LBound (M, 3) -3

LCase, LCase$ (Funções) Descrição Retorna um string no qual todas as letras de um argumento

estão convertidas para minúsculas (“lowercase”). Sintaxe LCase[$](string) Comentários LCase retorna Variant; LCase$ retorna String. Left,Left$ (Funções) Descrição Retorna os n caracteres mais à esquerda de um argumento

string. Sintaxe Left[$](string, n) Comentários Left retorna Variant; Left$ retorna String. O argumento n

deve ser um inteiro longo (Long). Len (Função) Descrição Retorna o número de caracteres em um string ou o número

de bytes requerido para armazenar uma variável. Sintaxe 1 Len(string) Sintaxe 2 Len(minha_variável)

Page 48: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Comentários Na primeira sintaxe, Len retorna o número de caracteres na expressão string. Na segunda, Len retorna o número de bytes requeridos para armazenar a variável minha_variável.

Load (Comando) Descrição Carrega um formulário ou controle na memória. Sintaxe Load objeto Comentários O argumento objeto deve ser um formulário comum,

formulário MDI ou um elemento de um “array de controles”. O comando Load carrega o formulário ou controle na memória, disponibilizando todas as suas propriedades, mas não os exibe na tela. Para exibir um controle, deve-se fazer a propriedade “Visible” verdadeira (True) ou usar o comando Show.

LoadPicture (Função) Descrição Carrega uma figura em um formulário, caixa de figuras ou

controle de imagens. Sintaxe LoadPicture([expressão_string]) Comentários O argumento expressão_string é o nome do arquivo que

contém a figura a ser carregada. Usada sem argumento, LoadPicture apaga o conteúdo de formulários, caixas de figuras ou controle de imagens.

Os arquivos de figuras reconhecidos pelo Visual Basic 3.0 incluem bitmaps (.BMP), ícones (.ICO), arquivos codificados em modo run-length (.RLE), e arquivos metafile (.WMF).

Para carregar figuras a serem mostradas em caixas de figuras, controle de imagens ou como fundo de formulários, deve-se carregar o valor LoadPicture na propriedade Picture do objeto em questão. Por exemplo:

Picture = LoadPicture(“C:\VBGRBG.BMP”) Picture1. Picture = LoadPicture(“C:\VBGRBG.BMP”) Para carregar uma figura na área de transferência deve-se

usar a função SetData: ClipBoard.SetData LoadPicture (“C:\VBGRBG.BMP”) LOF (Função) Descrição Retorna o tamanho, em bytes, de um arquivo aberto. Sintaxe LOF (número_do_arquivo)

Page 49: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Comentários O argumento número_do_arquivo é o número usado no comando Open para a abertura do arquivo. Para obter o tamanho de arquivos não abertos deve-se usar a função FileLen.

Log (Função) Descrição Retorna o logaritmo natural (nepperiano) de um número

especificado. Sintaxe Log(número) Comentários O argumento número pode ser qualquer expressão

numérica válida. A constante “e” é aproximadamente 2,718282.

MkDir (Comando) Descrição Cria um novo diretório. Sintaxe MkDir(nome_do_caminho) Comentários O argumento caminho é um string que especifica qual

diretório deve ser criado. Este argumento deve conter menos de 128 caracteres e deve ter a seguinte sintaxe:

[drive:] [ \ ]diretório [ \diretório] ... O comando MkDir opera de maneira semelhante ao

comando MKDIR do DOS, exceto que não pode ser abreviado para MD.

MsgBox (Comando e Função) Descrição Mostra uma mensagem em uma caixa de diálogo

Editorronizada e espera que o usuário escolha um botão. A função MsgBox retorna um valor indicando qual botão foi escolhido; o comando MsgBox não retorna valor.

Sintaxe da Função MsgBox(msg[,[tipo][título]]) Sintaxe do Comando MsgBox msg[,[tipo][,título]] Comentários O comando e a função MsgBox têm as seguintes partes: Msg: String a ser mostrado como mensagem da caixa de

diálogo; Tipo: Expressão numérica opcional que é a soma de

valores especificando quais botões devem aparecer, qual ícone a ser usado e qual o botão default. A tabela a seguir mostra os valores possíveis e os respectivos significados.

Constante simbólica Valo Significado

Page 50: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

r MB_OK 0 Mostra apenas o botão OK. MB_OKCANCEL 1 Mostra os botões OK e Cancel. MB_ABORTRETRYIGNORE

2 Mostra os botões Abort, Retry e Ignore.

MB_YESNOCANCEL 3 Mostra os botões Yes, No e Cancel.

MB_YESNO 4 Mostra os botões Yes e No. MB_RETRYCANCEL 5 Mostra os botões Retry e Cancel. MB_ICONSTOP 16 Mostra o ícone “Stop”. MB_ICONQUESTION 32 Mostra o ícone “Interrogação” (?). MB_ICONEXCLAMATION

48 Mostra o Ícone “Exclamação” (!).

MB_ICONINFORMATION

64 Mostra o ícone “Informação” (i).

Botões default MB_DEFBUTTON1 0 O primeiro botão é o default. MB_DEFBUTTON2 256 O segundo botão é o default.

Título: String a ser usado como título na barra de títulos da

caixa de diálogo. Se omitido, a expressão “Microsoft Visual Basic” será mostrada.

Os valores retornados pela função MsgBox indicam qual botão foi pressionado, conforme a tabela abaixo.

Constante simbólica

Valor

Significado

IDOK 1 OK foi pressionado IDCANCEL 2 Cancel foi pressionado IDABORT 3 Abort foi pressionado IDRETRY 4 Retry foi pressionado IDYES 6 Yes foi pressionado IDNO 7 No foi pressionado

Exemplo A função a seguir mostra uma caixa de diálogo com o título

“DEMO” e com a mensagem “Esta é uma demonstração”. Somente o botão OK é mostrado.

RetVal=MsgBox(“Esta é uma demonstração”, 64, “DEMO”) Name (Comando) Descrição Altera o nome de um arquivo em disco ou diretório. Sintaxe Name arq_antigo As arq_novo Comentários O comando Name é similar ao comando RENAME do DOS,

mas pode ser usado também para renomear diretórios. Usando Name, pode-se mover arquivos de um diretório para outro, mas não se pode mover diretórios. Os

Page 51: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

argumentos arq_antigo e arq_novo são strings que especificam os arquivos antigo e novo, respectivamente, incluindo caminhos. O arquivo especificado em arq_antigo deve existir e o caminho especificado em arq_novo não pode existir ainda. Se Name for usado para renomear arquivos abertos ocorrerá um erro em tempo de execução.

Exemplo A declaração a seguir muda o arquivo VBJUNK.DOC do diretório C:\FOBOS para o diretório C:\DEIMOS:

Name “C:\FOBOS\VBJUNK.DOC” As

\DEIMOS\VBJUNK.DOC” On Error (Comando) Descrição Habilita rotinas de tratamento de erros e especifica a

localização desta rotina dentro de uma procedure. Sintaxe On Error {GoTo linha|Resume Next|GoTo 0} Comentários Se o comando On Error não for usado qualquer erro em

tempo de execução será fatal, isto é, o Visual Basic acusa o erro e gera a mensagem correspondente, mas aborta a execução.

O comando On Error tem as seguintes partes:

Partes Descrição GoTo linha Habilita a rotina de tratamento de erros que começa na

linha rotulada com linha. A rotina de tratamento de erros deve estar dentro da mesma procedure onde o erro ocorreu.

Resume Next

Especifica que, quando um erro ocorrer, o controle será dirigido para o comando imediatamente a seguir àquele onde o erro ocorreu. Em outras palavras, o programa continua a execução normal.

GoTo 0 Desabilita o tratamento de erros na procedure atual. Para evitar que a rotina de tratamento de erros seja inadvertidamente executada quando a procedure for finalizada sem erros, basta inserir os comandos Exit Sub ou Exit Function imediatamente antes da rotina de tratamento de erros. Open (Comando) Descrição Habilita operações de entrada/saída (I/O) em um arquivo,

ou seja, “abre” um arquivo. Sintaxe Open arquivo [For modo][Access acesso][lock] As

[#]nº_do_arquivo [Len= comprimento]

Page 52: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Comentários Todo arquivo deve ser aberto antes que qualquer operação de entrada/saída possa ser executada. o comando Open aloca um buffer para o arquivo e determina o modo de acesso a ser empregado. O comando Open tem as seguintes partes:

Partes Descrição Arquivo Nome do arquivo. Modo Palavra reservada que especifica o tipo de arquivo:

Append, Binary, Input, Output, Random. Access Palavra reservada que especifica quais operações

são permitidas para o arquivo: Read, Write, Read Write. Disponível somente para ambiente em rede.

Partes Descrição Lock Palavra reservada que especifica quais operações

são permitidas para o arquivo por outros processos: Shared, Lock Read, Lock Write, Lock Read Write. Disponível somente para ambiente em rede.

Nº_do_arquivo

Número inteiro com valor entre 1 e 255, inclusive. Quando um arquivo for aberto, esta variável estará associada ao arquivo enquanto ele estiver aberto.

Comprimento

Para arquivos Random, siginifica o comprimento do registro. Para arquivos sequenciais, significa o número de caracteres.

Se o arquivo não existir, será criado quando da execução

do comando Open. O argumento Modo divide-se nos seguintes casos:

Modo Descrição Random Arquivos de acesso aleatório (default) Binary Arquivos binários Input Arquivos sequenciais para entrada

(leitura) Output Arquivos sequenciais para saída

(gravação) Append Arquivos sequenciais para saída

(gravação). O ponteiro é colocado no fim do arquivo.

Option Explicit (Comando) Descrição Força que todas as variáveis sejam explicitamente

declaradas. Sintaxe Option Explicit

Page 53: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Comentários O comando Option Explicit é usado na seção de Declarações de um formulário ou módulo para forçar a declaração explícita de variáveis, isto é, todas as variáveis deverão ser declaradas antes de serem usadas. Caso o comando Option Explicit esteja sendo usado e alguma variável usada não for declarada, ocorrerá um erro de compilação.

Quando o comando Option Explicit não for usado, todas

as variáveis usadas e não declaradas serão do tipo Variant, o que pode ocupar mais memória do que o necessário.

Print# (Comando) Descrição Escreve dados em um arquivo sequencial. Sintaxe Print#

número_do_arquivo,[[{Spc(n)|Tab(n)}][lista_de_expressões][{;|,}]]

Comentários O comando Print# tem as seguintes partes:

Parte Descrição Número_do_arqui Número usado no comando Open para abrir o

arquivo.

Spc(n) Função do Visual Basic usada opcionalmemente para inserir n espaços. O uso múltiplo é permitido.

Tab(n) Função do Visual Basic usada opcionalmemente para deslocar para a coluna n antes da saída ser gravada. O uso múltiplo é permitido.

Lista_de_express Expressões numéricas ou string, separadas por vírgulas, a serem escritas no arquivo.

Parte Descrição {;|,} Caractere que determina a posição do

próximo caractere a ser gravado. Ponto-e-vírgula siginifica que o próximo caractere é gravado imediatamente após o anterior; vírgula siginifica que o próximo caractere é impresso no começo da próxima “zona de impressão”. Cada zona de impressão tem 14 colunas. Se nenhum caractere for especificado, a gravação será feita na próxima linha.

Page 54: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Put (Comando) Descrição Grava uma variável em um arquivo em disco. Sintaxe

Put[#]número_do_arquivo,[número_do_registro],nome_da_variável.

Comentários O comando Put tem as seguintes partes:

Parte Descrição Número_do_arquivo

Número usado no comando Open para abrir o arquivo.

Número_do_registro

Para arquivos abertos como Random, é o número do registro onde se deseja gravar a variável. Para arquivos abertos como Binary, é o byte onde a gravação deve começar.

Nome_da_variável

Nome da variável a ser gravada. Variáveis-objeto e arrays não podem ser usados. Entretanto, elementos de arrays podem ser gravados individualmente.

QBColor (Função) Descrição Retorna a cor RGB (Vermelho, Verde, Azul) correspondente

a um número. Sintaxe QBColor(número_da_cor) Comentários O argumento número_da_cor é um inteiro entre 0 e 15 que

corresponde a cores usadas em outras versões do BASIC. A tabela abaixo descreve tais cores.

Número

Cor Número Cor

0 Preto 8 Cinza 1 Azul 9 Azul Claro 2 Verde 10 Verde Claro 3 Ciano 11 Ciano Claro 4 Vermelh

o 12 Vermelho

Claro 5 Magenta 13 Magenta Claro 6 Amarelo 14 Amarelo Claro 7 Branco 15 Branco

Brilhante Em alguns monitores, a cor QBColor(7) pode fornecer um

cinza claro. O branco usual é a cor QBColor(15).

Page 55: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Randomize (Comando) Descrição Inicializa o gerador de números aleatórios. Sintaxe Randomize[número] Comentários O argumento número é qualquer expressão numérica válida

e é usado para inicializar o gerador de números aleatórios, fornecendo uma nova semente. Se este argumento for omitido, será usado o valor retornado pela função Timer.

Se o comando Randomize não for usado, a função Rnd

retornará a mesma sequência de números aleatórios cada vez que o programa for executado.

ReDim (Comando) Descrição Usado dentro de procedures para declarar arrays dinâmicos

e alocar ou desalocar espaço de armazenagem. Sintaxe ReDim[Preserve] nome_do_array(índices)[As tipo] Comentários O comando ReDim tem as seguintes partes:

Parte Descrição Preserve Preserva os dados em um array existente quando a

última dimensão é redimensionada. Nome_do_array

Nome da variável.

Índices Dimensões do array. As tipo Tipo do array (Integer, Long, Single, Double,

Currency, String, Variant) Reset (Comando) Descrição Fecha todos os arquivos em disco. Sintaxe Reset Comentários O comando Reset fecha todos os arquivos em disco

abertos e grava o conteúdo de todos os buffers do DOS em disco.

Resume (Comando) Descrição Continua a execução após o término de uma rotina de

tratamento de erros. Sintaxe Resume {[0]|Next|linha}

Page 56: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Comentários As várias formas do comando Resume estão descritas na

tabela a seguir.

Comando Descrição Resume [0] A execução continua a partir do comando que causou o

erro, ou a partir da procedure mais recentemente chamada que contenha uma rotina de tratamento de erro.

Resume Next

A execução continua a partir do comando imediatamente a seguir àquele que causou o erro, ou imediatamente a seguir da procedure mais recentemente chamada que contenha uma rotina de tratamento de erro.

Resume linha

A execução continua em linha, que é um rótulo ou número de linha e deve estar na mesma procedure da rotina de tratamento de erros.

Se o comando Resume for usado em qualquer lugar exceto

em uma rotina de tratamento de erros, um erro ocorrerá. RGB (Função) Descrição Retorna um inteiro longo (Long) representativo de um valor

de cor RGB. Sintaxe RGB(vermelho, verde, azul) Comentários A função RGB tem as seguintes partes:

Parte Descrição Vermelho

Inteiro na faixa 0 a 255, inclusive, que representa a componente vermelha da cor.

Verde Inteiro na faixa 0 a 255, inclusive, que representa a componente verde da cor.

Azul Inteiro na faixa 0 a 255, inclusive, que representa a componente azul da cor.

A tabela a seguir mostra a representação hexadecimal de

algumas cores Editorronizadas, bem como as intensidades das respectivas controles.

Cor Valor

RGB Vermelh

o Verde Azul

Preto &H00 0 0 0 Azul &HFF0000 0 0 255 Verde &HFF00 0 255 0 Ciano &HFFFF0 0 255 255

Page 57: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

0 Vermelho

&HFF 255 0 0

Magenta &HFF00FF

255 0 255

Amarelo &HFFFF 255 255 0 Branco &HFFFFF

F 255 255 255

Page 58: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

RmDir (Comando) Descrição Remove um diretório existente. Sintaxe RmDir caminho Comentários O argumento caminho é um string que especifica o nome

do diretório a ser removido e deve ter a seguinte sintaxe: [drive:] [ \ ]diretório [ \diretório] ...

O comando RmDir é semelhante ao comando RMDIR do

DOS, mas não pode ser abreviado para RD. Se o diretório a ser removido contiver qualquer informação além do diretório de trabalho (´.´) e do diretório (´..´), ocorrerá um erro.

Rnd (Função) Descrição Retorna um número aleatório. Sintaxe Rnd[(número)] Comentários O argumento número pode ser qualquer expressão

numérica válida. A função Rnd retorna uma variável Single menor do que 1 e maior ou igual a zero. O valor de número determina o modo de geração do número aleatório, de acordo com a tabela a seguir.

Número Número retornado < 0 Sempre o mesmo número, conforme determinado por

número. > 0 O próximo número aleatório da sequência. = 0 O número mais recentemente gerado.

Omitido O próximo número aleatório da sequência. A mesma sequência de números aleatórios é gerada cada

vez que o programa é executado porque chamadas sucessivas da função Rnd usam o número aleatório anterior como semente para o próximo número. Para evitar que isto aconteça, deve-se usar o comando Randomize para inicializar o gerador de números aleatórios antes de executar a função Rnd.

SavePicture (Comando) Descrição Grava uma figura de um formulário, caixa de figuras ou

controle de imagens em um arquivo. Sintaxe SavePicture figura, arquivo

Page 59: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Comentários O comando SavePicture tem as seguintes partes:

Parte Descrição Figura Propriedade “Picture” ou “Image” do controle a partir da

qual a figura deve ser criada. Arquivo Nome do arquivo, incluindo caminhos opcionais.

Se a figura foi carregada de um arquivo, seja em tempo de

projeto ou execução, ela será salva com o mesmo formato. Figuras com a propriedade imagem são sempre salvas como bitmaps (.BMP). Figuras geradas em tempo de execução somente serão salvas em disco se a propriedade AutoRedraw do controle-suporte for verdadeira.

Exemplo A declaração a seguir salva a figura contida na caixa de

figura picFig, formulário frmFigura, no arquivo “C:\FIGURA.BMP”:

SavePicture frmFigura.picFig.Picture,

“C:\FIGURA.BMP” Seek (Função) Descrição Retorna a posição atual de um arquivo Sintaxe Seek(número_do_arquivo) Comentários O argumento número_do_arquivo é o número usado no

comando Open para abrir o arquivo. O comando Seek retorna um valor entre 1 e 2.147.483.647 (equivalente a 2^31-1), inclusive. Para arquivos abertos no modo Random, Seek retorna o número do próximo arquivo lido ou escrito. Para arquivos abertos nos modos Binary, Output, Append ou Input, Seek retorna a posição do byte onde a próxima operação será executada. O primeiro byte de um arquivo está na posição 1, o segundo na posição 2 e assim por diante.

Seek (Comando) Descrição Define a posição, em um arquivo, para a próxima operação

de entrada ou saída. Sintaxe Seek[#]número_do_arquivo, posição Comentários O comando Seek tem as seguintes partes:

Parte Descrição Número_do_arq Número usado no comando Open para abrir o

Page 60: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

uivo arquivo. Posição Expressão numérica que indica onde a próxima

operação I/O deve ocorrer. O valor de posição deve estar entre 1 e 2.147.483.647 (equivalente a 2^31-1).

Para arquivos Random, posição é um número de registro

do arquivo. Para arquivos Binary, Output, Append ou Input,posição é

a posição do byte relativamente ao começo do arquivo (posição 1).

Select Case (Comando) Descrição Executa um dentre vários comandos dependendo do valor

de uma expressão. Sintaxe Select Case expressão_teste [Case lista_de_expressões-1 [bloco_de_comandos-1]] [Case lista_de_expressões-2 [bloco_de_comandos-2]] [Case Else [bloco_de_comandos-n]] End Select Comentários O comando Select Case tem as seguintes partes:

Parte Descrição Select Case Começo da estrutura de decisões (obrigatório) Expressão_teste Qualquer expressão numérica ou string. Se

Expressão_teste for igual à lista_de_expressões de uma cláusula Case, o bloco_de_comandos associado será execu-tado. O controle então passa para End Select. Se Expressão_teste prencher os requisitos de mais de uma cláusula Case, apenas a primeira será executada.

Case Palavra reservada que divide os comandos a serem executados quando uma expressão em Lista_de_expressões for igual a Expressão_teste.

Lista_de_expressões

Lista de expressões separadas por vírgulas em uma das seguintes formas: Expressão Expressão To Expressão Is operador-de-comparação Expressão

Bloco_de_comandos

Lista de comandos em Visual Basic.

Case Else Palavra-chave que indica o bloco de comandos

Page 61: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

que será executado quando Expressão_teste não se adequar a nenhuma das cláusulas Case.

End Select Finalização do bloco Select Case (obrigatório) Exemplo Select Case Número Case 1 To 20 Msg = “O número está entre 1 e 20 !” Case 21 To 50 Msg = “O número está entre 21 e 50 !” Case 51 To 100 Msg = “O número está entre 51 e 100 !” Case Else Msg = “O número e maior do que 100 !” End Select MsgBox Msg SetAttr (Comando) Descrição Define os atributos para um arquivo. Sintaxe SetAttr nome_do_arquivo, atributos Comentários O comando SetAttr tem as seguintes partes:

Parte Descrição Nome_do_arquivo

String que contém uma identificaçõa não ambígua de um arquivo, podendo incluir informações adicionais sobre o drive e o caminho.

Atributos A soma de qualquer um dos seguintes valores que caracterizam os atributos de um arquivo:

Const Simbólica

Valor Significado

ATTR_NORMAL 0 Arquivo normal ATTR_READON

LY 1 Arquivo somente para

leitura ATTR_HIDDEN 2 Arquivo escondido ATTR_SYSTEM 4 Arquivo do sistema ATTR_ARCHIVE 32 Arquivo foi modificado

desde o último back-up

Se o comando SetAttr for empregado quando o arquivo

especificado em nome_do_arquivo estiver aberto, ocorrerá um erro em tempo de execução.

Sgn (Função) Descrição Retorna um inteiro indicando o sinal de um número.

Page 62: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Sintaxe Sgn(número) Comentários O argumento número pode ser qualquer expressão

numérica válida. Se número>0, então Sgn(número) retorna 1; Se número=0, então Sgn(número) retorna 0; Se número<0, então Sgn(número) retorna -1; Shell (Função) Descrição Roda um programa executável. Sintaxe Shell(string_de_comando[,tipo_de_janela]) Comentários A função Shell tem as seguintes partes:

Parte Descrição String_de_comando

Nome do programa a ser executado, incluindo caminhos e linhas de comando. As extensões podem ser .COM, .EXE, .BAT ou .PIF. O default é .EXE.

Tipo_de_janela Número correspondente ao estilo da janela na qual o programa será executado. Se este argumento for omitido, o programa é aberto minimizado com foco.

A tabela a seguir mostra todos os possíveis valores da

variável Tipo_de_janela.

Valor Tipo da Janela 1, 5, 9 Normal com foco

2 Minimizada com foco (default)

3 Maximizada com foco 4, 8 Normal sem foco 6, 7 Minimizada sem foco

A função Shell executa aplicativos assincronamente. Isto

significa que o código em Visual Basic poderá continuar sua execução antes do encerramento do programa iniciado com Shell. Para monitorar o estado de um programa Shell, a função GetModuleUsage do Windows API (Aplications Program Interface) poderá ser usada.

Sin (Função) Descrição Retorna o seno de um ângulo. Sintaxe Sin(ângulo)

Page 63: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Comentários O argumento ângulo pode ser qualquer expressão numérica válida, medida em radianos. O resultado estará na faixa entre -1 e +1.

Sqr (Função) Descrição Retorna a raiz quadrada de um número. Sintaxe Sqr(número) Comentários O argumento número pode ser qualquer expressão

numérica válida maior ou igual a zero. Static (Comando) Descrição Usado dentro de uma procedure para declarar variáveis e

alocar espaço para armazená-las. Variáveis declaradas com Static retêm o valor enquanto o programa estiver rodando.

Sintaxe Static nome_da_variável [([índices])] [As [New] tipo][, nome_da_variável [([índices])] [As [New]] ...

Comentários O comando Static tem as seguintes partes:

Parte Descrição Nome_da_variáv Nome da variável a ser declarada.

Índices Dimensões de variáveis do tipo array, quando for o caso.

As tipo Palavra reservada para indicar o tipo de variável a ser declarada: Integer, Long, Single, Double. Currency, String ou Variant.

New Cria um novo “instance” de um objeto. Somente aplicável a variáveis-objeto.

Exemplo Static Ârea As Single Stop (Comando) Descrição Suspende a execução de um programa em Visual Basic. Sintaxe Stop Comentários O comando Stop encerra a execução de programas mas,

ao contrário de End, não fecha arquivos e não zera variáveis. Um programa encerrado com Stop pode ter sua execução retomada escolhendo-se o comando Continue do menu Run.

Page 64: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Str, Str$ (Funções) Descrição Retorna um string representativo do valor de uma

expressão numérica. Sintaxe Str[$](número) Comentários Str retorna Variant; Str$ retorna String. Sub (Comando) Descrição Declara o nome, argumento e código que formam o corpo

de uma procedure do tipo Sub. Sintaxe [Static] [Private] Sub nome_da_procedure

[(lista_de_argumentos)] [As tipo] [bloco de comandos] [Exit Sub] [bloco de comandos] End Sub Comentários O comando Sub tem as seguintes partes:

Parte Descrição Static Indica que as variáveis locais da procedure

Sub em questão são preservadas entre duas chamadas.

Private Indica que a procedure Sub em questão é acessível somente a outros procedimentos do módulo em que ela está declarada.

Lista_de_argumentos

Lista de variáveis passadas pela Sub como parâmetros.

As tipo Indica o tipo da procedure Function (Integer, Long, Single, Double, Currency, String ou Variant).

Bloco de comandos Expressões a serem executadas pela procedure Function.

Exit Sub Causa o encerramento imediato da procedure Sub.

End Sub Marca o fim de uma procedure Sub. O argumento Lista_de_argumentos tem a seguinte sintaxe: [ByVal]variável[()][As tipo][, [ByVal]variável[()][As

tipo]... A tabela a seguir descreve as partes de

Lista_de_argumentos:

Page 65: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Parte Descrição ByVal Indica que o parâmetro é passado “por valor” e

não “por referência”. A palavra reservada ByVal não pode ser usada para variáveis de tipos definidos pelo usuário.

Variável Nome da variável que é passada como parâmetro.

As tipo Declara o tipo da variável. O valor de uma variável pode ser alterado por um

procedure quando ela é passada para esta procedure “por referência”. Por outro lado, apenas uma cópia da variável é passada quando se usa ByVal. Se a procedure alterar o valor, apenas a cópia da variável será alterada, e não a variável em si.

Precaução: Procedures do tipo Sub podem ser recursivas, isto é, podem chamar a si mesmas. Entretanto, este procedimento pode causar overflow da área da memória conhecida como stack, por onde os parâmetros são passados. Quando a recursividade for necessária, aconselha-se a não declarar a Sub como Static.

Tab (Função) Descrição Usada com o comando Print# ou com o método Print para

mover a posição na qual o próximo caractere será impresso.

Sintaxe Tab(coluna) Comentários O argumento coluna é um inteiro que especifica a coluna da

nova posição de impressão. A posição de impressão mais à esquerda é sempre a número 1. A posição mais à direita é a largura do arquivo de saída, que pode ser definida com o comando Width#.

Tan (Função) Descrição Retorna a tangente de um ângulo. Sintaxe Tan(ângulo) Comentários O argumento ângulo pode ser qualquer expressão

numérica válida. Time, Time$. (Funções) Descrição Retorna a hora atual do sistema. Sintaxe Time[$][()]

Page 66: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Comentários Time retorna Variant contendo uma hora armazenada internamente como a parte fracionária de um número de precisão dupla.

Time$ retorna um string de oito caracteres da forma hh:mm:ss, onde hh é a hora (00-23), mm é o minuto (00-59) e ss é o segundo (00-59).

Time, Time$.(Comandos) Descrição Especifica a hora do sistema. Sintaxe Time[$] = expressão. Comentários Para Time, o argumento expressão deve ser um String

formatado como time ou uma Variant do tipo VarType 7 (Date) ou VarType 8 (String).

Para Time$, o argumento expressão deve ter uma das seguintes formas, onde hh é a hora (00-23), mm é o minuto (00-59) e ss é o segundo (00-59):

Parte Descrição hh Especifica a hora; minutos e segundos são definidos

em 00. hh:mm Especifica hora e minutos; segundos são definidos em

00. hh:mm:s Especifica hora, minutos e segundos.

Exemplo Time$ = “11:20:30” Type (Comando) Descrição Declara um tipo de dados definido pelo usuário. Sintaxe Type variável_do_usuário nome_do_elemento [(índices)] As nome_do_tipo [nome_do_elemento [(índices)] As nome_do_tipo] End Type Comentários O comando Type tem as seguintes partes:

Parte Descrição Type Marca o começo da declaração Variável_do_usu Nome do tipo de dados definido pelo usuário.

Nome_do_eleme Nome de um elemento do tipo de dados definido pelo usuário.

Page 67: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Índices Dimensões de elementos de arrays, quando for o caso.

Nome_do_tipo Um dos seguintes tipos: Integer, Long, Single, Double, Currency, String ou Variant.

End Type Marca o fim da declaração. O comando Type somente pode ser usado na seção de

Declarações de um módulo. Uma vez tendo-se declarado um tipo de dados definido pelo usuário, variáveis deste tipo poderão ser declaradas em qualquer procedure do aplicativo, usando-se os comandos Dim, Public, ReDim ou Static.

Tipos de dados definidos pelo usuário são análogos às varíáveis Record do Pascal. Este tipo de dados geralmente é usado quando se desejar um registro de dados que contenham diferentes tipos de variáveis. O exemplo a seguir ilustra um caso simples de variável usada para armazenar dados de vendas.

Exemplo Type Vendas Índice As Long Cliente As String*38 Produto As String*24 End Type Um variável do tipo “Vendas” pode ser declarada da

seguinte forma: Dim Vendas_do_Mês As Vendas Os elementos desta nova variável serão então referidos da

forma a seguir: Vendas_do_Mês.Índice Vendas_do_Mês.Cliente Vendas_do_Mês.Produto Cada valor de Vendas_do_Mês, com seus três elementos,

pode ser então gravado em um arquivo Random, por exemplo.

UBound (Função) Descrição Retorna o maior índice disponível para a dimensão indicada

de um array. Sintaxe UBound(array[,dimensão])

Page 68: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Comentários A função UBound pode ser usada em conjunto com a função LBound para se determinar o tamanho de um array.

Exemplo Seja M um array tridimensional declarado da seguinte maneira:

Dim M(1 To 100, 0 To 3, -3 To 4). A função UBound retornará os seguintes valores:

Declaração Valor Retornado

UBound (M, 1) 100 UBound (M, 2) 3 UBound (M, 3) 4

UCase, Ucase$ (Funções) Descrição Retorna um string no qual todas as letras de um argumento

estão convertidas para maiúsculas (“uppercase”). Sintaxe UCase[$](string) Comentários UCase retorna Variant; UCase$ retorna String. UnLoad (Comando) Descrição Descarrega um formulário ou controle da memória. Sintaxe UnLoad objeto Comentários O argumento objeto é o formulário ou array de controles a

ser descarregado. Antes de um formulário ser descarregado, um evento Query_Unload ocorre, seguido por um evento Form_Unload. Quando um formulário é descarregado da memória, todos os controles nele localizados tornam-se inacessíveis. Entretanto, todos os códigos associados com o formulário permanecem na memória.

Val (Função) Descrição Retorna o valor numérico de um string. Sintaxe Val(expressão_string) Comentários O argumento expressão_string é uma sequência de

caracteres que pode ser interpretada numericamente. A função Val para de ler o primeiro caractere que não puder ser reconhecido como parte de um número.

Page 69: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

A função Val retorna sempre Double. Entretanto, se o resultado for associado a uma variável, o tipo Double é convertido para o tipo de dados desta variável.

While...Wend (Comandos) Descrição Executa uma série de comandos dentro de um laço

enquanto (“While”) uma dada condição for verdadeira. Sintaxe While condição [bloco_de_comandos] Wend Comentários O comando While...Wend tem as seguintes partes:

Parte Descrição While Marca o começo do laço While...Wend Condição Qualquer expressão numérica ou string que

dê como resultado “true” (não zero) ou “false” (zero). Se Condição for verdadeira, os comandos de Bloco_de_comandos serão executados. Caso contrário, a execução salta para o comando seguinte a While...Wend.

Bloco_de_coman Qualque número de comandos em Visual Basic.

Wend Marca o fim do laço While...Wend Width# (Comando) Descrição Define uma largura (“Width”) para um arquivo. Sintaxe Width# número_do_arquivo, largura Comentários O comando Width# tem as seguintes partes:

Parte Descrição Número_do_aqrq Número usado no comando Open para abrir o

arquivo.

Largura Expressão numérica entre 0 e 255, inclusive, que indica quantos caracteres devem aparecer em uma linha do arquivo. Se for igual a zero, não haverá limite para o comprimento da linha. O valor default é zero.

Page 70: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Write# (Comando) Descrição Escreve dados em um arquivo sequencial. Sintaxe Write# número_do_arquivo[,lista_de_expressões] Comentários O comando Write# tem as seguintes partes:

Parte Descrição Número_do_arquiv

oNúmero usado no comando Open para abrir o arquivo.

Lista_de_expressões

Expressões numéricas ou string, separadas por vírgulas, a serem escritas no arquivo.

O arquivo identificado por Número_do_arquivo deve ter

sido aberto nos modos Append ou Output. Diferentemente do comando Print#, Write# insere vírgulas

entre itens e aspas no começo e no fim de strings. Write# também insere um caractere de linha nova quando o último caractere de Lista_de_expressões tiver sido escrito.

11. PRINCIPAIS EVENTOS DO VB Activate, Deactivate Aplicação Form, MDI Form. Descrição Activate ocorre quando um formulário torna-se a janela

ativa. Deactivate ocorre quando um outro formulário torna-se a janela ativa.

Sintaxe Sub From_Activate() Sub MDIForm_Activate() Sub From_Deactivate() Sub MDIFrom_Deactivate() Comentários Um formulário pode tornar-se ativo por ações do usuário,

tais como clicar um formulário ou controle, ou por se usar os métodos Show e SetFocus no código. O evento Activate ocorre somente após o formulário ter se tornado visível. O evento Deactivate não ocorre quando o formulário é descarregado sem que outro formulário tenha se tornado ativo, isto é, tenha recebido o foco.

Change

Page 71: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Aplicação Combo box, directory list box, drive list box, horizontal scroll bar, label, picture box, text box, vertical scroll box.

Descrição Indica quando o conteúdo de um controle sofreu alterações. Sintaxe Sub controle_Change (Index As Integer) Comentários O argumento Index identifica um controle unicamente se

este for parte de um array de controles. Click Aplicação Form (não MDI), check box, combo box, command button,

directory list box, file list box, frame, grid, image, list box, menu, OLE, option button, picture box, text box.

Descrição Ocorre quando o usuário pressiona o botão do mouse. Sintaxe Sub Form_Click Sub controle_Click (Index As Integer) Comentários O argumento Index identifica um controle unicamente se

este for parte de um array de controles. DblClick Aplicação Form (não MDI), check box, combo box, command button,

directory list box, file list box, frame, grid, image, list box, menu, OLE, option button, picture box, text box.

Descrição Ocorre quando o usuário pressiona o botão do mouse duas vezes.

Sintaxe Sub Form_DblClick Sub controle_DblClick (Index As Integer) Comentários O argumento Index identifica um controle unicamente se

este for parte de um array de controles. GotFocus Aplicação Form (não MDI), check box, combo box, command button,

directory list box, drive list box, file list box, grid, horizontal scroll bar, list box, OLE, option button, picture box, text box, vertical scroll bar.

Descrição Ocorre quando um objeto recebe o foco, seja pela ação do usuário ou usando-se o método SetFocus no código. Um formulário (form) só recebe o foco quando todos os controles visíveis estão desabilitados.

Sintaxe Sub Form_GotFocus() Sub controle_ GotFocus(Índex As Integer)

Page 72: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Comentários O argumento Index identifica um controle unicamente se este for parte de um array de controles.

Um objeto só pode receber o foco se estiver visível (Visible=True) e habilitado (Enabled=True). Objetos podem receber foco também através da tecla de tabulação. Neste caso, a ordem de tabulação será ditada pela propriedade Tab order.

KeyDown, KeyUp Aplicação Form (não MDI), check box, combo box, command button,

directory list box, drive list box, file list box, grid, horizontal scroll bar, list box, OLE, option button, picture box, text box, vertical scroll bar.

Descrição Ocorre quando o usuário pressiona (KeyDown) ou libera (KeyUp) uma tecla enquanto um objeto tem o foco (para interpretar caracteres ANSI, usar o evento KeyPress).

Sintaxe Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

Sub controle_KeyDown([Index As Integer,]KeyCode As Integer, Shift As Integer)

Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) Sub controle_KeyUp([Index As Integer,]KeyCode As

Integer, Shift As Integer) Comentários Os eventos KeyDown e KeyUp têm os seguintes

argumentos:

Argument Descrição

Índex Identifica um controle quando este for parte de um array de controles.

KeyCode Um código de tecla, tal como KEY_F1 (a tecla F1). Para especificar códigos de teclas, usar as contantes do arquivo CONSTANT.TXT.

Shift Estado das teclas Shift (1), Ctrl(2) e Alt(4) durante a ocorrência do evento. Por exemplo, se Ctrl e Alt estiverem pressionadas, o valor de Shift será 2+4=6.

KeyPress Aplicação Form (não MDI), check box, combo box, command button,

directory list box, drive list box, file list box, grid, horizontal scroll bar, list box, OLE, option button, picture box, text box, vertical scroll bar.

Descrição Ocorre quando o usuário pressiona e libera uma tecla ANSI.

Page 73: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Sintaxe Sub Form_KeyPress(KeyAscii As Integer) Sub controle_KeyPress([Index As Integer,]KeyAscii As

Integer) Comentários O eventos KeyPress tem os seguintes argumentos:

Argument Descrição

Índex Identifica um controle quando este for parte de um array de controles.

KeyAscii Retorna o código ANSI associado `a tecla pressionada. KeyAscii é passado por referência; mudá-lo mudará também o caractere enviado ao objeto.

O objeto que recebe o evento KeyPress é aquele com o

foco. O argumento KeyAscii pode ser convertido para um

caractere usando-se a expressão Chr(KeyAscii). LinkClose Aplicação Form, MDI Form, label, picture box, text box. Descrição Ocorre quando uma conversação DDE termina. Sintaxe Sub {Form|MDIForm}_LinkClose() Sub controle_LinkClose(Index As Integer) Comentários O argumento Index identifica um controle unicamente se

este for parte de um array de controles. LinkError Aplicação Form, MDI Form, label, picture box, text box. Descrição Ocorre quando há um erro durante uma conversação DDE.

O código do erro é passado como um argumento. Sintaxe Sub {Form|MDIForm}_LinkError(LinkErr As Integer) Sub controle_LinkError ([Index As Integer,]LinkErr As

Integer) Comentários O argumento Index identifica um controle unicamente se

este for parte de um array de controles. LinkErr é o número do erro, de acordo com a tabela abaixo.

Nº do Descrição

Page 74: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

1 O outro aplicativo requisitou dados em um formato errado.

6 O aplicativo de destino tentou continuar uma operação DDE após a propriedade LinkMode do formulário source ter sido igualado a zero.

7 Todas as source links estão sendo usadas. 8 O método LinkRequest falhou em atualizar os dados no

controle. LinkError Aplicação Form, MDI Form. Descrição Ocorre quando um string de comando é enviado pelo

aplicativo destino em uma conversação DDE. O aplicativo destino espera que o aplicativo fonte execute a operação especificada pelo string.

Sintaxe Sub {Form|MDIForm}_LinkExecute(StringCmd As String, Cancel As Integer)

Comentários O evento LikExecute utiliza os seguintes argumentos:

Argument Descrição

StringCmd String de comando enviado pelo aplicativo destino. Cancel Este argumento informa se o string de comando foi

aceito ou recusado. Cancel = 0 significa aceitação, enquanto Cancel = 1 significa rejeição.

LinkNotify Aplicação Label, picture box, text box. Descrição Ocorre quando a fonte mudou os dados definidos em um

laço DDE, se a propriedade LinkMode do controle destino for igual a 3 (Notify).

Sintaxe Sub controle_LinkNotify (Index As Integer) Comentários O argumento Index identifica um controle unicamente se

este for parte de um array de controles. LinkOpen Aplicação Form, MDI Form, label, picture box, text box. Descrição Ocorre quando um conversação DDE está sendo iniciada. Sintaxe Sub {Form|MDIForm}_LinkOpen(Cancel As Integer) Sub controle_LinkOpen ([Index As Integer,]Cancel As

Integer)

Page 75: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Comentários O evento LinkOpen utiliza os seguintes argumentos:

Argument Descrição

Index Unicamente identifica um controle se este faz parte de um array de controles.

Cancel Quando o evento LinkOpen acaba, o valor deste argumento determina se a conversação DDE foi estabelecida ou não. Deixando Cancel = 0 a conversação é estabelecida.

Load Aplicação Form, MDI Form. Descrição Ocorre quando um formulário é carregado. Sintaxe Sub Form_Load() Sub MDIForm_Load() LostFocus Aplicação Form, check box, combo box, command button, directory

list box, drive list box, file list box, grid, horizontal scroll bar, list box, OLE, option button, picture box, text box, vertical scroll bar.

Descrição Ocorre quando um objeto perde o foco, seja pela ação do usuário ou usando-se o método SetFocus no código.

Sintaxe Sub Form_LostFocus() Sub controle_ LostFocus([Índex As Integer]) Comentários O argumento Index identifica um controle unicamente se

este for parte de um array de controles. MouseDown, MouseUp Aplicação Form (não MDI), check box, command button, data control,

directory list box, file list box, frame, grid, image, label, list box, option box, OLE, picture box, text box.

Descrição Ocorre quando o usuário pressiona (MouseDown) ou libera (MouseUp) um botão de mouse.

Sintaxe Sub Form_MouseDown (Button As Integer, Shift As

Integer, X As Single, Y As Single) Sub controle_MouseDown ([Index As Integer,]Button As

Integer, Shift As Integer, X As Single, Y As Single)

Page 76: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Sub Form_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)

Sub controle_MouseUp ([Index As Integer,]Button As Integer, Shift As Integer, X As Single, Y As Single)

Comentários Os eventos MouseUp e MouseDown utilizam os seguintes argumentos.

Argument Descrição

Index Unicamente identifica um controle se este faz parte de um array de controles.

Button Argumento que identifica qual botão foi pressionado. Para o botão esquerdo, Button = 1; para o direito, Button = 2 e para o do meio, Button = 4. Somente um valor é possível de cada vez.

Shift Estado das teclas Shift (1), Ctrl(2) e Alt(4) durante a ocorrência do evento. Por exemplo, se Ctrl e Alt estiverem pressionadas, o valor de Shift será 2+4=6.

X, Y Localização do ponteiro do mouse no momento da ocorrência do evento. X e Y são expressos em termos das coordenadas do sistema definidas pelas propriedades ScaleHeight, ScaleWidth, ScaleLeft e ScaleTop.

Diferentemente dos eventos Click e DblClick, os eventos

MouseUp e MouseDown identificam os botões que foram pressionados.

MouseMove Aplicação Form (não MDI), check box, command button, data control,

directory list box, file list box, frame, grid, image, label, list box, option box, OLE, picture box, text box.

Descrição Ocorre quando o usuário move o mouse através do objeto. Sintaxe Sub Form_MouseMove(Button As Integer, Shift As Integer, X As

Single, Y As Single) Sub controle_MouseMove ([Index As Integer,]Button As Integer,

Shift As Integer, X As Single, Y As Single) Comentários O evento MouseMove utiliza os seguintes argumentos:

Argument Descrição

Index Unicamente identifica um controle se este faz parte de um array de controles.

Button Argumento que identifica qual botão foi pressionado. Para o botão esquerdo, Button = 1; para o direito, Button = 2 e para o do meio, Button = 4.

Page 77: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Diferentemente do argumento Button para MouseUp e MouseDown. Aqui, são permitidos valores múlti-plos.

Shift Estado das teclas Shift (1), Ctrl(2) e Alt(4) durante a ocorrência do evento. Por exemplo, se Ctrl e Alt estiverem pressionadas, o valor de Shift será 2+4=6.

X, Y Localização do ponteiro do mouse no momento da ocorrência do evento. X e Y são expressos em termos das coordenadas do sistema definidas pelas propriedades ScaleHeight, ScaleWidth, ScaleLeft e ScaleTop.

O evento MouseMove é gerado continuamente enquanto o

ponteiro do mouse se move sobre o objeto. Paint Aplicação Form, picture box. Descrição Ocorre quando uma parte ou o todo de um formuário ou

picture box sofre qualquer modificação de conteúdo. Sintaxe Sub Form_Paint() Sub controle_Paint([Index As Integer]) Comentários O argumento Index identifica um controle unicamente se

este for parte de um array de controles. O evento Paint pode ser utilizado juntamente com métodos

gráficos em aplicativos. Com este evento, porções de código podem ser escritas para determinar se determinadas saídas gráficas necessitam ser repintadas.

PathChange Aplicação File list box. Descrição Ocorre quando o caminho (path) é alterado quando se

define as propriedades FileName e Path a partir do código. Sintaxe Sub controle_PathChange([Index As Integer]) Comentários O argumento Index identifica um controle unicamente se

este for parte de um array de controles. PatternChange Aplicação File list box. Descrição Ocorre quando o padrão de arquivos (por exemplo, *.*) é

alterado quando se define as propriedades FileName e Pattern a partir do código.

Page 78: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Sintaxe Sub controle_PatternChange([Index As Integer]) Comentários O argumento Index identifica um controle unicamente se

este for parte de um array de controles. QueryUnLoad Aplicação Form, MDI Form. Descrição Ocorre antes de um formulário ser descarregada.. Sintaxe Sub Form_QueryUnLoad (Cancel As Integer,

UnLoadMode As Integer) Sub MDIForm_QueryUnLoad (Cancel As Integer,

UnLoadMode As Integer) Comentários O evento QueryUnLoad utiliza ose seguintes argumentos:

Argument Descrição

Cancel Definindo este argumento em qualquer valor diferente de zero evita-se que o evento QueryUnLoad seja finalizado.

UnLoadMo Indica o motivo de ocorrência do eventos QueryUnLoad, de acordo com a tabela abaixo.

Valo Descrição

0 O usuário escolheu o comando Close no menu de controle (Control-box) do formulário

1 O método UnLoad foi usado no código. 2 A seção do Windows está sendo finaliizada. 3 O Gerenciador de Tarefas do Windows está encerrando o

aplicativo. 4 Um formulário, filho de um MDI, está fechando porque o

MDI está fechando. Utiliza-se o evento QueryUnLoad para verificar se alguma

tarefa foi deixada por finalizar antes do aplicativo ser fechado.

Resize Aplicação Form, MDIForm, OLE, picture box. Descrição Ocorre quando um formuário aparece pela primeira vez ou

quando um controle é redimensionado. Sintaxe Sub {Form|MDIForm|picturebox}_Resize()

Page 79: 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAISpenta3.ufrgs.br/.../modulo13/etapa4/leituras/arquivos/Visual_Basic.pdf · 1. INICIANDO O VISUAL BASIC ELEMENTOS PRINCIPAIS O Visual

Sub OLE_Resize(nova_altura As Single, nova_largura As Single)

Comentários O evento Resize pode ser utilizado para redimensionar controles quando o formulário que os contém for redimensionado.

Scroll Aplicação Horizontal scroll bar, vertical scroll bar Descrição Ocorre quando o usuário aciona barras de rolagem

horizontal ou vertical. Sintaxe controle_Scroll() Timer Aplicação Timer. Descrição Ocorre quando transcorreu o intervalo de tempo definido

para o Timer. Sintaxe Sub controle_Timer([Index As Integer]) Comentários O argumento Index identifica um controle unicamente se

este for parte de um array de controles.