Apostila de Visual Basic 6
Apostila de Visual Basic 6
Apostila de Visual Basic 6
Nesta janela, você deverá selecionar o tipo de aplicativo que será gerado. Poderemos escolher desde um
novo projeto ou aplicativo, até o desenvolvimento de um controle ActiveX ( iremos falar a respeito mais
adiante ). Para um usuário iniciante, aconselhamos a escolha de um novo projeto, ou seja, a opção
STANDARD EXE, que se encontra em destaque na figura acima. Após este procedimento, basta clicar no
botão <ABRIR>. Neste ponto, será exibida a seguinte janela:
Acima, temos a visualização do ambiente de desenvolvimento integrado ( IDE ), que na verdade proporciona
ao desenvolvedor a possibilidade da escrita de código, inserção/controle dos componentes do formulário,
compilação, depuração de código, ou seja, tudo integrado em um único ambiente de fácil interpretação.
Neste ambiente, podemos destacar:
O MENU
Dispõe dos comandos para diversas finalidades, como salvar um projeto, incluir novos componentes,
compilar o projeto, etc... Estas opções estão disponibilizadas através de uma ordem lógica e em grupos de
ferramentas/utilitários.
A BARRA DE FERRAMENTAS
Nesta barra, o desenvolvedor terá acesso aos comandos de menu mais utilizados, agilizando assim o seu
trabalho.
A CAIXA DE FERRAMENTAS
Na caixa de ferramentas, estão dispostos os diversos componentes (objetos) que serão utilizados na
construção da interface de aplicação.
O EXPLORADOR DE OBJETOS
Também conhecido como janela de objetos, é responsável por manter uma relação dos arquivos que compõe
o seu projeto, ou seja, seria uma espécie de Windows Explorer da aplicação.
A JANELA DE PROPRIEDADES
Cada componente que compõe o seu projeto ( aplicativo que está
sendo desenvolvido ), possui características determinadas por você.
Imagine um botão de comando, este deverá ter uma altura e
largura, uma cor, uma determinada fonte para o texto que estiver
dentro do mesmo, uma aparência, etc... Isso são propriedades, e as
mesmas são controladas nesta janela. Quando selecionarmos um
determinado objeto/componente, automaticamente serão exibidas
as suas propriedades.
O FORMULÁRIO
Na
O EDITOR DE CÓDIGO
Neste editor, você irá escrever as linhas de código. Como você pode observar, no editor, poderemos escolher
o componente/objeto a ser trabalhado e o respectivo evento a ser codificado. No gráfico acima, temos
selecionado o objeto formulário ( FORM ), no evento "ao carregar" ( LOAD ), ou seja, a codificação que será
realizada quando o formulário for carregado. Aos poucos iremos nos acostumando com o trabalhado de
codificação dos componentes/objetos e seus respectivos eventos.
Ao trabalhar com o Visual Basic 6.0, você poderá trabalhar com o Mouse, bem como substituir o mesmo co m
teclas de atalho. Para tal procedimento, utilize a tabela a seguir:
Para a janela de código
Combinação do teclado Utilidade/função
CTRL + BREAK Aborta a execução de um determinado aplicativo
CTRL + DELETE A partir do cursor, remove o restante da palavra
CTRL + DOWN ARROW Exibe a próxima rotina
CTRL + END Move o cursor para o final do módulo
CTRL + F Abre uma janela de diálogo para a procura de expressões
CTRL + H Abre uma janela de diálogo para a procura/substituição de expressões
CTRL + HOME Leva o cursor para o inicio do módulo
CTRL + I Ativa a guia de rápida informação
Para abrir o editor de códigos, você poderá proceder das seguintes maneiras:
Através desta guia, poderemos definir as cores e fontes que serão empregadas pelo editor no texto normal (
tudo aquilo que não for comando ou função da linguagem ), etc... Basta selecionar cada um dos itens que
estão na caixa Code Colors e em seguida, formatar a fonte a ser utilizada.
Guia General
As opções de configuração desta guia são utilizadas por programadores mais experientes, pois permite o
ajuste fino de vários aspectos, como detecção de erros e compilação, etc... Por se tratar de opções
avançadas não iremos entrar em detalhes a respeito da mesma. Mais adiante, quando você tiver maiores
conhecimentos a respeito do VB, estaremos detalhando esta guia.
Guia Docking
Esta guia possui as opções para determinar quais janelas do IDE estarão ancoradas.
Guia Environment
No frame When Visual Basic Wizards, poderemos selecionar uma das duas opções disponíveis. Caso escolha
a segunda ao invés da primeira, não será mais exibido a janela Project Wizard. Porém para usuários
iniciantes, aconselhamos deixar o valor padrão marcado, ou seja, PROMPT FOR PROJECT;
Caso você tenha seguido nossa sugestão, poderá diminuir o número de Wizards exibidos na janela inicial do
Visual Basic, desmarcando alguns itens relacionados no Frame SHOW TEMPLATES FOR.
No frame WHEN A PROGRAM STARTS, você poderá escolher a forma pela qual o VB irá salvar as alterações
do seu projeto. A opção mais utilizada é a PROMPT TO SAVE CHANGES, que fará com que o VB verifique se
você quer ou não salvar as alterações do seu projeto sempre que seu aplicativo for executado ou fechado
através do IDE. Já a opção DONT SAVE CHANGES, é útil quando você possui uma série de projetos exemplos
e que a maioria ou sua totalidade não precisa ser salva.
Já a guia ADVANCED, como o próprio nome diz, é utilizada apenas por usuários avançados e iremos estudar
esta futuramente.
Marcelino Macêdo - 10 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Observe que o formulário da aplicação aparece em destaque na figura. Agora, iremos estudar as partes de
um formulário. Observe o gráfico a seguir e sua legenda na tabela abaixo do mesmo:
Item Descrição
Menu de controle - Neste menu, é permitido restaurar, mover, redimensionar, minimizar, maximizar
001 e fechar o formulário. Para ativar este botão, basta definir a propriedade ControlBox do formulário
como True, na janela de propriedades.
Título - Representa um texto que será exibido na barra de títulos do formulário, normalmente
utilizado para identificar o nome ou função do aplicativo. O texto a ser exibido como título do
002 formulário, é configurado na propriedade CAPTION deste, na janela Properties. Obs.: Se a
propriedade BorderStyle do formulário estiver setada para None, o título assim como toda a barra de
título, não estarão visíveis.
Barra de títulos - Representada por uma barra de coloração diferenciada do restante do formulário,
003 ela exibe o título do formulário, bem como poderá ser usada para arrastar este para outra posição na
tela do micro.
Botões de minimizar, restaurar e fechar o formulário, padrão como em qualquer outra aplicação for
windows. Para desativar o botão de minimizar o formulário, basta setar a propriedade Minbutton do
004
formulário para false na janela properties, assim como para ignorar o botão restaurar, basta setar a
propriedade Maxbutton da janela properties do formulário para false..
005 Bordas do formulário - Especificam os limites visuais do mesmo
Área de trabalho do formulário - toda a área na qual poderemos trabalhar com os componentes de
006
nossa aplicação que deverão ser colocados sobre o formulário.
Citamos várias vezes na tabela acima, sobre ajustar uma determinada propriedade do formulário. Isso é fácil
de se realizar, para isso, proceda da seguinte forma:
1. Dê um clique em qualquer local do formulário;
2. Na janela Properties Form 1, selecione a propriedade a ser alterada;
Marcelino Macêdo - 11 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
3. Altere o seu valor por meio de digitação ou de seleção de valores através da caixa de seleção,
conforme mostra a figura animada a seguir:
Passo a passo alterando o caption de um formulário:
Marcelino Macêdo - 12 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Esta propriedade determina o ícone que deve ser exibido na barra de tarefas quando o
Icon formulário estiver minimizado durante a execução. Os ícones padrões do VB,
normalmente são instalados no diretório \Graphics\Icons da pasta VB.
Esta propriedade, determina a distância do formulário a partir da esquerda da tela. A
Left
unidade de medida desta é a mesma da propriedade Height.
Definindo esta como True, o formulário irá mostrar o botão maximize padrão no lado
MaxButton direito da barra de título. Se for configurada como False, o botão não estará disponível
para o usuário.
Definindo esta propriedade como True, o formulário irá exibir o botão Minimize, caso
MinButton
contrário, este botão não estará disponível.
O nome especificado nesta propriedade, irá definir o nome ao qual o Visual Basic irá se
referir ao formulário a nível de codificação do sistema. Por exemplo, se tivermos a
Name
propriedade Name = Principal, deveremos citar este formulário como Principal quando
formos escrever alguma linha de código se referenciando ao mesmo.
Através desta propriedade, poderemos alterar a medida padrão de twips para pixels
ScaleMode
por exemplo.
Esta propriedade permite ocultar o formulário da barra de tarefas. Ao escrever um
ShowInTaskbar determinado aplicativo e se tenha a intenção de que ele passe a ocupar a caixa ao lado
da barra de tarefas, basta definir esta propriedade como False.
Define a largura de um formulário, através de um número que é representado por
Width
twips, salvo o caso de ter sido alterada a propriedade ScaleMode.
Esta configuração define a maneira pela qual o formulário será inicializado. As opções
disponíveis são:
Marcelino Macêdo - 13 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
3. Para incluir o componente no formulário, basta dar um clique duplo sobre o mesmo, e automaticamente
este será incluso no seu formulário, conforme podemos observar na figura a seguir:
4. Observe que, ao incluir um componente no formulário, este passa a ser o objeto ativo, e a janela
Properties automaticamente passa a exibir as propriedades do objeto selecionado, neste caso, o
componente CommandButton;
5. Nosso primeiro passo é alterar o texto que aparece dentro do componente. Isto é realizado na
propriedade Caption do CommandButton. Altere esta para "Finaliza". Neste ponto, seu formulário
deverá ter o aspecto seguinte:
Marcelino Macêdo - 14 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
6. Agora deveremos programar o evento do clique do mouse sobre o botão, para que, neste caso, o
sistema seja finalizado. Para acionar a janela de códigos, já na programação destinada ao objeto
desejado, neste caso o CommandButton, basta dar um duplo clique no objeto, ou seja, dê um duplo
clique no objeto CommandButton. Sua área de trabalho, passará a ter o seguinte aspecto:
7. Observe que a janela de código já esta aberta para o componente Command1, e no evento Click,
ou seja, o evento que será disparado quando o componente Commandbutton receber o click do
mouse. Caso não fosse este o evento a ser programado, bastaria você selecionar o novo evento na
caixa de seleção à sua direita. Observe que a mesma está apontando para o evento Click;
8. Nosso objetivo é que o sistema seja encerrado quando clicarmos sobre o CommandButton inserido
em nosso formulário, para isso, temos o comando END, que deverá ser colocado entre o PRIVATE
.... e o END SUB, pois eles marcam o inicio e o final da programação de um determinado evento.
Logo, sua área de trabalho deverá ter o seguinte aspecto:
Marcelino Macêdo - 15 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
9. Agora, tente executar o sistema. Para isso, basta clicar sobre o botão START da barra de
ferramentas, que está em destaque na figura a seguir:
10. Ao executar o seu sistema, sua área de trabalho terá o seguinte aspecto:
11. Observe que, em tempo de execução, o formulário que antes era cheio de pontinhos em seu interior,
agora passa a ter uma cor uniforme. Os pontinhos, são apresentados ao desenvolvedor, para facilitar o
enquadramento de componentes dentro do mesmo. Quando você clicar sobre o botão "finaliza", observe que
o sistema será encerrado e o controle passará novamente ao VB6, possibilitando que você continue o
desenvolvimento de seu sistema.
Vamos imaginar agora que você irá salvar este projeto para continuar a trabalhar com o mesmo no dia
seguinte. Para isso, basta clicar sobre o botão padrão de SALVAR, o mesmo encontrado no Word, Excel,
etc... Ao clicar sobre este, será apresentada a seguinte janela:
Marcelino Macêdo - 16 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Nesta janela você irá definir o nome do formulário de sua aplicação, este nome deverá ser digitado na caixa
de edição "Nome do Arquivo". Digite o nome de sua preferência. Após digitar o mesmo e clicar sobre o
botão SALVAR, será apresentada a seguinte janela na tela do seu micro:
Agora você deverá dar um nome para o seu projeto. Digite o mesmo e clique em seguida em SALVAR. O
controle volta ao VB6.
Como você já salvou o projeto, basta fechar o VB6.
Marcelino Macêdo - 17 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
2. Observe que, ao efetuarmos o clique duplo em qualquer área livre do formulário, na janela de código, o
cursor já estará disponível no evento LOAD do FORM1, ou seja, evento que será executado quando o
formulário for carregado/executado. É justamente neste evento que, através de códigos de programa,
iremos alterar o título da janela do formulário ( CAPTION ) via programação, para isso, digite o comando que
apresentamos no gráfico a seguir:
3. Observe que o comando FORM1.CAPTION = "PROJETO APRENDA EM CASA", está na verdade dizendo que,
a propriedade CAPTION do objeto FORM1 é igual à "PROJETO APRENDA EM CASA".
4. É interessante citar que, a propriedade CAPTION da janela PROPERTIES não teve o conteúdo alterado,
conforme você pode observar na figura acima, em seu canto direito inferior. Esta propriedade só será
alterada em tempo de execução. Execute o projeto e verifique o resultado:
Marcelino Macêdo - 18 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
5. Apesar de não termos alterado em tempo de criação o conteúdo da propriedade CAPTION do FORM1, na
janela PROPERTIES, o fizemos através do comando visto acima, em tempo de execução. Como não fizemos
nenhuma espécie de codificação para finalizar o sistema, neste caso, você deverá clicar sobre o botão (X)
que se encontra na parte direita superior da janela.
Conforme você observou, a forma básica de se alterar uma determinada propriedade em tempo de
execução, a sintaxe é:
Objeto/Componente.Propriedade = conteúdo
Vamos ver mais um exemplo, de como se trabalhar com eventos. Desta vez, vamos instruir o equipamento
de que, todas as vezes que o formulário seja carregado, ele ocupe o centro absoluto do seu monitor. Isso
também será realizado no evento LOAD do FORM1. Para isso, iremos introduzir a seguinte linha de código,
conforme mostra a figura a seguir:
Observe que, ordenamos ao equipamento que, ao ocorrer o carregamento do formulário, ele seja movido
(MOVE), para a posição vertical,horizontal centralizada do monitor, ou seja, Screen.Width e Screen.Height.
Execute novamente o sistema e verifique que a janela da aplicação, nesta oportunidade será exibida de
forma centralizada.
Agora vamos imaginar que o usuário poderá também, em tempo de execução, alterar o tamanho do
formulário, clicando e arrastando as suas bordas. Como faríamos para centralizar o formulário
automaticamente sempre que tal procedimento fosse detectado? Isso é fácil, basta repetir a linha MOVE
(Screen........ para o evento RESIZE do FORM1. Feche a aplicação, dê um clique duplo em qualquer área
livre do formulário e em seguida, selecione na caixa de seleção à sua direita da janela de código, o evento
RESIZE, codificando o mesmo conforme mostra a figura a seguir:
Execute o aplicativo e teste o mesmo, clicando e arrastando alguma das bordas da janela deste, e verifique
que, ao acabar de redimensionar o formulário, automaticamente ele será centralizada, pois o evento
Marcelino Macêdo - 19 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
RESIZE, que ocorre sempre que o formulário é redimensionado pelos processos de clicar e arrastar é
disparado.
Vamos imaginar uma nova situação. Quando o usuário clicar no botão de fechar, você quer que seja
apresentada uma nova janela agradecendo pelo uso do seu aplicativo. Primeiramente, devemos definir o
evento que deverá ser codificado. Neste caso é o evento UNLOAD do formulário, que é executado sempre
que o formulário é fechado. O outro fator é saber qual comando usar para abrir a nova janela de
agradecimento, que neste caso é o MSGBOX, ou seja, o comando que abre uma janela de diálogo. Encerre o
aplicativo caso o mesmo ainda esteja ativo e, após dar um clique duplo em qualquer área livre do
formulário, já dentro do editor de código, selecione o evento UNLOAD do objeto FORM, entrando com a
seguinte codificação:
Observe que entramos com o comando MSGBOX (construa uma caixa de diálogo) ("Obrigado pelo uso de
Nosso aplicativo") (exiba a mensagem que está entre aspas) ,vbYes ( e disponibilize o botão de OK).
Execute seu aplicativo e em seguida, clique sobre o botão (X) de fechar, será então apresentado o seguinte
resultado:
Observe que a programação for Windows, tem como um dos seus grandes segredos, o conhecimento dos
eventos, ou seja, em que determinado evento deveremos codificar uma determinada ação.
Antes de iniciarmos o estudo dos componentes que iremos utilizar para gerar aplicativos, vamos falar sobre
um dos assuntos principais em qualquer linguagem de programação, as variáveis. O objetivo do uso de
variáveis dentro de um aplicativo é o de manipular e tratar dados processados pelos programas que fazem
parte do seu projeto. No Visual Basic, temos os seguintes tipos principais de variáveis:
Tipo da variável Faixa de valor a armazenar
Empty
Null
Integer -32.768 a 32.767
Long -2.147.483.648 a 2.147.483.647
Single -3.402823E38 a 3.402823E38
Marcelino Macêdo - 20 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Marcelino Macêdo - 21 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Sendo que, de cima para baixo, o primeiro é um Textbox e logo abaixo, temos o CommandButton.
Insira estes três componentes dentro do seu formulário. Lembrando que:
1. Para inserir um componente em um formulário, basta dar um clique duplo sobre o componente, e
este será automaticamente inserido;
2. Para posicionar um componente no local desejado do formulário, basta clicar e arrastar o mesmo
para o local desejado;
3. Para redimensionar (aumentar ou diminuir o tamanho) o mesmo, basta clicar e arrastar em uma
das bordas que circulam o componente.
O formulário ao final do procedimento, deverá estar com o seguinte aspecto:
Marcelino Macêdo - 22 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Observe que, para os componentes COMMAND, apenas os posicionamos em um novo local do formulário, já
para o componente TextBox, redimensionamos o seu tamanho.
Agora, inclua um componente LABEL, acima do componente TextBox. O componente Label está circulado na
figura a seguir, e sua posição final já está desenhada:
Marcelino Macêdo - 23 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Observe que inserimos uma caixa de texto em nosso formulário ( Label ) ela tem o objetivo de inserir um
texto, uma espécie de etiqueta para exibir uma informação ao usuário. Pelo fato de estar disposta acima da
caixa de edição, qual seria a melhor frase para orientar o usuário? Que tal : "Digite uma frase na caixa de
texto abaixo". Assim como no FORM, a propriedade CAPTION especifica o texto que será exibido na barra de
título, o texto que será exibido dentro da área da etiqueta, deverá ser digitado na propriedade CAPTION do
componente LABEL. Selecione o mesmo, dando um clique simples sobre ele, e altere a propriedade CAPTION
deste para o texto sugerido. Ao final deste procedimento, teremos a seguinte imagem em nossa área de
trabalho:
Vamos trabalhar mais um pouco com as propriedades do LABEL, alterando a cor da fonte do texto que está
sendo exibido em seu interior. Para isso, temos a propriedade FORECOLOR do mesmo. O LABEL já está
selecionado, basta na janela PROPERTIES localizar a propriedade FORECOLOR, e dar um clique sobre sua
caixa de seleção e clicar sobre a cor vermelha, conforme mostra a figura a seguir:
A principio o nosso formulário e nossa etiqueta estão configurados. Agora, observe que dentro da caixa de
edição ( TextBox ), existe uma palavra denominada "Text1", que na verdade, além da frase que será
apresentada quando o sistema for executado, representa o nome do componente dentro do código. Vamos
fazer com que nada apareça dentro da caixa de edição quando o sistema for executado, para isso, basta
apagar todo o conteúdo da propriedade TEXT do componente TEXTBOX. Execute este procedimento.
Agora, vamos dar uma espécie de rótulo aos nossos botões, ou seja, a nível de usuário, qual o objetivo do
botão 01? e do botão 02? Sabemos que o primeiro deverá limpar o conteúdo eventualmente digitado no
TextBox e o segundo, tem a função de finalizar o sistema. Então, iremos alterar o CAPTION do
CommandButton1 para "LIMPA" e o conteúdo do CAPTION do CommandButton2 para "FINALIZA". Ao final
deste procedimento, sua área de trabalho terá o seguinte aspecto:
Marcelino Macêdo - 24 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Observe que a nível de informação e visual o nosso formulário está dentro do esperado. Agora temos que
codificar os eventos necessários a sua operação.
O primeiro evento está ligado ao click no botão "LIMPA". Observe que, ao clicar sobre este, o sistema deverá
apagar o conteúdo do TextBox. Primeiro devemos identificar de que forma é chamado o componente
TEXTBOX dentro do projeto. Esse nome é identificado na propriedade NAME do componente. Para isso, se
você selecionar o componente TEXTBOX e verificar a sua propriedade NAME, esta estará igual a TEXT1,
conforme podemos observar na figura a seguir:
É este o nome que deveremos utilizar dentro da codificação do sistema. Na próxima aula iremos dar algumas
dicas sobre a nomenclatura de componentes.
Vamos então á codificação:
Nosso objetivo é limpar o conteúdo que por ventura tenha sido digitado no componente TEXTBOX, daqui
para frente denominado de TEXT1. Sabemos que a propriedade TEXT deste componente é que armazena o
conteúdo digitado no mesmo, logo deveremos igualar a propriedade TEXT do componente TEXT1 à uma
string vazia ( "" ). Quando vamos especificar um valor a uma determinada propriedade de um determinado
componente em tempo de execução, usamos a sintaxe a seguir:
Nome_componente.Propriedade = valor
Sabendo disso, dê um clique duplo no botão CommandButton1, que possui o rótulo "LIMPAR, e dentro da
área de código, programe conforme mostra a figura a seguir:
Ou seja, estamos dizendo que, ao se clicar sobre o componente Command1 ( Commandbutton1 ), o sistema
deverá jogar uma String nula como valor da propriedade Text do componente Text1.
Marcelino Macêdo - 25 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Nosso próximo passo é programar o evento Clicar do segundo botão ( Command2 - CommandButton2 ), pois
quando o usuário clicar sobre ele, o sistema deverá ser finalizado.
Volte o controle para o formulário e dê um clique duplo no CommandButton2, e dentro da área de código
que será aberta, codifique conforme a figura a seguir:
Dentro do que foi proposto, nosso sistema está finalizado. Execute o mesmo, digite algo dentro da caixa de
edição, clique sobre o botão LIMPAR e em seguida, clique sobre o botão FINALIZAR para que veja na prática
o efeito do que foi gerado.
É claro que este sistema é simples, estamos nas primeiras aulas, apenas habituando o aluno a trabalhar com
componentes, propriedades e eventos.
Marcelino Macêdo - 26 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
A seguir, iremos falar um pouco sobre os componentes mais comuns que serão usados em suas aplicações
VB.
Controle LABEL
Este controle é responsável por exibir um texto no formulário, ou seja, uma etiqueta. Este texto é utilizado
para somente leitura, e poderá ser alterado através de sua propriedade Caption, tanto em tempo de
desenvolvimento quanto em tempo de execução.
O principal uso deste componente é exibir informações ao usuário. As propriedades mais importante de um
LABEL são:
Name define o nome do componente a ser utilizado dentro da fonte do sistema.
Caption Esta propriedade armazena o texto que será exibido sobre a forma de etiqueta.
Quando configurada para true, faz com que o "tamanho" do componente seja
Autosize
automaticamente configurado de acordo com o tamanho do texto a ser exibido.
Faz com que exista uma quebra automática de linha, expandido o tamanho da
WordWrap legenda em uma linha, caso o texto definido em Caption, ultrapasse o limite
horizontal de tamanho do Label.
Controle CommandButton
Os botões são utilizados para extrair respostas simples do usuário ou ainda para chamar determinadas
funções dentro de um formulário, como por exemplo, uma função para limpar o conteúdo de uma caixa de
edição, finalizar o sistema, etc... Tais procedimentos serão realizados após o click no botão, ou seja, após o
evento OnClick do mesmo.
Na tabela a seguir, iremos citar as propriedades mais importantes do CommandButton:
Esta propriedade determina o nome pelo qual o controle será referenciado na fonte
Name
do projeto.
Caption Armazena o texto que será exibido dentro do CommandButton.
Style Nesta poderemos definir se o botão irá aceitar apenas texto dentro de seu interior
Marcelino Macêdo - 27 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Controle TextBox
Utilizadas para proporcionar a entrada de dados, através do teclado, por parte do usuário.
Na tabela a seguir, temos as principais propriedades do controle em questão:
Name Armazena o nome do controle, que deverá ser utilizado na fonte do sistema
Armazena o conteúdo digitado na caixa de texto. Neste caso, esta propriedade
Text
substitui a Caption
Limita o número de caracteres que poderá ser digitado pelo usuário em tempo de
MaxLenght
execução.
Utilizado para mostrar o caracter * enquanto existe a digitação do conteúdo. Útil
Passwordchar
para utilização em campos do tipo senha.
Multiline Permite ao não ao usuário digitar mais de uma linha na caixa de texto
Caso configurada como true, fará a caixa de texto exibir dados, sem permitir a sua
edição. Este tipo de caixa é bastante utilizado nas caixas de texto que contém o
Locked
texto de licenciamento de um determinado software, sendo que neste caso, o
conteúdo da caixa deverá ser previamente digitado na propriedade Text.
Os principais eventos das caixas de texto são:
Ocorre sempre que o usuário inserir, substituir ou excluir um caracter da caixa de
Change
texto
Marcelino Macêdo - 28 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Sendo assim, um botão pode possuir dois estados : True ou False (selecionado ou não), já uma caixa de
seleção poderá ter até três estados: selecionada, não selecionada e acinzentada (nem ativada e nem
desativada, indicando que aquela opção não poderá ter o seu conteúdo alterado pelo usuário).
Controle : Caixas de lista : List Box
Este controle tem a finalidade de exibir ao usuário uma lista de dados. Exemplo: Uma lista de todos os
estados do Brasil, que será disponibilizada ao usuário no ato do preenchimento do estado residencial do
mesmo em sua ficha cadastral.Esta lista poderá oferecer ao usuário a oportunidade de seleção de um ou
mais de seus dados para que esta seleção seja utilizada em processamento posterior. Os dados de uma lista
não podem ser editados de forma direta, ou seja, na própria lista, pois como o nome diz, é um controle de
seleção e não de alteração de dados. Veja a seguir as principais propriedades das caixas de lista:
Propriedade Objetivo
List Retorna o valor selecionado de uma lista
ListCount Fornece o número de itens de uma caixa de lista
MultiSelect Determina se o usuário pode ou não selecionar mais de um item da lista
Propriedade boleana que pode assumir um valor para que em tempo de execução um valor
Selected
da lista esteja previamente selecionado.
Sorted Classifica ou não os itens de uma lista
A propriedade list deverá ser utilizada com uma indexação de itens, ou seja, as posições dos valores de uma
caixa de lista se iniciam em zero e vão até o número total de itens menos 1. Este índice deverá ser utilizado
também na propriedade Selected, conforme observamos no exemplo a seguir:
List1.Selected(4)=true
No comando acima, estamos pré-selecionado (via código) o quarto item da lista.
O evento mais utilizado nas caixas de lista é o DblClick(), ou seja, verificando o item selecionado.
Já o método AddItem é utilizado para preencher os itens de uma lista. O método RemoveItem é utilizado
para excluir um item de uma lista e o método Clear utilizado para remover todos os itens de uma lista.
Observe os exemplos a seguir:
List1.additem "Paulo"
No exemplo acima, na caixa de lista denominada "List1" foi incluso o valor "Paulo".
Marcelino Macêdo - 29 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
2. Neste menu, selecione a opção ADD TAB, será então exibida a seguinte janela:
3. Digite o nome da nova GUIA na janela em destaque na figura acima e em seguida clique em OK. Neste
exemplo, vamos digitar o nome AVANCADO. Veja como ficará a sua caixa de ferramentas após o término
desta operação:
Observe que, os controles da caixa GENERAL foram escondidos e estão sendo exibídos os controles da guia
AVANCADO, que por padrão, possui apenas o controle de seleção, que é incluso sempre que uma nova guia
for adicionada a sua caixa de ferramentas. Agora, para que possamos incluir controles nesta nova guia, ou
até mesmo em outra guia, bem como na guia GENERAL, proceda da seguinte forma:
1. Clique com o botão direito do mouse sobre a área livre da GUIA que irá receber o novo controle;
2. No menu suspenso que é apresentado, selecione a opção COMPONENTS, será então apresentada a
seguinte janela:
Marcelino Macêdo - 30 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
3. Na guia CONTROLS, selecione o(s) controle(s) que deevrão ser inclusos na caixa de ferramentas, na guia
AVANCADO. No nosso caso, como exemplo, iremos incluir o CONTROLE DE ADMINISTRAÇÃO DE IMAGENS
KODAK e o CONTROLE DE DIGITALIZAÇÃO DE IMAGENS KODAK, e em seguida, clicar em OK. Observe como
irá ficar a nossa caixa de ferramentas:
Observe que os dois novos controles já estão na nova GUIA que você criou. Caso queira inserir um controle
que etsá na guia GENERAL no seu projeto, vasta selecionar a GUIA e assim sucessivamente.
Lembramos que você poderia incluir todos os controles em uma única GUIA, como por exemplo a GENERAL,
porém a divisão dos controles por GUIAS é de grande utilidade para a organização e fácil localização dos
controles durante o processo de desenvolvimento.
Marcelino Macêdo - 31 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
(002) - Através da especificação do componente a da listagem através do comando WITH das propriedades a
serem alteradas e seus respectivos valores, conforme poderemos observar a seguir:
Private Sub Form_Load()
With Command1
.Caption="SALVAR"
.Visible=false
.Enabled=false
End With
End Sub
É muito importante que você tenha entendido tal procedimento, pois o emprego desta habilidade é comum.
Observe que entre os dois códigos citados acima, na forma 002, economizamos escrita de código e
diminuimos o fator erro, pois é muito mais fácil errar a digitação da palavra Command quando digitada 5
vezes do que quando digitada 1 vêz. Apenas não é aconselhável usar o método 002 quando temos apenas
uma propriedade a alterar em tempo de execução.
Um outro procedimento comum é o uso das abreviações em nome de componentes, procedimento indicado
no momento em que você inclua os objetos na janela do seu projeto. Tais denominações (propriedade
NAME) devem ser legíveis e condizentes com a função desejada para os mesmos. Veja o exemplo a seguir:
Quando incluimos um botão de comando, ele automaticamente recebe o nome de COMMAND1 na janela de
propriedades e sempre que for invocado em seu código. Ao incluir um próximo botão decomando ele terá o
nome COMMAND2, e assim sucessivamente.
O programador deverá ter a noção de que irá utilizar muitos componentes do tipo COMMAND BUTTON e
outros e, alterando assim seus nomes para algo que lembre a sua finalidade, facilitará a interpretação do
código do mesmo. Vamos imaginar que o botão 01 tenha a finalidade de finalizar o seu projeto, ou seja, sair
do mesmo. Ao invés de ter o nome de COMMAND1 no projeto, seria mais fácil alterar o valor da propriedade
NAME para CMDSAIR, ou seja, "comando sair". Desta forma a interpretação do código por parte do
desenvolvedor e de um terceiro profissional que por ventura tenha que analisar o código seja facilitada..
Veja como outro exemplo, um botão de opção que irá receber o estado civil do cliente, este botão de opção
poderia se chamar OPT_EST_CIVIL.
Acreditamos que os exemplos e motivos expostos são o suficiente, de agora em diante, siga estes passos e
terá um fonte legível e de fácil interpretação.
Marcelino Macêdo - 32 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
O primeiro passo é alterar a propriedade CAPTION dos LABELS, respectivamente para : "DIGITE UM
NÚMERO", "DIGITE OUTRO NÚMERO", "RESULTADO DA SOMA". Ao final desta alteração, seu formulário terá
o seguinte aspecto:
Em seguida, iremos apagar o conteúdo da propridade TEXT de todos os TextBox. Com isso, o interior destes
componentes não irão mais exibir as palavras TEXT1 ... TEXT2 ... TEXT3.
Altere a propriedade CAPTION do CommandButtom para "SOMAR". Ao final destes procedimentos, seu
formulário terá o seguinte aspecto:
Temos o obejtivo de fazer com que, após clicar sobre o botão "SOMAR", seja exibido no terceiro TextBox a
soma dos valores entrados nos dois primeiros TextBoxes. Porém observe o seguinte:
1. Em um TextBox, o conteúdo digitado é interpretado como String, ou seja, um valor fixo e que não
poderá sofrer nenhuma espécie de operação matemática.
Tendo o conhecimento de tal regra, vamos tentar de forma direta, executar a soma do conteúdo do
Textbox1 e do Textbox2 armazenando o seu resultado em TextBox3. Dê um clique duplo sobre o Buttom e
entre com o seguinte código:
Private Sub Command1_Click()
Text3.Text = Text1.Text + Text2.Text
End Sub
Execute o seu projeto. No primeiro Textbox, digite o valor "12" e no segundo o valor "34". Em seguida,
clique sobre o botão "SOMAR" e veja o resultado no terceiro TextBox:
Marcelino Macêdo - 33 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Observe que o resultado da soma foi "1234", ou seja, um valor errado, pois a soma correta de 12 + 34 =
46. Mas o porque este resultado?
Quando solicitamos de forma direta a soma "+" do conteúdo do Textbox1 com o conteúdo do TextBox2 (
text1.text+text2.text), estamos na verdade solicitando uma concatenação, ou seja, o agrupamento de duas
Strings, onde as mesmas são colocadas uma ao lado da outra, sendo assim, em uma concatenação de
"12"+"34" é igual à "1243".
Conforme citamos, o conteúdo dos Textboxes são considerados Strings. Como neste caso queremos realizar
uma operação matemática, deveremos utilizar uma função para transformar String em número. Sendo
assim, teremos que digitar o seguinte conteúdo no evento click do Buttom:
Private Sub Command1_Click()
Text3.Text = (Val(Text1.Text) + Val(Text2.Text))
End Sub
No comando acima, estamos utilizando a função VAL, que tem o objetivo de transformar String em número,
assim sendo, agora teremos em Text3 o resultado da soma dos números de Text1 e Text2. Execute o
projeto, entre com os mesmos valores e veja o resultado após o clique no botão SOMA:
Outro detalhe interessante é que, antes de usarmos a função VAL, com o operador "+", o projeto compilou e
executou sem erros, porque estamos solicitando uma concatenação, porém se tentarmos usar o operador de
multiplcação (*) por exemplo, o VB irá gerar um erro, pois em Strings não existe a operação de
multiplicação.
A sintaxe da função VAL é a seguinte:
VAL (variável)
O objetivo da função VAL é converter o conteúdo de uma variável String para uma variável numérica. Ao
contrário do que você pode estar pensando, as funções não existem apenas para transformar valores String
para numéricos. Existem funções para manipulação de Datas, Strings, números, etc...
Nossa próxima aula terá o objetivo de estudar as principais funções do VB6.
Marcelino Macêdo - 34 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Marcelino Macêdo - 35 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Observe que o caminho na qual você está operando no momento é exibido no label2.
Função Left
Esta função tem o objetivo de retornar x caracteres a partir da esquerda de uma string. Sua sintaxe é:
Left (variável, número_caracteres)
Observe o exemplo a seguir:
Private Sub Fom_load()
Dim empresa as String
Let empresa="Projeto Aprenda em Casa"
MsgBox (left(empresa,7))
End Sub
No exemplo acima, teremos uma caixa de mensagens apenas com a palavra "Projeto", pois solicitamos que
seja exibida na mesma apenas as 7 primeiras posições (caracteres) da variável empresa.
Função Right
Tem praticamente o mesmo objetivo da função Left, com exceção de retornar x caracteres a partir da direita
da String. Veja o exemplo a seguir:
Private Sub Fom_load()
Dim empresa as String
Let empresa="Projeto Aprenda em Casa"
MsgBox (Right(empresa,7))
End Sub
No exemplo acima, teremos uma caixa de mensagens apenas com a frase "em Casa", ou seja, os 7 últimos
caracteres da variável "empresa".
Marcelino Macêdo - 36 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
O primeiro passo é configurar os botões de comando que representam os números que irão ser utilizados no
teclado numérico de nossa calculadora. A lógica é a seguinte: Cada vez que o usuário clicar sobre um dos
botões numéricos, este deverá se acrescentado ao TextBox. Ou seja, teríamos a seguinte situação:
Conteúdo do TextBox = Conteúdo do TextBox + valor representado pelo botão.
Observe que, o TextBox é uma String e, deveremos realizar uma concatenação, ou seja, soma do valor já
armazenado nesta objeto com o valor representado pelo botão clicado. Assim sendo, para o botão que
representa o número "1" teremos o seguinte código:
Private Sub Command1_Click()
Text1.Text = Text1.Text + "1"
End Sub
Este mesmo procedimento será utilizado para os botões 2, 3, 4, 5, 6, 7, 8, 9 e 0, apenas substituindo o "1"
por "2" ... "3" .... e assim sucessivamente. Observe a sequência a seguir:
Código para o botão 2:
Private Sub Command2_Click()
Text1.Text = Text1.Text + "2"
End Sub
Código para o botão 3:
Marcelino Macêdo - 37 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Marcelino Macêdo - 38 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Agora, vamos proceder da mesma forma para a codificação do botão de subtração, substituindo o conteúdo
da variável operação para SUBTRACAO, conforme mostra o código a seguir para o bota~em questão:
Agora, nosso próximo passo é codificar o botão de igualdade, que deverá fazer apresentar no TextBox o
resultado da operação aritmética realizada entre os dois valores. Para isso, deveremos utilizar o atual valor
do TextBox com o tipo de operação a ser realizada bem como com o valor anterior armazenado na variável
VALOR. Então, teremos no botão de igualdade o seguinte código:
Marcelino Macêdo - 39 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Um dos procedimentos mais comuns em sistemas comerciais é a repetição por um determinado número de
vezes de um grupo de comandos, ou seja, uma estrutura de repetição. Para tais situações, o VB oferece
comandos próprios. Iremos começar neste módulo o estudo destes comandos.
As estruturas de repetição também são conhecidas como Loops.
O loop mais comum na maioria das linguagens de programação é o For...Next. Este tipo de Loop é utilizado
para criar um contador de forma automática e, a cada vez que o contador é incrementado, os comandos que
estão dentro deste Loop são novamente executados. A seguir veja a sintaxe deste comando:
For Contador = número_inicial to número_final
..... lista de comandos
Next
Para melhor exemplificar este comando, vamos a seguir gerar um projeto de exemplo com esta finalidade. O
projeto terá duas caixas de edição, sendo que a primeira irá representar o número inicial da contagem e a
segunda o número final da contagem e a cada número incrementado, este será apresentado dentro de um
ListBox. Veja a seguir passo a passo a nossa aplicação:
Inicie um novo projeto no VB;
No formulário que é apresentado, adicione:
2 Labels;
2 TextBox;
1 ListBox;
2 CommandButton.
Altere as seguintes propriedades dos componentes citados:
Componente Propriedade/Valor
Label1 Caption = Número inicial
Label2 Caption = Número final
Command1 Caption = Inicia contagem
Text1 Text = apague o conteúdo desta propriedade
Text2 Text = apague o conteúdo desta propriedade
Quando o usuário for utilizar o sistema, ele irá entrar com um valor para o número inicial da
contagem e um valor para o número final da contagem. Após clicar no botão "inicia contagem", o
sistema irá gerar um Loop, de x (número inicial) até y (número final) e, a cada número da
contagem, este será acrescentado ao ListBox. Para tal procedimento, iremos entrar com a seguinte
codificação para o botão "Inicia Contagem":
Private Sub Command1_Click()
numi = Val(Text1.Text)
numf = Val(Text2.Text)
For contador = numi To numf
List1.AddItem (Str(contador))
Next
End Sub
Marcelino Macêdo - 40 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Observe que, o primeiro passo foi armazenar nas variáveis NUMI e NUMF o conteúdo digitado nas
caixas Text1 e Text2, porém este conteúdo foi transformado em valor numérico através da função
VAL. Em seguida, criamos um contador (loop), que irá contar de NUMI (número inicial) até NUMF
(número final), armazenando esta contagem na variável contador e, a cada número contado, o
único comando existente entre o FOR e o NEXT será executado, ou seja, no listbox (LIST1), iremos
adicionar um item (additem) que é o valor da variável contador (que faz parte do loop),
transformada em String, através da função STR.
Para o botão Finaliza, basta acrescentar o comando END, conforme podemos observar na listagem a
seguir:
Private Sub Command2_Click()
End
End Sub
Agora, execute o projeto e, insira dois números (inicial e final) e veja o resultado após clicar no respectivo
botão. No exemplo abaixo, preenchemos como número inicial 3 e número final 6. Observe o resultado:
Agora, execute novamente o projeto, inserindo em número inicial um número menor do que em número
final e observe o resultado. Você verá que nada foi acrescentado ao ListBox, porque da forma como o
For...Next foi construído, a contagem será realizada em de forma crescente, ou seja, sempre de um número
menor para um número maior. Mas e se fosse necessário a contagem de um número maior para um número
menor, com incrementos de -1 unidade. Sendo assim, teríamos que acrescentar o comando STEP e após
este o incremento, que neste caso seria -1. Veja como ficaria a codificação deste botão neste caso:
Private Sub Command1_Click()
numi = Val(Text1.Text)
numf = Val(Text2.Text)
For contador = numi To numf Step -1
List1.AddItem (Str(contador))
Next
End Sub
Ok, aprendemos a gerar contadores de forma crescente e decrescente. Mas você deve estar perguntando:
como fazer para que o sistema verifique de forma automática se a contagem será progressiva ou regressiva?
Esta resposta será fornecida em nossa próxima aula. Salve o projeto para que possamos realizar esta
alteração no módulo 15.
- Aula 15 - Tomando decisões - fazendo o seu micro pensar
No módulo passado, criamos um projeto na qual exemplificamos os processos de repetição através do
comando FOR, porém temos um problema no projeto gerado:
1. Se o sistema estiver pronto para uma contagem progressiva e o usuário inserir o número inicial maior que
o número final, nada será executado;
2. Se o sistema estiver pronto para uma contagem regressiva e o usuário inserir o número inicial menor que
o número final, nada será executado.
Como fazer para que o sistema, de forma automática, se utilize de um FOR progressivo ou regressivo, de
acordo com a diferença entre os números inicial e final? A resposta é simples:
Iremos gerar um teste que, se o número inicial for maior que o número final, a contagem será regressiva,
caso contrário, a contagem será progressiva.
Observe que vinculamos um teste condicional a duas situações possíveis e, para este procedimento, temos
no VB6 um comando que serve como uma luva ... A sintaxe básica deste comando é a seguinte:
Marcelino Macêdo - 41 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
If <teste> then
comandos a serem executados caso teste seja verdadeiro
Else
comandos a serem executados caso o teste seja falso
End If
Observe em linguagem simples, como seria nosso código para a condição exposta:
If número_inicial > número_final then
realize uma contagem regressiva
Else
realize uma contagem progressiva
End if
Vamos então na forma de código VB, alterar o botão "Inicia contagem", que foi criado no projeto do módulo
passado e inserir o código que segue:
Private Sub Command1_Click()
numi = Val(Text1.Text)
numf = Val(Text2.Text)
If numi > numf Then
For contador = numi To numf Step -1
List1.AddItem (Str(contador))
Next
Else
For contador = numi To numf
List1.AddItem (Str(contador))
Next
End If
End Sub
Observe que geramos duas rotinas distintas, cada uma para um dos casos (verdadeiro ou falso) e através
deste mecanismo, conseguimos fazer com que o nosso sistema seja "inteligente" e esteja pronto para agir
em diversas situações.
O procedimento de "fazer o sistema pensar" é de grande utilidade em aplicativos comerciais, pois nunca
sabemos como o usuário irá agir.
Execute agora o projeto e faça entradas com números iniciais maiores que os finais e da forma inversa
também.
Marcelino Macêdo - 42 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
- Aula 17 -
Muito se fala do temporizador oferecido como forma de controle no VB6. O temporizador é uso basicamente
para verificar o relógio do sistema e utilizar tais informações dentro do seu projeto.
Dentre as propriedades disponíveis para este controle, podemos destacar duas:
Enabled -> ativa ou desativa o temporizador (true ou false)
Interval -> Seria o intervalo de tempo, que é medido em milisegundos. Após cada ciclo deste
intervalo, o temporizador irá buscar a hora atual no relógio do sistema.
O uso deste controle é interessante por exemplo, em um sistema de controle de carros em um
estacionamento ou então em sistemas de folha de ponto.
Outras propriedades deste controle não são importantes, visto que este controle não é apresentado em
tempo de execução no formulário.
A nível de eventos, o temporizador possui apenas um único evento denominado Timer(), ocorrendo sempre
que o temporizador transcorre o intervalo determinado na propriedade Interval.
Veja na figura a seguir o controle em questão:
Vamos gerar um pequeno aplicativo que terá o objetivo de exibir a hora atual na barra
de títulos de um determinado formulário. Para isso, siga os passos abaixo:
1. Inicie o VB e um novo projeto;
2. Defina a propriedade CAPTION do formulário como HORA ATUAL:
3. Insira no formulário um controle "Timer";
4. Altere a propriedade Enabled para true;
5. Altere a propriedade Interval para 1000 (equivalente a 1 segundo);
6. Dê um clique duplo sobre o temporizador (controle Timer) para que o editor de
código seja aberto no evento Timer() do controle e, insira o seguinte código:
Private Sub Timer1_Timer()
Dim frase As String
frase = Time$
Caption = "Hora atual:" & frase
End Sub
Na
verdade, criamos a variável FRASE que irá receber a cada segundo (1000 milisegundos, devido a
propriedade Interval do temporizador estar com este valor) e em seguida, a propriedade CAPTION do
formulário será atualizado com o novo valor da hora do sistema. Veja o resultado do aplicativo em execução
na figura a seguir:
Marcelino Macêdo - 43 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Assim como "lançamos" a hora ao caption do formulário, você poderá usa-lo através de variáveis, gerar
registros em banco de dados, etc...
Propriedade Valor
Informa o grau de alteração da propriedade Value quando ocorrer o click em uma das
SmallChange
extremidades da seta.
Vamos gerar um pequeno projeto para exemplificar o uso das barras de rolagem:
1. Inicie um novo projeto em VB;
2. Insira no formulário um componente HScrollBar e altere as seguintes propriedades do mesmo:
Marcelino Macêdo - 44 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Propriedade Conteúdo
Min 0
Max 1000
Value 100
Observe que o indicador da barra de rolagem estará na posição 100 de um total de 1000 posições válidas
3. Inclua dois CommandButtom´s no Form;
4. Altere a propriedade Caption do segundo botão para "Finaliza";
5. Apague o conteúdo da propriedade Caption do primeiro botão;
6. Dê um clique duplo no segundo botão e entre com a seguinte codificação para o mesmo:
Private Sub Command2_Click()
End
End Sub
7. Dê um duplo clique no controle HScrollBar e entre com a seguinte codificação:
Private Sub HScroll1_Change()
Command1.Caption = HScroll1.Value
End Sub
8. Agora execute o projeto.
Vá movimentando através de cliques nas partes extremas da barra de rolagem ou na parte livre de seu canal
de volume e verifique que, o interior do primeiro botão irá assumindo o valor da barra de rolagem, conforme
podemos observar a seguir:
Para que possamos compreender um pouco melhor este controle, vamos aproveitar o mesmo projeto
efetuando as seguintes alterações:
9. Exclua o primeiro botão;
10. Inclua um Label e altere a propriedade Caption do mesmo para "aprendaemcasa.com.br"
11. Altere as propriedades Min e Max do HScrollBar para 6 e 24 respectivamente
11. Dê um clique duplo no controle de barra de rolagem e altere a sua codificação para:
Private Sub HScroll1_Change()
Label1.FontSize = HScroll1.Value
End Sub
Observe a seguir como ficou o seu formulário:
Marcelino Macêdo - 45 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Agora execute o projeto e movimente o ponteiro da barra de rolagem. Observe que de forma automática o
tamanho da fonte da frase que está dentro do label vai sendo ampliado ou reduzido, devido ao seguinte
comando:
Label1.FontSize = HScroll1.Value
Neste comparamos o tamanho da fonte da frase (conteúdo do caption) do Label1 à posição do volume da
barra de rolagem.
Propriedade Valor
Através desta propriedade poderemos testar se o botão está acionado ou não (true
Value
ou false).
Dentre os eventos, o mais utilizado é o Click() que é acionado assim que usuário seleciona o botão, ou seja,
marca a sua opção.
Vamos criar um projeto exemplo, onde o usuário irá entrar com o valor total da compra e, de acordo com a
opção de pagamento, terá um desconto, o valor permanecerá o mesmo ou então teremos um acréscimo no
valor total a ser pago.
1. Inicie um novo projeto em VB;
2. Insira na parte superior do formulário um LABEL e altere a propriedade Caption deste para VALOR TOTAL
DA COMPRA;
3. Insira ao lado do label citado um componente TEXTBOX e apague o conteúdo da propriedade TEXT;
4. Insira abaixo do label um componente OptionButton e altere a propriedade CAPTION do mesmo para Á
VISTA COM 10% DE DESCONTO;
5. Insira abaixo um novo componente OptionButton e altere a propriedade CAPTION deste para CHEQUE
PARA 30 DIAS SEM JUROS;
6. Insira abaixo um novo componente OptionButton e altere a propriedade CAPTION deste para CHEQUE
PARA 60 DIAS COM JUROS DE 3%;
7. Abaixo, insira um componente Label e altere a propriedade CAPTION deste para TOTAL A PAGAR
8. Ao lado, insira um componente TextBox e apague o conteúdo da propriedade TEXT.
9. Ao final deste procedimento, seu formulário terá o seguinte aspecto:
Marcelino Macêdo - 46 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Nosso próximo passo é criar a codificação do sistema. Esta é bastante simples, ao clicar (evento click) em
qualquer um dos botões de rádio disponíveis, o sistema irá fornecer no segundo TextBox o valor total a ser
pago pelo cliente, já calculado o desconto ou acréscimo sobre o valor total ou, se for o caso, mantendo o
valor total.
Para codificar a primeira opção, ou seja, para o pagamento à vista e calcular 10% de desconto, dê um clique
duplo sobre o componente OptionButton1 e entre com a seguinte codificação:
Private Sub Option1_Click()
a1 = Val(Text1.Text)
a2 = (a1 * 0.9)
Text2.Text = Str(FormatCurrency(a2, 2, vbTrue, vbTrue, vbTrue))
End Sub
Observe que aqui, o primeiro passo foi transferir para a variável A1 o conteúdo da caixa de textos TEXT1
devidamente transformado em número através da função VAL. Em seguida estamos multiplicando o valor da
compra por 0.9 (oferecendo 10% de desconto) e transferindo este valor sobre a forma de moeda (função
FORMATCURRENCY) para dentro da segunda caixa de texto TEXT2.
Vamos então codifcar o segundo botão de rádio. Dê um clique duplo sobre o mesmo e entre com a seguinte
codificação:
Private Sub Option2_Click()
Text2.Text = Text1.Text
End Sub
Este procedimento é mais simples, como o valor é o mesmo (sem acréscimo ou desconto), estamos apenas
transferindo para a caixa de edição 02 o conteúdo da caixa de edição 01.
Vamos agora codificar o terceiro botão de rádio. Dê um clique duplo sobre o mesmo e entre com a seguinte
codificação:
Private Sub Option3_Click()
a1 = Val(Text1.Text)
a2 = ((a1 * 3) / 100)
a3 = a1 + a2
Text2.Text = Str(FormatCurrency(a3, 2, vbTrue, vbTrue, vbTrue))
End Sub
Observe que a lógica aqui empregada é similar ao do primeiro botão de rádio, mudando apenas as
operações aritméticas realizadas.
Marcelino Macêdo - 47 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Não selecionada;
Acinzentada
As propriedades mais utilizadas em caixas de seleção são:
Name
Caption
Value
Já o evento mais utilizado para este controle é o evento Click(), disparado quando o usuário marca a caixa
de seleção em questão.
Vamos criar um simples projeto para que você entenda a funcionalidade destes controles:
1. Inicie um novo projeto no VB;
2. Insira no formulário, na parte superior do mesmo, dois controles de caixas de seleção (um abaixo do
outro);
3. Altere a propriedade Caption da primeira caixa de seleção para NEGRITO:
4. Altere a propriedade Caption da segunda caixa de seleção para ITÁLICO;
5. Insira abaixo dos dois controles anteriores um Label e altere a propriedade Caption do mesmo para
ABAIXO, DIGITE UM TEXTO;
6. Abaixo do label, insira um controle TextBox e apague o conteúdo da propriedade Text do mesmo. Ao final
destes procedimentos, seu formulário terá o seguinte aspecto:
O objetivo deste projeto é simples: Sempre que a caixa NEGRITO estiver selecionada o conteúdo digitado no
controle Text ficará em negrito e quando não selecionado, o conteúdo sairá do negrito. O mesmo acontecerá
com o controle Itálico.
O próximo passo é codificar o evento Click do controle CheCkBox1. Veja a codificação a seguir:
Private Sub Check1_Click()
If Check1.Value = 1 Then
Text1.FontBold = True
Else
Text1.FontBold = False
End If
End Sub
As linhas acima são simples de serem analisadas. Primeiro testamos se a propriedade Value do Ckeck1 é
igual à 1, ou seja, se a mesma está ticada. Caso positivo, a font do tipo negrito (fontbold) do controle Text
será true (ativada), caso contrário, será falsa (desativada).
Esta mesma lógica iremos utilizar para codificar o evento Click do Ckeck2, porém ao invés de utilizar
FontBold, iremos utilizar FontItalic, conforme observamos na listagem a seguir:
Private Sub Check2_Click()
If Check2.Value = 1 Then
Text1.FontItalic = True
Else
Text1.FontItalic = False
End If
End Sub
Agora, execute o projeto, digite um conteúdo qualquer dentro da área de texto e marque/desmarque as
duas caixas de seleções e veja os resultados.
Marcelino Macêdo - 48 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Marcelino Macêdo - 49 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Vamos começar a codificar nosso sistema. O primeiro passo é fazer com que o usuário ao digitar alguma
informação (dado) na caixa de edição Text2 e clicar sobre o botão INCLUI, esta informação seja adicionada
na lista 01. Para isso, dê um clique duplo no botão INCLUI e entre com a seguinte codificação:
Private Sub Command1_Click()
List1.AddItem Text1.Text
End Sub
Observe que nos comandos acima, estamos adicionando (additem) à lista 1 (List1) o conteúdo digitado no
controle TextBox1 (Text1.Text). Veja como é simples adicionar itens em uma lista através do VB.
Vamos agora codificar o botão Command2 ( ===> ) que tem a finalidade de levar o item selecionado no
List1 para o List2. Para tal função, dê um clique duplo no botão em questão e entre com a seguinte
codificação:
Private Sub Command2_Click()
List2.AddItem List1.Text
List1.RemoveItem (List1.ListIndex)
End Sub
Observe a primeira linha de comando da rotina citada. Adicionamos na lista2 (List2.AddItem) o conteúdo do
item selecionado na Lista1 (List1.Text).
Em seguida, removemos o Item transferido para a lista2 da lista1 (List1.RemoveItem(ListIndex)). Conforme
podemos observar, para remover um item de uma lista, temos que especificar o índice do mesmo e, como
queremos remover o item selecionado, utilizamos a propriedade ListIndex.
Vamos codificar o Command3 ( <=== ), que tem função contrária do botão que acabamos de codificar. Os
comandos utilizados neste botão serão muito parecidos com os utilizados no botão anterior. Veja a seguir:
Private Sub Command3_Click()
List1.AddItem List2.Text
List2.RemoveItem (List2.ListIndex)
End Sub
Agora, vamos codificar o botão Command4 ( <== Exclui ) que tem a finalidade de apenas excluir o item
selecionado na lista1. Para isso, dê um clique duplo no botão em questão e, entre com a seguinte
codificação:
Private Sub Command4_Click()
List1.RemoveItem (List1.ListIndex)
End Sub
No comando acima, você simplesmente solicitou a exclusão do item da lista1 que está selecionado
(List1.RemoveItem (list1.ListIndex)).
Marcelino Macêdo - 50 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Em seguida, vamos codificar o botão Command5 ( Exclui ==> ), que tem a mesma sintaxe utilizada no
botão anterior, com a diferença de utilizar sempre o List2 ao invés do List1. Veja a codificação a seguir:
Private Sub Command5_Click()
List2.RemoveItem (List2.ListIndex)
End Sub
Vamos agora codificar o botão ( <= Limpa lista ), que tem a função de excluir todos os itens da lista 01. O
comando é simples, conforme podemos observar abaixo:
Private Sub Command6_Click()
List1.Clear
End Sub
O próximo passo é codificar o botão ( Limpa lista => ) que tem o objetivo de excluir todos os itens da lista
02. O comando é similar ao utilizado no procedimento anterior, apenas se trocando o List1 por List2. Veja
abaixo:
Private Sub Command7_Click()
List2.Clear
End Sub
Vamos agora codificar o último botão, que tem a finalidade de finalizar o programa. Para isso, basta digitar o
comando END em seu procedimento de duplo clique.
Private Sub Command8_Click()
End
End Sub
Execute agora o sistema e verifique os resultados.
O controle caixa de lista de unidades (DriveListBox) permite ao usuário selecionar uma determinada unidade
a ser trabalhada (drive de disquete, drive de CD, Winchester, etc...). Este controle poderá ser utilizado tanto
para selecionar um drive para leitura de dados como para gravação de dados.
Como principal propriedade deste componente temos a DRIVE, sendo que esta é uma propriedade de
execução e que retorna ao sistema a unidade de drive selecionada pelo usuário durante a execução do
projeto.
A propriedade em questão é sempre utilizado em conjunto com o evento OnChange, ou seja, quando o
usuário selecionar uma nova unidade
Já as caixas de lista de diretórios (DirListBox) permite selecionar um diretório (pasta) na unidade que estiver
ativa (selecionada pelo controle DriveListBox). As propriedade mais utilizada neste controle é a Path que
armazena o caminho que está sendo utilizado no drive selecionado.
Já o evento mais utilizado é o Change(), ou seja, quando selecionarmos um novo caminho (patch).
As caixas de listas de arquivos (FileListBox) é utilizada para relacionar os nomes dos arquivos que estão em
um determinado caminho (DirListBox)/unidade (DriveListBox). Dentre as principais propriedades deste
controle, podemos destacar:
Path - armazena o caminho na qual os arquivos devem ser relacionados;
FileName - armazena o nome do arquivo que está/estará sendo manipulado;
Pattern - define a extensão dos arquivos visíveis no controle
O evento mais comum a ser utilizado neste controle é o evento Click().
Vamos gerar um simples programa com estes controles para que você entenda o seu funcionamento:
1. Inicie um novo projeto no VB6;
2. Insira no seu formulário os seguintes componentes:
1 DriveListBox;
1 DirListBox;
1 FileListBox;
1 Label
Seu formulário deverá ter o seguinte aspecto:
Marcelino Macêdo - 51 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Altere agora as seguintes propriedades dos componente que foram inclusos no seu projeto:
Componente Propriedade Valor
Agora, vamos codificar os eventos necessários para que nosso projeto ganhe vida.
Selecione o evento Change do DriveListBox e entre com a seguinte codificação:
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Observe que com a codificação acima, quando o componente DriveListBox tiver o seu valor alterado, será
armazenada na propriedade Path (que indica a unidade), a nova unidade selecionada (Drive1.Drive).
Agora, vamos codificar o evento Change do componente DirectoryListBox:
Private Sub Dir1_Change()
File1.Path = Dir1.Path
Label1.Caption = File1.Path
End Sub
Observe que primeiro estamos vinculando que as pastas (caminhos) a serem exibidos (File1.Path) sejam
aqueles constantes da unidade selecionada (Dir1.Path) e em seguida, estamos mostrando a unidade dentro
do label que inserimos em nosso projeto (Label1.Caption=File1.Path).
Agora, vamos codificar o evento Click do componente FileListBox:
Private Sub File1_Click()
Label1.Caption = File1.Path & " " & File1.FileName
End Sub
Aqui estamos apenas jogando no label, o nome do arquivo que recebeu o clique.
Salve e execute o seu projeto.
Marcelino Macêdo - 52 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Ao setar esta propriedade para True, você está indicando que esta é uma janela filha e que está subordinada
a uma janela mãe, passando seu projeto a operar de forma idêntica ao program manager do Windows 3.1.
Normalmente os MDI-Form, conforme citamos anteriormente, possuem os seguintes componentes:
Um menu de sistema - este menu deverá ser incluso através da seleção da opção de menu Tools ...
Menu Editor. Ao selecionar esta opção, será exibida a seguinte janela na tela do seu equipamento:
Nesta janela você irá construir o menu de sua aplicação (iremos estudar a mesma com riqueza de detalhes
posteriormente)
Uma figura centralizada que normalmente é o logotipo da empresa. Esta figura poderá ser ligada ao
componente IMAGE. Para definir a figura que estará presente dentro do componente, você deverá
seguir os passos:
1. Insira no formulário um componente IMAGE, em destaque na figura a seguir:
2. Na propriedade Picture, selecionar o gráfico que será aprensentado dentro do componente Image.
Botões de atalho rápido para as opções mais importantes de seu sistema.
Marcelino Macêdo - 53 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Porém para se criar um MDI-Form, existe um procedimento especial neste sentido. Veja os passos
seguintes:
1. Clique na opção de menu Project;
2. No menu suspenso que é exibido selecione a opção ADD MDI-FORM. Neste ponto, será exibida a
seguinte janela:
3. Confirme a operação clicando no botão ABRIR. Agora, basta você preparar o seu MDI-Form.
Marcelino Macêdo - 54 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Caixa de texto Name -> aqui você irá designar uma "Sub" que será vinculada a opção que está
sendo gerada.
Caixa de texto Index ->Você utililizará esta caixa quando se torna necessário o uso de um único
nome de "Subs" criadas, economizando assim rotinas que poderão ser controladas a partir de um
mesmo ponto com uma espécie de múltipla seleção, conforme podemos observar a seguir:
Private Sub MenuPrincipal_Click()
Select Case Index
Case 0
Frminclui.Show
Case 1
Frmaltera.Show
Case x
......
End Select
End Sub
Observe que temos diversas opções em um único comando de seleção.
Caixa de texto "Help Context ID" -> caso você saiba trabalhar com arquivos de Help, poderá
associar um número de arquivo de Help do tipo "RTF" e, caso o usuário pressione a tecla <F1> o
arquivo em questão será exibido.
Caixa de texto ShortCut -> aqui você poderá definir uma tecla de atalho para a opção que está
sendo criada.
Caixa de seleção Checked -> define se a opção é boleana ou não.
- Aula 25 - Criação de Menus em projetos VB - Parte II
Vamos gerar nesta aula um exemplo gerando um pequeno menu para sua aplicação. O primeiro passo é
iniciar uma nova aplicação no VB e em seguida, siga os passos abaixo:
1. Clique na opção de menu Tools ... Menu Editor.
2. Vamos construir a primeira opção de nosso menu:
Em "Caption" digite "&Arquivo";
Em "Name", digite "Teste1". Ao final deste procedimento, sua janela deverá ter o seguinte aspecto:
3. Agora temos que inserir esta opção no menu que será incluso no Form, para isso, clique no botão
INSERT. Neste momento, a linha azul (que indica a opção que está sendo criada) deverá pular para
a linha em branco logo abaixo.
4. Você quer inserir uma nova opção. Esta é uma opção principal do menu ou uma opção do menu
Arquivo? Se for uma opção do menu Arquivo, você deverá clicar agora no botão representado pela
seta apontando para a direita, formando assim uma sub-opção do menu Arquivo. Você identificará
que esta é uma sub-opção pois será observado três pontos antes do nome da nova opção. Após
criar todas as opções do menu Arquivo, para criar uma nova opção de menu principal, basta antes
clicar sobre o botão representado pela seta apontando para a esquerda e, assim sucessivamente
Marcelino Macêdo - 55 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
para criar as sub-opções e opções principais do menu. Clique então no botão representado pela seta
apontando para a direita.
5. Vamos então criar a sub-opção do menu Arquivo:
Em Caption digite "A&brir";
Em ShortCut selecione a opção "CTRL+O";
Em Name digite "Teste2";
Clique no botão "Next";
6. Você também deve estar perguntando o porque do símbolo "&". A letra que está logo após este
símbolo será aquela utilizada em conjunto com a tecla ALT para acionar esta opção no menu. Agora
que você já conhece a forma correta de operar o construtor de menu, crie um com a seguinte
estrutura:
7. Clique em OK;
8. Execute seu aplicativo, veja o resultado:
Marcelino Macêdo - 56 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Nem sempre uma opção de menu efetua alguma espécie de ação dentro do próprio formulário que o contém.
Muitas das vezes, ao selecionar uma opção de menu, um novo formulário é aberto para executar o
procedimento proposto na opção selecionada. Este será o objetivo da aula de hoje, exibir como chamar um
novo Form através de uma opção de menu. Para tal, iremos gerar um exemplo para ficar claro como tal
procedimento se realiza.
Execute o VB6;
Solicite a criação de uma nova aplicação;
No Form principal de nossa aplicação, insira um componente de menu, contendo as seguintes
opções:
Arquivo Finaliza
Editor Texto
Editor gráfico
Finaliza
Ao final deste procedimento, sua janela de menus terá o seguinte aspecto:
O próximo passo é criar na aplicação o novo formulário, que iria receber um editor de textos, pois o
Form1, que é criado automaticamente quando solicitamos uma nova aplicação no VB, terá o menu
do sistema (e em um programa comercial, outros elementos, porém estamos gerando um sistema
simples apenas para exemplificar a chamada de outros forms através de menus). Para isso, clique
na opção de menu PROJECT ... ADD FORM. Neste ponto será apresentada a seguinte janela:
Marcelino Macêdo - 57 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Selecione a opção FORM e em seguida clique em OK. O novo Form é apresentado na sua área de
desenvolvimento, tendo como nome inicial FORM2, conforme podemos observar na figura a seguir:
Marcelino Macêdo - 58 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Marcelino Macêdo - 59 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Ao lado de cada um dos 4 labels inseridos no passo anterior, inclua um componente TEXTBOX,
apagando o conteúdo da sua propriedade TEXT. Ao final deste procedimento, seu formulário terá o
seguinte aspecto:
Antes de codificarmos o botão "TESTE DE FUNÇÕES", vamos ver o que faz cada uma e a sintaxe que deverá
ser empregada nas mesmas:
Função LCASE
Esta função converte as letras minúsculas de uma string em maiúsculas. Sua sintaxe é:
LCASE (string)
Função UCASE
Esta função converte as letras maiúsculas de uma string em minúsculas. Sua sintaxe é:
UCASE (string)
Função LEFT
Esta função retorna os "x" primeiros caracteres de uma string. Sua sintaxe é:
LEFT (string, número_de_caracteres)
Função RIGHT
Esta função retorna os "x" últimos caracteres de uma string. Sua sintaxe é:
RIGHT (string, número de caracteres).
Agora que já sabemos o objetivo das funções que vamos utilizar e suas sintaxes, iremos codificar nosso
pequeno sistema. Para isso, dê um clique duplo no buttom e entre com a seguinte codificação:
Private Sub Command1_Click()
Text2.Text = LCase(Text1.Text)
Text3.Text = UCase(Text1.Text)
Text4.Text = Left(Text1.Text, 3)
Text5.Text = Right(Text1.Text, 3)
End Sub
Execute o projeto, entre com o nome "SÃO paulo" no primeiro TextBox, clique no botão que testa as
funções e veja os resultados:
Passo 1 -> executando e digitando a frase citada no TextBox:
Marcelino Macêdo - 60 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Marcelino Macêdo - 61 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
O true1 ou false1 indica se você quer ou não que sejam exibidos zeros à esquerda de uma virgula decimal.
O true2 ou false2 indica se você quer ou não que o valor seja colocado dentro de parênteses no caso de
número negativo.
O true3 ou false3 indica se você quer ou não separar as casas de milhar.
Para melhor compreender as duas funções acima, vamos gerar um pequeno exemplo:
1. Inicie o VB e solicite uma nova aplicação;
2. Inclua na parte superior do FORM um Label e ao lado um TextBox;
3. Altere a propriedade CAPTION do label para "Entre com um número";
4. Apague o conteúdo TEXT do componente TEXTBOX;
5. Inclua abaixo dos componentes dos passos anteriores dois CommandButton;
6. Altere a propriedade Caption do primeiro para "Formata em Moeda";
7. Altere a propriedade Caption do segundo para "Formata em número";
8. Ao final deste procedimento seu formulário terá o seguinte aspecto:
9. Vamos codificar o primeiro botão (formata em moeda). Dê um duplo clique sobre este e entre com a
seguinte codificação:
Private Sub Command1_Click()
x = Val(Text1.Text)
MsgBox FormatCurrency(x, 2, vbTrue, vbTrue, vbTrue)
End Sub
O primeiro passo foi armazenar na variável "x", o valor do text1.text transformado em número, para isso
usamos a função VAL, pois sabemos que o conteúdo de um TextBox sempre é String e para que possamos
utilizar as funções FormatCurrency e Number, temos que ter um valor do tipo numérico.
Em seguida, criamos uma caixa de diálogo (MSGBOX) que irá conter o valor da variável "x", em formato de
moeda (formatcurrency), com duas casas decimais, com zeros à esquerda da virgula decimal, sendo um
número negativo este será apresentado entre parênteses e com separador de casas decimais.
10. Vamos agora codificar o segundo botão (formata em número). Dê um clique duplo sobre este e entre
com a seguinte codificação:
Private Sub Command2_Click()
x = Val(Text1.Text)
MsgBox FormatNumber(x, 2, vbTrue, vbTrue, vbTrue)
End Sub
O primeiro passo foi armazenar na variável "x", o valor do text1.text transformado em número, para isso
usamos a função VAL, pois sabemos que o conteúdo de um TextBox sempre é String e para que possamos
utilizar as funções FormatCurrency e Number, temos que ter um valor do tipo numérico.
Em seguida, criamos uma caixa de diálogo (MSGBOX) que irá conter o valor da variável "x", em formato de
número (formatNumber), com duas casas decimais, com zeros à esquerda da virgula decimal, sendo um
número negativo este será apresentado entre parênteses e com separador de casas decimais.
Execute agora nosso pequeno projeto, e entre com o seguinte número: 123456,58. Em seguida, dê um
clique em cada um dos botões para ver o resultado. A sequência do resultado é exibida nos gráficos a
seguir:
Neste primeiro passo entramos com o valor solicitado.
Marcelino Macêdo - 62 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Aqui está sendo exibida a janela que será mostrada na sua tela quando clicar sobre o
botão "formata em moeda".
Aqui está sendo exibida a janela que será mostrada na sua tela
quando clicar sobre o botão "formata em número".
Marcelino Macêdo - 63 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Se o procedimento a ser adotado for a leitura do conteúdo de um arquivo do tipo sequêncial, teremos então
que atribuir a este o tipo de arquivo OUTPUT.
Para que possamos escrever (gravar) informações no arquivo gerado, iremos utilizar o comando PRINT.
Para que estes comandos fiquem claros, vamos gerar um pequeno exemplo em VB e em seguida
acompanhar o seu resultado no WordPad do Windows. Para tal, proceda da seguinte maneira:
Execute o VB6 e solicite a criação de uma nova aplicação;
No novo form que lhe é oferecido, na parte superior, inclua um componente Label e altere a
propriedade CAPTION do mesmo para "Nome do Aluno";
Inclua ao lado do Label um componente TextBox e apague o conteúdo de sua propriedade Text;
Inclua abaixo um componente CommandButton e altere a propriedade Caption deste para "Gravar";
Ao final deste procedimento, seu formulário terá o seguinte aspecto:
O primeiro passo foi criar a variável manipulador, que sendo atribuída a mesma o valor FreeFile faz com que
o sistema retorne o próximo manipulador de arquivos disponível, que deverá ser utilizado em todas as
instruções do tipo Open, Print# e Close. Depois abrimos o arquivo APCASA.TXT que está armazenado no
diretório "meus documentos" para o tipo Append (ou seja, irá receber a adição/inclusão de dados). Em
seguida, gravamos no arquico apcasa.txt o conteúdo armazenado no componente Text1.text, liberando em
seguida o seu conteúdo.
Execute o sistema, digite a seguinte sequência:
Digite no TextBox o conteúdo "Paulo" e clique no botão "Gravar";
Digite no TextBox o conteúdo "Maria" e clique no botão "Gravar";
Digite no TextBox o conteúdo "Manoel" e clique no botão "Gravar";
Digite no TextBox o conteúdo "Fernando" e clique no botão "Gravar".
Encerre a execução do seu aplicativo, clicando sobre o botão "x".
Agora, execute o seu editor de textos WordPad e como "documento de texto", solicite a abertura do arquivo
APCASA.TXT, você terá o seguinte resultado:
Marcelino Macêdo - 64 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Observe que através do seu programa em VB, foi gerado um arquivo texto de nome APCASA e com a
inclusão dos nomes dos alunos digitados anteriormente. Você de uma forma simples, criou um banco de
dados (arquivo contendo informações).
No módulo anterior, especificamos diretamente no código o nome do arquivo a ser gravado. Neste
exemplo, iremos utilizar a caixa padrão do Windows para salvar ou ler arquivos, assim sendo,
deveremos incluir em nossa interface o componente Common Dialog, para isso, siga os passos
abaixo:
o Clique na opção de menu PROJECT;
o No menu suspenso que é apresentado, selecione a opção COMPONENTS, será então
apresentada a seguinte janela:
Marcelino Macêdo - 65 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Inclua o componente CommonDailog em sua aplicação (no Form). Este é um componente não
visível, ou seja, durante a execução do projeto, o mesmo não estará visível.
Para que o TextBox aceite múltiplas linhas (fato comum em um texto), altere a propriedade
Multiline do mesmo para True, apague o conteúdo da propriedade Text e em seguida, altere a
propriedade ScrollBars para 3-Both;
Altere o Caption dos 4 primeiros Buttons para "LER ARQUIVO", "GRAVAR ARQUIVO", "LIMPAR
ÁREA", "FINALIZAR";
Para o botão LER ARQUIVO, entre com a seguinte codificação:
Private Sub Command1_Click()
CommonDialog1.Filter = "Arquivos Texto (*.TXT)|*.TXT"
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then
Open CommonDialog1.FileName For Input Access Read As #1
Do While Not EOF(1)
texto = texto & Input(1, #1)
Loop
Text1.Text = texto
Close #1
Marcelino Macêdo - 66 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
End If
End Sub
Observações relativas aos códigos utilizados acima:
1. Primeiro criamos um filtro para o tipo de arquivo na qual iremos trabalhar, neste caso tipo Texto
(TXT), além de exibir a mensagem "Arquivos Texto (*.TXT)", na barra de título da janela padrão do
windows de abertura de arquivos;
2. Em seguida, abrimos o componente Commondialog1, através do método Show (invocando a janela
padrão de abertura de arquivos do Windows), em seu método de abertura de arquivos (Open);
3. No teste realizado pelo comando IF, testamos se o usuário digitou alguma coisa diferente de nada,
ou seja, se o mesmo entrou com um nome de arquivo, este deverá ser lido, o que acontecerá
durante os comandos positivos do IF;
4. O primeiro passo foi abrir o arquivo selecionado no CommonDialog para leitura, sendo que este será
tratado como arquivo número 01 READ AS #1;
5. Após a abertura, o sistema irá percorrer do primeiro ao último caracter DO WHILE NOT EOF(1);
6. Cada caracter do arquivo, será lido (um por vez) e concatenado (somado) à variável TEXTO
texto=texto&input(1,#1);
7. Após termino o loop (todos os caracteres que fazem parte do arquivo serem lidos), iremos transferir
o conteúdo da variável TEXTO para o TEXTBOX1 textbox1.text=texto;
8. Em seguida fechamos o arquivo.
Execute a aplicação, clique no botão LER ARQUIVO e selecione o arquivo APCASA que geremos no
módulo de aula anterior. Observe o resultado final:
No gráfico acima representamos o ato do clique no botão em questão e, em seguida na janela de abertura
de arquivos a seleção do APCASA. Clicando em Ok, você terá como resultado a janela seguinte:
Marcelino Macêdo - 67 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Salve o projeto em questão. Na próxima aula iremos programar o botão GRAVAR ARQUIVO.
Marcelino Macêdo - 68 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
O componente mais comum para se trabalhar com Imagens em aplicações VB6 é o IMAGE, em destaque na
figura abaixo:
A lógica deste projeto é simples: Os arquivos selecionados através de uma determinada unidade de disco
(selecionada pelo componente DriveListBox) e uma determinada pasta deste (selecionada pelo componente
Marcelino Macêdo - 69 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
DirListBox), serão exibidos no componente ListBox1 e, ao clicar no primeiro buttom, o referido arquivo será
exibido no controle IMAGE constante da parte superior do formulário em questão.
Altere a propriedade CAPTION do primeiro CommandButton para "Abrir" e a do segundo para "Sair".
Vamos começar a codificar nosso sistema, começando pelo GENERAL DECLARATION do projeto. Neste
declare uma variável chamada CONTADOR do tipo integer, conforme mostra a listagem a seguir:
Public contador As Integer
Esta variável irá na verdade indexar os itens selecionados na caixa LIST BOX para futuras manipulações.
Adiante você irá entender o objetivo desta variável. Em seguida, vamos codificar o evento Form Load do
projeto, onde iremos definir o tipo de arquivo que será aceito pelo sistema, aqui iremos definir arquivos JPG
e GIF. Observe o código completo abaixo:
Marcelino Macêdo - 70 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
posteriormente, mesmo que o usuário tenha navegado para outra pasta, tal procedimento se deu com a
linha List1.AddItem arquivo.
Vale a pena lembrar que é interessante que a propriedade Strech do componente Image seja alterada para
True, assim sendo, a figura selecionada terá seu tamanho ajustado para o componente Image do Form.
Agora execute o seu sistema e selecione alguns arquivos de imagem que estejam armazenados nas pastas
do seu disco rígido. Veja um exemplo abaixo, da seleção de um determinado arquivo do disco rígido, com o
programa em execução:
Na próxima aula iremos ver a forma correta de abrir um dos arquivos que foram carregados no controle
ListBox.
Marcelino Macêdo - 71 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Observe que a janela apresentada, apresenta diversas opções para que você possa especificar com o
conteúdo deseja imprimir. Vamos então explicar as diversas opções existentes:
O frame "Range" determina qual parte do projeto será impresso, e este possui as seguintes opções:
SELECTION -> Caso você tenha uma área de texto selecionada na janela CODE, apenas esta área
selecionada será impressa. Quando esta opção não está disponível, indica que não existe nenhum
trecho de código selecionado.
CURRENT MODULE -> Neste caso você irá imprimir o conteúdo especificado no frame "PRINT
WHAT" referente ao formulário que está com o foco neste momento. Iremos explicar o conteúdo do
frame PRINT WHAT logo abaixo.
CURRENT PROJECT -> Ao selecionar esta opção e combinado com a seleção do frame "PRINT
WHAT", será impresso o conteúdo de todos os módulos que compõe o seu projeto.
Já o frame "Print What" define o que será impresso dentro da opção selecionada no frame "RANGE" e, possui
as seguintes opções:
FORM IMAGE -> quando selecionada, irá imprimir a imagem do FORM, representando a aparência
do mesmo em tempo de execução. No caso da impressão da imagem de todos os forms do projeto
(opção current project do frame estudado acima), será impresso um FORM por página.
CODE -> Ao selecionar esta opção será impresso todos os procedimentos de evento de um
formulário, com seus respectivos controle (ou de todos os formulários do projeto). No caso da
impressão do código de todos os Forms, será saltada automaticamente a folha quando o código
representar o inicio de um novo form.
FORM AS TEXT -> Esta opção realiza a impressão de uma listagem das propriedades de seu form e
seus respectivos controles.
Após configurar a impressão de acordo com a sua necessidade, basta então selecionar a impressora para
onde a impressão deverá ser encaminhada e clicar no botão OK.
Marcelino Macêdo - 72 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
6. Ao lado deste Buttom, inclua um novo componente TextBox e apague o conteúdo da propriedade
Text;
7. Abaixo dos dois buttons, porém na estrema direita do formulário, inclua um novo Buttom, alterando
a sua propriedade CAPTION para FIM;
8. Seu formulário terá o seguinte aspecto:
9. Vamos agora codificar o botão FIM do formulário, que deverá ter a seguinte codificação:
Private Sub Command3_Click()
End
End Sub
10. Vamos primeiramente estudar a função GetSystemInfo, que tem o objetivo de retornar informações
gerais sobre o hardware da máquina, entre as quais podemos destacar:
Tipo de processador;
Número de processadores no sistema;
Nível de dependência do processador.
11. A sintaxe para a utilização desta função é a que segue:
Void GetSystemInfo(LPSYSTEM_INFO);
12. Lpsysteminfo é na verdade um parâmetro que determina o tipo de informação sobre o sistema que
deverá ser retornado.
13. Para utilizar as funções da API do Windows em um aplicativo VB6, será necessário declarar estas em um
arquivo de módulo, que será o objeto de estudo do próximo módulo de aula.
Marcelino Macêdo - 73 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
18. Clique sobre a opção VB 6 API VIEWER. Marque também as opções LOADED/UNLOADED e LOAD ON
STARTUP do frame LOAD BEHAVITOR, para que este aplicativo seja carregado no menu ADD-INS
automaticamente;
19. Clique agora no botão OK;
20. Agora clique na opção de menu ADD-INS ... API VIEWER, será então apresentada a seguinte janela:
Marcelino Macêdo - 74 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
21. Clique na opção de menu FILE ... LOAD TEXT FILE, para carregarmos o arquivo de texto contendo as
APIs do mesmo, será então apresentada a seguinte janela:
22. Clique na opção WIN32API e em seguida clique no botão ABRIR, será apresentada a seguinte janela:
Marcelino Macêdo - 75 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
23. Observe que as APIs disponíveis são listadas na caixa de listagem AVAILABLE ITEMS;
24. Agora você deverá selecionar as funções que serão utilizadas pelo sistema. Vamos selecionar a primeira,
procurando na caixa de listagem em questão a opção GETSYSTEMINFO, marcando-a e em seguida clicando
sobre o botão ADD, veja como ficou a janela do seu aplicativo:
Marcelino Macêdo - 76 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
25. Repita a operação para a API GETDISKSPACEFREE, após concluido este procedimento, sua janela terá o
seguinte aspecto:
Marcelino Macêdo - 77 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
26. Ao final deste procedimento, clique sobre o botão COPY, assim as declarações serão copiadas para a
área de transferência.
28. No código do módulo, insira a declaração de nossas APIs, colando o conteúdo da API Viewer;
Marcelino Macêdo - 78 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
End Sub
Salve todas as alterações. Está finalizado o nosso sistema.
Marcelino Macêdo - 79 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Nada melhor do que a prática para que possamos entender a forma correta de se criar arquivos de ajuda ....
Para se construir um arquivo de ajuda, você deverá passar pela criação de três arquivos distintos e que irão
trabalhar em conjunto. São eles:
· Arquivo de conteúdo – arquivo no formato ASC II, que irá definir o layout e a aparência da guia
CONTENTS do arquivo de ajuda;
· Arquivo de tópico – neste será incluso o texto relativo a ajuda em si que será oferecida no Help;
· Arquivo de projeto – Cria a ligação entre os arquivos de conteúdo e tópico, além de definir a posição
do arquivo de ajuda ao ser executado.
Vamos iniciar então a criação do nosso arquivo de ajuda criando o nosso arquivo de conteúdo. Para isso,
execute o Microsoft Help Workshop e proceda da seguinte forma:
01) Clique na opção de menu FILE;
02) No menu suspenso que é aberto, selecione a opção NEW, será então exibida a seguinte janela:
03) Na caixa de diálogo NEW, selecione a opção HELP CONTENTS e clique em OK. Será então apresentada a
seguinte janela:
Marcelino Macêdo - 80 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
04) Primeiramente deveremos definir o nome do arquivo de ajuda, e o mesmo deverá ser digitado na caixa
de edição denominada “DEFAULT FILENAME (AND WINDOW). Neste exemplo, digite MINHAAJUDA.HLP;
05) Ao lado, temos a caixa de edição DEFAULT TITLE, que representa o título principal do seu arquivo ao ser
exibido. Neste caso, digite HELP DO SISTEMA;
06) O próximo passo é a inserção de um título à lista, para isso, clique no botão ADD ABOVE, será então
exibida a seguinte janela:
Marcelino Macêdo - 81 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
12) Agora temos que tornar este novo título que foi inserido como um sub item da opção de menu principal,
que é chamada de ARQUIVO DE AJUDA. Para isso, selecione a opção ARQUIVO DE CONTEÚDO, dando um
clique sobre o mesmo e clicando em seguida no botão MOVE RIGHT. Observe como ficou a sua janela neste
ponto:
13) Vamos então acrescentar os tópicos do arquivo de conteúdo. Clique novamente em ADD BELOW, porém
desta vez, na janela EDITS CONTENTS TAB ENTRY, selecione a opção TOPIC, e configure a mesma conforme
mostra a figura a seguir:
Marcelino Macêdo - 82 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Marcelino Macêdo - 83 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
19) Nosso próximo passo agora é a criação do arquivo de tópicos, que é um arquivo do tipo RTF contendo o
texto e imagens, que serão apresentados quando o arquivo de ajuda é executado. Iremos utilizar o Word,
que gera arquivos do tipo RTF para este fim. Este tópico será abordado no próximo módulo de aula.
41) O processo para os demais dois tópicos de nosso arquivo de ajuda serão os mesmos. Devido a isso,
iremos apresentar apenas o resultado gráfico dos demais tópicos, que você deverá realizar seguindo os
passos anteriores;
42) Vale lembrar que de um tópico ao outro, deverão ser inclusas quebras de página;
Marcelino Macêdo - 84 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Marcelino Macêdo - 85 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
48. Na guia GENERAL, na caixa de edição HELP TITLE, digite o conteúdo ARQUIVO DE AJUDA;
49. Selecione agora a guia COMPRESSION;
50. Selecione a opção CUSTOM e marque a caixa de seleção HALL COMPRESSION, para que nosso arquivo
ajuda não ocupe muito espaço;
51. Selecione a guia FILES;
52. Na caixa de edição HELP FILE, digite o nome do arquivo HLP criado, ou seja, MINHAAJUDA;
53. Clique no botão CHANGE;
54. Será apresentada uma janela denominada “TOPIC FILES”;
55. Na mesma, clique no botão ADD;
56. Selecione o arquivo MINHAAJUDA.RTF, para adicionar o arquivo de tópico ao projeto do arquivo de
ajuda;
57. Clique agora no botão BROWSE;
58. Na janela que é aberta, selecione o arquivo Minhaajuda.cnt;
59. Desta forma você estará vinculando os dois arquivos;
60. Observe como deverá estar a sua janela neste ponto:
Marcelino Macêdo - 86 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
63. Neste ponto iremos criar a janela do HELP, que será objeto de estudo do próximo módulo de aula.
69. Agora, para cada um dos tópicos, deveremos ligar ao respectivo mapa do arquivo RTF. Para isso,
proceda da seguinte forma;
70. Clique no botão ADD;
71. Após o final deste processo, sua janela terá o seguinte aspecto:
Marcelino Macêdo - 87 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
72. Agora você deverá salvar e compilar o seu arquivo de ajuda, para isso, dê um clique no botão SAVE e
em seguida no botão COMPILE, que estão marcados na figura a seguir:
73. Durante a compilação, a janela do aplicativo em questão ficará minimizada. Se não existirem erros, sua
janela terá ao final o aspecto seguinte:
74. Vamos agora testar nosso aplicativo de ajuda, antes de inserir o mesmo em nossa aplicação, para
evitarmos qualquer tipo de problema;
75. Para isso, ainda com o Microsoft Help Workshop aberto, clique sobre o botão RUN WINHELP,
representado ponto de interrogação na barra de ferramentas. Neste ponto, será apresentada a janela
seguinte;
Marcelino Macêdo - 88 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
76. Verifique se nossa arquivo minhaajuda está selecionado em Project File, caso não esteja, procure o
mesmo clicando no menu Browse...;
77. Após isso, clique no botão VIEW HELP;
78. Teste o arquivo de ajuda, expandido as suas pastas, clicando sobre um dos tópicos, etc...
Pronto, você acabou de criar um arquivo de ajuda. Na próxima aula iremos estudar como vincular um
arquivo de ajuda ao seu programa VB.
2. Para visualizarmos como um projeto chama o help, compile o projeto e quando ele estiver sendo
executado, clique em F1 para que o help seja visualizado
Agora, vamos dificultar um pouco o processo, fazendo com que o sistema possa abrir os arquivos de HELP
através dos tópicos gerados. Mas como isso é possível? A resposta é simples:
Você lembra que ao criar a sua janela de HELP, utilizou o mapeamento dos tópicos através da janela MAP?
Onde, incluímos para o tópico CONTEÚDO o MAP 100 e assim sucessivamente? Pois então, desta forma
Marcelino Macêdo - 89 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
podemos dentro de nossa aplicação, chamar um assunto em específico no HELP, para isso, basta proceder
da forma que segue:
1. Inclua na aplicação que irá receber o HELP um componente COMMON DIALOG;
2. Altere a propriedade NAME do mesmo para AJUDA;
3. Clique com o botão direito do mouse em PROJECT1, no PROJECT EXPLORER;
4. No menu suspenso que é apresentado, selecione a opção PROJECT PROPERTIES;
5. Na caixa de diálogo que foi aberta, defina o campo HELP FILE como o arquivo de ajuda a ser vinculado
ao aplicativo;
6. No evento FORM_LOAD() do formulário, entre com a seguinte codificação:
AJUDA.HELPFILE=APP.HELPFILE
7. Lembre-se de que “AJUDA” equivale ao componente COMMON DIALOG que representará o arquivo
ajuda;
8. Em seguida, na opção de menu ou no botão que irá chamar um determinado tópico do arquivo de
ajuda, basta incluir a seguinte sequência de comandos (supondo que a solicitação da abertura da ajuda,
partisse de uma opção de menu) :
Private Sub opcaoajuda_click()
With ajuda
.helpcontext=”100”
.helpcommand=cdlhelpcontext
.ShowHelp
End With
End Sub
Observe que a linha HELPCONTEXT=”100”, representa um dos tópicos que queremos ligar a esta opção do
menu que abre o arquivo de ajuda, neste nosso exemplo, a mesma poderia ser 100/200 ou 300.
Desta forma você vinculou o seu arquivo de ajuda a sua aplicação principal.
Observe que no exemplo acima, temos uma caixa de diálogo de advertência/aviso, ou seja, especificando ao
usuário que para a operação a ser executada é necessário que tenhamos um disco na unidade -A-.
O Visual Basic oferece em sua coleção duas caixa de diálogo distintas:
A caixa de mensagem;
A caixa de entrada.
Para informar ao usuário uma determinada situação, utilizamos as caixas de mensagens representadas pela
instrução MSGBOX. Se necessário for permitir que o usuário além de receber uma determinado informação
também efetue a entrada de dados pelo teclado, utilizamos as caixas de mensagem representadas pela
instrução INPUTBOX.
A sintaxe básica da instrução MSGBOX pode ser observada abaixo:
MSGBOX (texto, ícone, título)
Onde:
Texto -> Representa a mensagem que será exibida ao usuário;
ícone -> Representa o ícone e o botão que serão apresentados no interior da caixa de mensagem;
Marcelino Macêdo - 90 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Title -> representa o texto que será apresentado na barra de títulos da caixa de diálogo.
O parâmetro "ícone" é representado por uma expressão ou código, de acordo com a tabela abaixo:
Expressão Código Representa
vbOkOnly 0 Exibe apenas o botão de OK.
vbOkCancel 1 Exibe os botões de Ok e Cancel.
vbAbortRetryIgnore 2 Exibe os botões de Abortar, Ignorar e Falhar.
vbYesNoCancel 3 Exibe os botões de Sim, Não e Cancelar.
vbYesNo 4 Exibe os botões de Sim e Não.
vbRetryCancel 5 Exibe os botões de Ignorar e Cancelar
vbCritical 16 Exibe o ícone de mensagem crítica
vbQuestion 32 Exibe o ícone de Warning Query
vbExclamation 48 Exibe o ícone de Exclamação
vbInformation 64 Exibe o ícone de Informação
Observe que o primeiro passo foi definir a frase que seria utilizada dentro da caixa de diálogo, em seguida
especificamos o botão que seria empregado dentro da mesma e como parâmetro final o título da caixa de
diálogo gerada.
Marcelino Macêdo - 91 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Além da caixa de diálogo padrão que estudamos nos módulos de aula anteriores, o VB6 oferece também caixas de
diálogo que permitem a entrada de dados por parte do usuário. Neste caso ao invés de empregarmos a função
MSGBOX iremos empregar a função INPUTBOX. A sintaxe básica desta função pode ser observada abaixo:
Marcelino Macêdo - 92 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Após entrar com o nome do usuário e clicar sobre o botão <OK>, o formulário principal de sua aplicação
terá o seguinte aspecto:
Observe que os dados recolhidos com as caixas de diálogo do tipo "entrada de dados" podem ser
trabalhados no decorrer da rotina.
Até o momento você deve ter observado que os controles (como por exemplo os botões) possuem eventos que são
disparados por ações provocadas pelo mouse, como por exemplo o evento Click. A partir deste módulo de aula
iremos estudar os principais eventos que poderão ser disparados em um controle através de ação provocada pelo
mouse.
O evento click()
Este evento é disparado quando um determinado controle recebe um clique. Este evento está associado
principalmente aos botões de comando. Ou seja, neste evento você deeverá programar o que deverá ser executado
pelo sistema. Sempre que for necessário programar este evento, você poderá proceder da seguinte maneira:
3) Observe se está selecionada na janela de código o controle desejado e o evento Click para ser programado,
conforme podemos observar no gráfico abaixo:
Marcelino Macêdo - 93 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Clique agora sobre a caixa de seleção que representa os eventos (a que está a sua direita superior) da janela de
código. Observe que diversos outros eventos estão disponíveis:
Vamos abaixo citar o objetivo dos principais eventos disponíveis relacionados ao mouse:
BdlClick()
Este evento é disparado quando um determinado controle recebe um clique duplo. Observe que o controle
Command Button não possui este evento, porém o mesmo é encontrado no controle <ComboBox>. De acordo com
o controle utilizado um deeterminado evento aqui citado poderá ou não estar disponível.
DragDrop()
Este evento é disparado quando você solta em qualquer lugar do formulário um determinado controle que estava
sendo arrastado. Você poderá utilizar este evento para programar uma ação que ocorrerá quando o usuário
dimensionar uma imagem gráfica por exemplo.
DragOver()
Este evento é disparado quando o usuário arrasta um objeto qualquer sobre um determinado controle.
MouseDown()
Este evento é disparado quando você clica sobre um determinado controle e mantém o botão do clique pressionado.
MouseMove()
Este evento é disparado quando um ocorre a movimentação do ponteiro do mouse (sem cliques) sobre um
determinado controle.
MouseUp()
Marcelino Macêdo - 94 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Este evento é disparado quando um contrrole qualquer recebe um clique e o usuário solta o botão do mouse, ou
seja, seria algo como um pós-clique.
No próximo módulo de aula iremos especificar a sintaxe destes eventos e gerar alguns exemplos.
Marcelino Macêdo - 95 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Insira em seu formulário um botão de comando e dê um clique duplo sobre o mesmo. Observe como ficará a sua
janela de código:
Observe que na parte superior da janela de código temos o nome do controle e o evento Click a ser programado. Na
verdade quem dispara o evento é o mouse e não o controle Button. Observe a sintaxe deste evento:
nome do controle_click()
Muitos atribuem ao botão o evento, o que é um erro, pois agora sabemos que ele apenas recebe a ação provocada
pelo mouse.
Alguns controles recebem também o evento DBLCLICK() ou seja, apenas será disparado se o usuário clicar duas
vezes com um pequeno intervalo de tempo entre o primeiro clique e o segundo sobre o controle em questão. O
controle Button por exemplo não oferece suporte a este evento. Já o controle LISTBOX oferece suporte ao mesmo,
como por exemplo selecionar um determinado item de sua lista através do clique duplo. Observe na janela de
código abaixo o controle LISTBOX e o evento disparado pelo mouse DBLCLICK():
A propriedade que armazena o item a ser selecionado através de um duplo clique em uma caixa de listagem é a
TEXT. Observe abaixo como ficaria a rotina principal de seu sistema para uma escolha através de um clique duplo
sobre um item da lista:
Marcelino Macêdo - 96 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Quando você clica e arrasta um objeto, em determinado momento irá soltar este objeto, ou seja, soltará o mesmo
em um determinado ponto do formulário. Este evento pode ser tratado através de um programa em VB6, para isso
deverá programar o evento DragDrop().
Observe que na sintaxe acima estamos tratando o evento "DragDrop" no componente Command1. A sua xintaxe é
formada por 3 parâmetros, a saber:
Conforme citamos, vamos estudar neste módulo de aula o evento DragOver() do mouse, que é disparado quando o
usuário arrasta um determinado objeto sobre um controle qualquer. Este evento possui a seguinte sintaxe:
Sendo que:
O parâmetro Source tem o objetivo de especificar o nome do controle que está sendo arrastado sobre o objeto alvo.
Os parâmetros "x" e "y" representam as coordenadas de linha e coluna por onde o ponteiro do mouse está sendo
arrastado sobre o objeto alvo;
O parâmetro State é representado por um número inteiro e representa o estado do controle propriamente dito,
conforme podemos observar abaixo:
Quando possui valor "0" indica que o controle está entrando nos limites do alvo;
Quando possui valor "1" indica que o controle está saindo dos limites do alvo;
Quanto possui valor "2" indica que o controle está sendo arrastado dentro dos limites do alvo.
O evento MouseDown() é disparado quando você clica sobre um determinado componente e mantém o botão do
mouse pressionado por um determinado tempo. A sintaxe deste evento pode ser observada abaixo:
Na sintaxe acima, temos os parâmetros "x" e "y", que representam as coordenadas do ponteiro do mouse sobre um
determinado componente.
Outro parâmetro existente é representado pelo Button e, este poderá assumir três valores distintos, a saber:
Marcelino Macêdo - 97 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
Este parâmetro é utilizado para que o desenvolvedor tenha o controle sobre qual botão do mouse foi pressionado.
Já os parâmetros Shift é representado por um valor inteiro que indica a tecla que foi pressionada enquanto o botão
do mouse era mantido pressionado. Os valores são:
Se você solta o ponteiro do mouse sobre um determinado controle, neste momento é gerado o evento
<MOUSEUP()>. Os parâmetros deste evento são idênticos aos que estudamos nos eventos das aulas 52 e 53 e sua
sintaxe pode ser observada abaixo:
A insrtução mais utilizada neste evento é a de finalização de um determinado programa, pois se o usuário soltar o
clique do ponteiro do mouse sobre um botão de <FINALIZAR> o programa por exemplo, não teremos nenhum risco
de que o programa não seja finalizado.
Em sistemas comerciais complexos, temos uma infinidade de linhas de código e, todo sistema requermanutenção.
Com o passar do tempo você poderá esquecer de alguns detalhes ou "para que serve" um determinado trecho de
código. Assim sendo, a documentação do código é muito importante para a manutenção do sistema, bem como
para facilitar o estudo das fontes por parte de uma equipe de profissionais.
Documentar o código não é uma prática saudável apenas para um aplicativo VB, mas em qualquer linguagem de
programação/ambiente de desenvolvimento.
Para inserir uma linha de documentário em seu aplicativo, em qualquer um dos níveis informados, você deverá usar
o símbolo ao lado ( ' ). Observe abaixo um exemplo de sequência de linhas de comentários:
Marcelino Macêdo - 98 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
No exemplo acima utilizamos o primeiro modo de documentar um programa, ou seja, linha a linha. Este método
não é empregado em todo o sistema, pois em um aplicativo comercial, teremos milhares de linhas de programas e,
deveremos empregar este método apenas em comandos mais complexos ou que possuam uma finalidade especial
no contexto do programa.
No próximo módulo de aula iremos estudar sobre a documentação de um determinado trecho de programa.
Em sistemas comerciais, teremos diversos procedimentos e módulos que irão compor o sistema e, é importante
documentar cada módulo ou procedimento, fazendo com que os demais desenvolvedores envolvidos no projeto,
tenham uma exata noção do objetivo ou da função daquele procedimento ou módulo. Este tipo de comentário
poderá ajudar também que outros programadores da equipe, possam reutilizar o módulo ou procedimento, sabendo
a função do mesmo, em outros projetos da própria empresa. Abaixo estamos sugerindo um padrão para comentar o
inicio de um módulo ou de um procedimento:
'Nome_arquivo: controle_acesso.cls
'Autor: Paulo Matuszewski
'Data: 09/11/2004
'Descrição: este módulo tem por objetivo realizar o controle de acesso aos usuários cadastrados e
'.................. devidamente autorizados a utilizarem o sistema. Utiliza o banco de dados Empresa.MDB e a tabela
'.................. usuarios.
'Última alteração da rotina: 05/06/2004
Observe que incluindo um comentário completo no inicio de um módulo ou procedimento/rotina, você estará
facilitando a vida de colegas de trabalho assim como a sua, pois você poderá ficar meses sem a necessidade de
realizar alterações no sistema e, quando o fizer, conseguirá interpretar com facilidade a função das mesmas.
Não existe um padrão definido para a inclusão dos mesmos, o trecho acima é apenas uma sugestão e, poderá ser
livremente adaptado para as suas necessidades.
Quando você cria um aplicativo completo ou um formulário, pode observar que, se incluir 10 controles do tipo botão
de comando, cada um receberá um nome, que ficará armazenado na propriedade NAME do respectivo componente.
O VB irá nomear os componentes como Command1, Command2, etc.
Mas esta identificação é gerada automaticamente pelo VB e, de acordo com o número de componentes de um
formulário ou de um projeto, convêm nomear estes controles um a um, principalmente com o objetivo de identificar
com mais facilidade, caso contrário a interpretação do código fonte poderá ser complicada.
Assim sendo, o primeiro procedimento ao incluir um componente em um formulário é alterar a sua propriedade
NAME para algum conteúdo descritivo, fazendo com que seu código fique mais legível e de forma automática o
tempo de desenvolvimento e depuração dos procedimentos seja reduzido.
Para gerar os nomes de controles, existem algumas regras de nomeação, as quais discutiremos a seguir:
Marcelino Macêdo - 99 -
Apostila de Visual Basic 6
Curso passo a passo para iniciante
o btn_incluidados - utilizado para nomear um botão que tem a função de incluir dados de um
formulário
o btn_pesquisa - utilizado para nomear um botão que tem a função de carregar uma rotina de
busca.
Procure não utilizar nomes muito longos, para facilitar a escrita de código;
Crie prefixos para cada tipo de controle, como por exemplo para os botões o prefixo "btn" e, padronize
esses para todo o seu código.