I. INTRODUO II. INICIANDO O VISUAL BASIC 6 III. AMBIENTE DE TRABALHO IV. BARRA DE MENUS V. BARRA DE FERRAMENTAS VI. CAIXA DE CONTROLE (TOOLBOX) VII. A JANELA FORM VIII. A JANELA FORM LAYOUT IX. A JANELA DE PROPRIEDADES (PROPERTIES) X. A JANELA PROJECT EXPLORER XI. A JANELA CDIGO XII. EVENTOS XIII. CONSTRUINDO SEU PRIMEIRO PROGRAMA XIV. SALVE SEU PROJETO XV. COMPILANDO SEU PROGRAMA XVI. PREFIXOS XVII. TIPOS DE DADOS XVIII. SUFIXOS DE TIPO DE DADOS XIX. VARIVEIS XX. A INSTRUO IF XXI. EXPRESSES E OPERADORES MATEMTICOS XXII. MSGBOX XXIII. INPUTBOX XXIV. COMENTRIOS XXV. LOOPS XXVI. MENU EDITOR XXVII. BANCO DE DADOS XXVIII. ACTIVEX XXIX. DISTRIBUINDO SUA APLICAO XXX. ENDEREOS INTERNET
INTRODUO
O Visual Basic uma linguagem de programao para Windows, baseada em eventos e em objetos. Gerando aplicativos cuja operao determinada pela escolha de algum objeto grfico, que representa uma ao, por parte do usurio. GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 3 O Visual Basic permite criar aplicativos tanto para mquina local quanto para ambiente de rede. Estes aplicativos podem tanto compartilhar banco de dados quanto acessar um banco de dados cliente-servidor. O Microsoft Visual Basic 6 a ltima e mais poderosa verso da linguagem desenvolvida pela Microsoft Corporation, baseada na linguagem Basic. O Visual Basic 6 vendido em trs verses: Standard, Professional e Enterprise.
INICIANDO O VISUAL BASIC 6 Para iniciar o Visual Basic 6 clique em iniciar. Posicione o cursor do mouse em Programas/ Microsoft Visual Basic 6. Clique em Visual Basic 6.
AMBIENTE DE TRABALHO Sempre que iniciar o Visual Basic, aparece a caixa de dilogo New Project. Solicitando que voc escolha um projeto. D um clique no boto Abrir (Open) para aceitar o novo projeto padro (Standard.EXE), um aplicativo padro do Visual Basic.
Dica: Se voc der um clique na opo DonT show this dialog Box in the future, o Visual Basic no exibir a caixa de dilogo de abertura quando o Visual Basic for iniciado.
O ambiente de programao do Visual Basic contm todas as ferramentas necessrias para construir seus programas para Windows com rapidez e eficincia.
BARRA DE MENUS A barra de menus proporciona acesso maioria dos comandos que controlam o ambiente de programao. Os menus e comandos so convencionais, padro Windows 9x.
Barra de menus
BARRA DE FERRAMENTAS A barra de ferramentas est localizada abaixo da barra de menus. Com botes que funcionam como atalhos para executar comandos e controlar o ambiente de programao.
Barra de ferramentas
Adiciona um projeto padro. Clique na seta e voc ter outras opes de projeto
Adiciona um novo formulrio. Clique na seta e voc ter acesso a GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 5 diversos tipos de formulrios.
Mostra o menu Editor (editor de menus)
Abre um projeto existente
Salva o projeto atual
Corta uma rea selecionada
Copia um objeto selecionado
Cola um objeto da rea de transferncia
Localiza uma palavra no cdigo
Desfaz operaes
Refaz operaes
Executa aplicao
Pausa na execuo da aplicao
Finaliza a execuo da aplicao
Mostra a Janela de Projetos
Mostra a Janela de Propriedades
Mostra a Caixa de Layout do formulrio
Mostra o Object Browser
Mostra a Caixa de Controles
Dica: No Visual Basic, voc pode alinhar e acoplar, ou ancorar, as janelas para tornar visveis e acessveis todos os elementos do sistema de programao.
CAIXA DE CONTROLE (TOOLBOX) Contm ferramentas para inserir controle no seu formulrio.
A Caixa de Controle mostra inicialmente os controles padres do Visual Basic. Mas voc pode inserir em sua Caixa de Controle diversos controles, chamados ActiveX. GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 6 Os controles padro so:
Ferramenta de seleo. Usada para dimensionar e mover controle.
PictureBox. Usada para mostrar imagens grficas.
Label. Usada para inserir texto. Que serve como rtulo.
TextBox. Usado para criar caixas de edio, onde usurio inseri texto.
Frame. Usado para criar uma moldura que agrupe controles.
CommandButton. Usado para desenha um boto que poder ser acionado para iniciar um comando.
CheckBox. Usado para criar um boto de checagem.
OptionButton. Usado para criar um boto de opo. Em conjunto com outros OptionButtons, o usurio pode escolher uma opo dentre vrias.
ComboBox. Usado para desenhar uma lista de itens em uma caixa combo. O usurio poder interagir com a lista inserida na caixa combo.
Listbox. Usada para mostrar uma lista de itens em uma caixa de lista, para que o usurio escolha um item.
Hscrollbar. Usada para inserir uma barra de rolagem horizontal.
Vscrollbar. Usada para inserir uma barra de rolagem vertical.
Timer. Temporizador para controlar eventos. Invisvel durante a execuo da aplicao.
Drivelistbox. Usada para mostrar uma lista de drives.
Dirlistbox. Usada para mostrar uma lista de diretrios.
Filelistbox. Usada para mostrar uma lista de arquivos.
Shape. Usada para desenhar algumas figuras geomtricas.
Line. Desenha linhas.
Image. Usada para mostrar imagens bitmaps, cones ou metafile.
Data. Usada para acessar dados em banco de dados.
OLE. Usada para ligar ou embutir objetos de outras aplicaes.
Dica: Para inserir controles ActiveX na Caixa de Controles, clique com o boto direito em uma rea vazia da Caixa de Controles. Clique em Componets. Defina o controle que voc deseja inserir, e clique em OK.
GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 7 A JANELA FORM A janela Form sua principal rea de trabalho. A janela Form sustenta os objetos do programa, tais como botes de comando, rtulos, caixas de texto, barra de rolagem entre outros.
A Janela Form
Ao dar um duplo clique em um dos controles da Caixa de controles ele ser inserido na janela Form. A janela Form nada mais do que seu programa, embora parea pequena em relao ao resto da tela, ela representa todo o background do aplicativo.
A JANELA FORM LAYOUT Esta janela permite que voc posicione seu formulrio na tela, durante o projeto. Quando voc clica sobre o formulrio mostrado na tela, o cursor muda de formato, e voc pode move-lo na tela.
A JANELA DE PROPRIEDADES (PROPERTIES) Properties (Propriedades) so informaes descritivas detalhadas sobre um controle.
Quando um boto (Commandbutton) inserido no formulrio (Form) seu nome ser Command1. O usurio ver este boto como Command1. Voc pode mudar este nome (Name) para cmd1 e o nome representativo (Caption) para Abrir. na Janela Propriedades (Properties), onde voc altera as propriedades dos controles e do prprio formulrio (Form).
A JANELA PROJECT EXPLORER A janela Project Explorer, freqentemente chamada janela Project, oferece uma viso estruturada em rvore de todos os arquivos no aplicativo.
Bem semelhante estrutura de rvore do Explorer do windows 9x e do NT. A janela Project Explorer exibe formulrios, mdulos (arquivos que contm o cdigo de suporte para o aplicativo), classes (mdulos avanados) e aplicativo carregado.
A JANELA CDIGO A cada formulrio est associada uma Janela de cdigo, que contm declaraes de varveis, rotinas e funes referentes ao formulrio e controle inseridos dentro do formulrio.
Na construo do cdigo associado ao formulrio, o Visual Basic utiliza a linguagem Basic. Todas as procedures do formulrio so mostradas na mesma Janela de Cdigo. Para abrir a Janela de Cdigo use uma dessas formas: Aps selecionar o formulrio, clique no cone ( ) da Janela de Projetos. Clique duas vezes em cima do formulrio ou controle. Tecle F7 Escolha a opo Code no menu View. Clique com o boto direito do mouse sobre o objeto e escolha View Code.
EVENTOS Os programas desenvolvidos em Visual Basic so orientados a eventos. Eventos so aes geradas pelo usurio clicar o mouse, apertar uma tecla, etc. Os eventos podem tambm ser gerados pelo prprio Windows. Existem eventos associados ao formulrio, e cada controle inserido neste.
Alguns eventos comuns so:
Click Ocorre quando o boto do mouse clicado sobre uma rea vazia ou sobre um controle que no est habilitado. Dblclick Ocorre quando o boto do mouse clicado duas vezes seguido. Gotfocus Ocorre quando o objeto recebe o foco. Keydown Ocorre ao se apertar uma tecla. Keypress Ocorre ao ser apertar e soltar uma tecla. Keyup Ocorre ao se liberar uma tecla. Load Ocorre quando um formulrio carregado. Lostfocus Ocorre quando um objeto perde o foco. Mousedown Ocorre quando o usurio pressiona o boto do mouse. Neste evento h identificao do boto pressionado (esquerdo ou direito) e ainda identifica as teclas Shift, GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 10 Ctrl e Alt. Mouseup Ocorre quando o usurio libera o boto do mouse.
CONSTRUINDO SEU PRIMEIRO PROGRAMA Como vimos, o Visual Basic cria programas orientados a eventos. Chegou a hora de colocar tudo que foi aprendido at agora em prtica. Tenha em mente o seguinte: 1 Qualquer objeto (boto, caixa de texto, rtulo, etc) inserido no formulrio (Form) deve ter uma utilidade. 2 Modifique nome, tamanho, cor, fonte dos objetos caso necessrio. Faa isso na Janela Propriedades. 3 Somente inicie a construo do cdigo de seu programa aps ter todos os objetos necessrios inseridos no formulrio (Form) e suas propriedades alteradas.
Inicie o Visual Basic 6 Clique em Iniciar Posicione o cursor do mouse em Programas/ Microsoft Visual Basic 6. Clique em Visual Basic 6. D um clique no boto Abrir (Open) para aceitar o novo projeto padro (Standard.EXE).
D um clique em Name na Janela Properties (Propriedades) Altere Name Form 1 para Meuprograma. Altere Caption Form1 para Meu Primeiro Programa. D um clique duplo no controle ( ) Label. Na Janela Propriedades altere Name Label1 para lbl1 Altere Caption Label1 deixe em branco Altere Height para 200. Altere Width para 3000
D um clique duplo no controle ( ) Textbox Na janela Propriedades altere Name Text1 para txt1 Em Text Text1 deixe em branco. Altere Height para 200. Altere Width para 3000 Deixe esse controle abaixo do rtulo.
D um clique duplo no controle ( ) Commandbutton Na janela Propriedades altere Name Command1 para cmd1 Altere Caption Command1 para Pesquisar
D um duplo clique no boto pesquisar Ser aberta a Janela de Cdigo. Com o seguinte cdigo:
If txt1.Text = "a" Then lbl1.Caption = "Primeira letra do alfabeto" End If
Cdigo completo: Private Sub cmd1_Click() If txt1.Text = "a" Then lbl1.Caption = "Primeira letra do alfabeto" End If End Sub
Descrio do cdigo: Se (If) o texto da caixa de texto(txt1.text) igual (=) a ento (Then) o rtulo (lbl1) Capta (Caption) Primeira letra do alfabeto
Para rodar seu programa clique no boto ( ) Start. Digite a letra a na caixa de texto e clique no boto Pesquisar. Para finalizar o programa clique no boto ( ) End.
SALVE SEU PROJETO Clique no boto ( ) Save Project Escolha a pasta onde sero armazenados seus Projetos. Salve o Form1 com o nome de MeuPrograma. D um clique no boto Salvar. Project1 como MeuPrograma. D um clique em no boto Salvar
COMPILANDO SEU PROGRAMA Para compilar seu programa e criar um executvel Clique em File/ Make MeuPrograma.exe... Escolha a pasta onde sero armazenados seus arquivos com extenso.EXE. D um nome para o executvel (Ex: Dicionrio) e clique no boto OK.
Voc criou um pequeno dicionrio da lngua portuguesa. Bem pequeno para falar a verdade, talvez voc queira criar um dicionrio completo. O primeiro passo j foi dado, j mostrei como criar a interface, propriedades e o cdigo para primeira letra do alfabeto, s falta mais 30.000 palavras. Mos a obra.
PREFIXOS Use estes prefixos para os nomes de controle
Prefixo Controle Nome em Ingls cbo Caixa combo Combo Box GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 12 chk Caixa de verificao Check Box cmd Boto de comando Command button dir Caixa de listagem de diretrios Directory list Box drv Cx. de listagem de unidades de disco Drive list Box fil Caixa de listagem de arquivos File list Box frm Moldura Frame grd Grade Grid hsb Barra de rolagem horizontal Horizontal scrollbar img Imagem Image lbl Rtulo Label lin Linha Line lst Caixa de listagem List Box mnu Menu Menu ole Cliente OLE OLE client opt Boto de opo Option Button pic Caixa de Figura Picture Box shp Forma Shape tmr Temporizador Timer txt Caixa de texto Text Box vsb Barra de rolagem vertical Vertical scrollbar
TIPOS DE DADOS Os dados dividem-se em trs categorias: numrico, string e especial. Se voc quiser trabalhar com um nmero, voc precisar usar um que se encaixe em uma das categorias de tipo de dados do Visual Basic. Se quiser trabalhar com dados de texto, precisar usar uma string. Outros dados podem se encaixar em uma das vrias categorias de tipos de dados especiais, como um item que representa um valor do tipo caixa de verificao True ou False. O Visual Basic oferece os seguintes tipos de dados:
Byte (byte): utilizado para criao de DLLs e para OLE. Ocupa de memria 1 byte.
Boolean (boleano): os valores que este tipo de dado poder ter so True ou False / Yes ou No. Quando variveis do tipo numrico se convertem para booleanas, tornam-se 0 se forem falsas e assumem qualquer outro valor para um resultado verdadeiro. Quando a varivel booleana se converte para outro tipo, o False se torna 0, enquanto o True assume o valor de 1. Ocupa de memria 2 bytes.
Integer (inteiro): nmeros sem decimais, cujo intervalo de ocorrncia dever ser do 32.768 a 32.767. Ocupa na memria 2 bytes.
Long (inteiro longo): qualquer tamanho de nmeros sem decimais. Ocupa 4 bytes de memria.
Single (simples): nmeros com at sete dgitos significativos. Ocupa 4 bytes de memria.
GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 13 Double (duplos): nmeros com at quinze dgitos significativos. Ocupa 8 bytes de memria.
Currency (monetrio): armazena nmeros com preciso de 15 casas esquerda do ponto decimal, e quatro casas direita. Esse tipo de dado til para clculos que envolvam dinheiro. Ocupa 8 bytes de memria.
Date (data): representa uma data que poder estar entre os dias 01/01/100 a 31/12/9999, e tempo que abrange o intervalo de 0:00:00 a 23:59:59. Ocupa 8 bytes de memria.
Object (objeto): uma varivel declarada como object poder referir-se a qualquer objeto criado pela aplicao. Ocupa na memria 4 bytes.
String (simples): Valores numricos que variam de 3,408823E+38 para 3,402823E+38. Varivel ou fixo. O tamanho que ocupa na memria: para string varivel de 10 bytes mais o tamanho da string e para string fixo apenas o tamanho da string.
Variant (variante): Dados de qualquer tipo usados para controle e outros valores para os quais o tipo de dados desconhecido. SUFIXOS DE TIPO DE DADOS
Integer % Long & Simple ! Double # String $ Currency @ Variant sem sufixo
VARIVEIS Para declarar variveis, voc precisa dar a uma varivel tanto um nome quanto um tipo. Os nomes de variveis podem ter at 40 caracteres, e precisam comear com uma letra. Determinado o nome da varivel, poder declarar seu tipo usando um sufixo. Para que sua aplicao seja eficiente e clara, o mais indicado especificar o tipo da varivel, pois do contrrio, a varivel ser vista pelo Visual Basic como do tipo Varinat, e este tipo poder ocupar mais memria do que o necessrio.
Declarando com o Comando Dim Veja a sintaxe: Dim <nome da varivel> As <tipo da varivel>
Exemplo: Dim Apostilas As String
Voc pode declarar sua varivel dentro de uma procedure, na seo General de um formulrio, ou dentro de um arquivo mdulo. GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 14
Exemplo de uma varivel do tipo Integer dentro de uma procedure. Private Sub Command1_Click() Dim Apostilas As Integer Apostilas = Val(txt1.Text) End Sub
Atribuindo Valores A atribuio de valores no Visual Basic feita com o sinal de igualdade = O formato da atribuio de valores : resultado = expresso
Exemplo: Total = txt1 * txt2
Constantes Utilizamos constantes para substituir no programa a apario freqente de valores, que durante a execuo do aplicativo no sofrem alteraes. Uma constante poder ser uma string, um valor numrico, outra constante, ou qualquer combinao que inclua os operadores lgicos ou aritmticos.
Declarando Constante Constantes podem ser declaradas dentro de uma procedure, no arquivo de mdulo ou na seo General do formulrio. A sintaxe para a declarao de constante : Const nome_da_constante = valor
Exemplo: Private Sub Command1_Click() Const Apostilas = "Pesquisar Command1.Caption = Apostilas End Sub
A INSTRUO IF Talvez a mais importante instruo em um programa seja a instruo If. Seu aplicativo pode analisar dados e tomar decises com base nessa anlise. If utiliza os operadores de comparao. If realiza uma entre duas possveis aes do cdigo, dependendo do resultado da comparao. Se um teste comparativo for verdadeiro, o corpo de uma instruo If executado. Eis um formato de If: If testeComparativo Then Uma ou mais instrues Visual Basic End If
End If permite que o Visual Basic saiba onde o corpo de uma instruo If termina. GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 15 EXPRESSES E OPERADORES MATEMTICOS Para poder calcular e atribuir resultados de uma expresso a variveis e quando codificar declaraes que contm expresses voc deve aprender operadores matemticos do Visual Basic. Os principais operadores matemticos so:
Operador Descrio + Adiciona dois valores - Subtrai um valor de outro * Multiplica dois valores / Divide um valor por outro ^ Eleva o valor a uma potncia & (ou +) Concatena dois strings
Exemplo: Resultado = 6 / 3 + 5 + 4 * 2 O Visual Basic computa a diviso primeiro que aprece a esquerda da multiplicao. Se a multiplicao aparecesse esquerda da diviso, o Visual Basic faria primeiro a multiplicao. Depois o Visual Basic calcula a adio mostrando a resposta final, em Resultado.
FUNO Funo uma instruo que desempenha um trabalho importante (tal como solicitar uma informao do usurio ou calcular uma equao) e ento retorna um resultado ao programa.
MSGBOX A funo MsgBox() s permite um dilogo restrito; voc coloca uma mensagem na tela em uma janela, e o usurio fica restrito a comunicar-se de volta por meio de botes. Sintaxe: Msgbox (mensagem, opes, ttulo, ar_ajuda, contexto). Onde: Mensagem: a mensagem que voc quer mostrar. Opes: indica a soma dos valores escolhidos entre as tabelas abaixo:
Botes 0 Somente boto OK 1 Boto OK e Cancel 2 Botes Abort, Retry, Ignore 3 Botes yes, no, cancel 4 Botes yes, no 5 Botes Retry, Cancel
Boto Padro 0 Primeiro boto 1 Segundo boto 2 Terceiro boto
Por exemplo, se voc criar um quadro de dilogo contendo os botes Yes e No, o cone de interrogao e com, o primeiro boto padro, o valor do argumento opes seria 36: 4 + 32 + 0 = 36
Ttulo: a string que voc deseja posicionar na legenda da janela do quadro de mensagem.
Arq_ajuda e contexto: s so usados se voc quiser associar o quadro de dilogo de um arquivo de help.
Como MsgBox uma funo, voc deve associa-la a uma varivel de retorno. Os valores de retorno de MsgBox() so:
1 Boto OK foi pressionado 2 Boto Cancel foi pressionado 3 Boto Abort foi pressionado 4 Boto Retry foi pressionado 5 Boto Ignore foi pressionado 6 Boto Yes foi pressionado 7 Boto No foi pressionado
Exemplo: Mensagem = MsgBox ("Salvar o documento?", 36, "Salvar")
Caso no haja valor de retorno para MsgBox, no necessrio colocar os parnteses que contem os parmetros. MsgBox passa a ser uma procedure, ao invs de uma funo. Exemplo: MsgBox Salvar o documento?, 36, Salvar
INPUTBOX A funo InputBox fornece um quadro de dilogo padro, que permite entrada de dados. Sintaxe: InputBox (mensagem, ttulo, default) Onde: mensagem: o texto que mostramos para indicar que tipo de entrada desejada; ttulo: a legenda que queremos dar ao quadro de entrada; default: o string que aprece no quadro de edio do quadro dilogo (caso o usurio no faa nenhuma entrada); GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 17
Exemplo: Private Sub Form_Load() apostilas = InputBox("Digite seu nome", "Login") Label1.Caption = apostilas End Sub
COMENTRIOS Os comentrios de instruo ajudam voc e outros programadores a modificar e atualizar seus projetos ou programas Visual Basic. As vezes ser necessrio retornar a seu projeto para modificar certas instrues no cdigo do programa. Se voc programa para uma empresa, bem provvel que outras pessoas modifiquem os programas que voc escreveu. Ento nada melhor do que deixar uma pista de sobre determinadas instrues. No Visual Basic utilizamos dois tipos de comentrios Que comeam com a instruo Rem
Exemplo: Rem este comando abre o formulrio vendas
Que comeam com o apstrofo ()
Exemplo: este comando abre o formulrio vendas
Exemplo completo:
Private Sub Command1_Click() ' este comando abre o formulrio vendas Form2.Show End Sub
LOOPS Um loop um conjunto de instrues de programa que executam repetidamente. Loops desempenham um importante papel nos programas porque voc precisar s vezes repetir sees de um programa para processar mltiplos valores de dados.
Loop Do While Do While funciona com expresses de comparaes exatamente como uma instruo If.
Exemplo: Do Apostilas = InputBox("Digite o seu nome ou Fim para sair.") If Apostilas <> "Fim" Then Print Apostilas Loop While Apostilas <> "Fim"
Loop Do Until O loop Do Until executa o corpo do loop enquanto o teste comparativo for falso. GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 18
Exemplo: Do Apostilas = InputBox("Digite o seu nome ou Fim para sair.") If Apostilas <> "Fim" Then Print Apostilas Loop Until Apostilas <> "Fim"
Caso tenha notado no loop (Do While) basta digitar Fim na janela prompt e clicar no boto OK para entrar no programa enquanto no loop (Do Until) caso voc digite Fim na janela prompt e clique no boto OK o lao continuar.
MENU EDITOR Para colocarmos um menu em nosso formulrio, temos que projet-lo primeiro usando o ( )Menu Editor.
Para criar um meu em seu formulrio: Entre com o nome do menu (aquele que aparecer na Barra de Menu), no quadro Caption. A medida que voc digita o nome do menu em Caption, a mesma palavra aparece no quadro abaixo, que local onde o menu projetado ser mostrado. Entre com uma identificao para o controle, no quadro Name; Pressione Enter ou clique no boto Next para terminar o primeiro item e passar para o prximo. Caso seja um subitem, clique sobre a seta para direita, para dar uma endentao; GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 19 Entre com os demais itens. Se quiser incluir um separador entre os itens de menu, digite um hfen(-) na caixa Caption; Feche a janela de projeto de menu clicando no boto OK.
O menu inserido na parte superior de seu formulrio.
Para inserir o cdigo clique sobre o item de menu desejado e digite as instrues necessrias.
Exemplo: Private Sub mnufechar_Click() End End Sub
BANCO DE DADOS A maioria dos objetos que voc cria usando os controles da caixa de ferramenta do Visual Basic possuem aptido interna para exibir informaes de banco de dados. Um objeto est limitado a um banco de dados quando sua propriedade DataSource estiver definida com um nome vlido de banco de dados e sua DataField como uma tabela vlida do banco de dados. possvel vincular o seu programa em Visual Basic a um banco de dados por meio de um objeto dados. Depois que a conexo for estabelecida, voc poder exibir informaes do banco de dados usando objetos criados no formulrio.
Conexo Para conectar seu programa Visual Basic um banco de dados inclua os seguintes objetos: Data Text Label
Modifique: Label1: Caption para Autor Text1: Text em branco Data: Caption para Autores
Para o Objeto Data: Clique em Recordset Type escolha 0- Table Clique em Databasename escolha o banco de dados exemplo do Visual Basic, escolha o caminho (que pode ser outro) C:\Arquivos de programas\Microsoft Visual Studio\Vb98\Biblio.mdb. Em: ReadOnly marque True Recordset Type marque 0 Table RecordSource escolha Authors
O programa criado exibe somente os campos desejados. Usando um objeto dados e diversas caixas de texto de dados limitado, voc pode criar um aplicativo de banco de dados eficiente que acesse seu prprio banco de dados, seja ele Sql, Access, dBase entre outros.
ACTIVEX Procure em uma livraria e voc encontrar muitos livros grossos que discutem ActiveX. ActiveX a nova tecnologia aberta da Microsoft que foi projetada para mesclar a rea de trabalho com a Internet de maneira transparente. Um controle ActiveX um controle que voc pode adicionar janela Toolbox do Visual Basic. Se a janela Toolbox no contiver o controle de que voc precisa, voc poder localizar um controle ActiveX que sirva aos seus propsitos e adicionar esse controle janela Toolbox para utilizar em seu aplicativo. Muitos fabricantes comercializam controles ActiveX e voc pode pesquisar na Internet utilizando alguns sistemas de busca para encontrar um lista de sites relacionados com Activex. Acredita-se que os futuros sistemas operacionais sero baseados em ActiveX. Na verdade, todos os programas sero controles ActiveX.
Documentos ActiveX Os documentos ActiveX so objetos difceis de criar do zero. Um documento ActiveX deve estar contido dentro de um aplicativo ActiveX recipiente, como o Internet Explorer. Inicie o Internet Explorer. Abra um documento Word. O internet Explorer pode exibir o documento Word, completamente formatado, e voc pode editar o documento como se estivesse dentro do Word. Palavras no reconhecidas, palavras estrangeiras e algumas abreviaturas so sublinhadas como possveis erros de digitao; e voc pode selecionar e formatar o texto. Quando um recipiente AvtiveX ativa um documento ActiveX, todos os controles usuais do documento e suas caractersticas tornam-se disponveis. Um documento Word um documento ActiveX. O Internet Explorer um recipiente ActiveX.
Visual Basic ActiveX Document Migration Wizard Inicie um no projeto (StandardEXE). Iniciar/ Programas/Microsoft Visual Basic 6/ Visual Basic 6. Insira em seu formulrio (Form) um Label e um Commandbutton. Para Label modifique: Name para lbl1 Caption deixe em branco Width para 3000
Para Commandbutton Name para cmd1 Caption para Clique aqui
D um clique duplo no boto cmd1 e digite o seguinte cdigo. lbl1.Caption = "Visual Basic legal"
Cdigo completo Private Sub cmd1_Click() lbl1.Caption = "Visual Basic legal" End Sub
Faa os testes necessrios clicando em Run/Start Feche seu pequeno aplicativo. Salve seu projeto clicando no boto ( ) Save project. D um nome para Form1, exemplo Teste. D um nome para Project1, exemplo Teste.
Clique em Add-Ins/ Add-In manager... D um clique duplo em VB 6 ActiveX Doc Migration Wizard. Clique em OK Clique em Add-Ins/ ActiveX Document Migration Wizard... Selecione todas opes padro menos uma, escolha dll ao invs de exe e clique em finalizar. Feche a caixa de dilogo final. Clique em File/ Save docForm1.dob.
Clique em File/Make Teste.dll. Escolha o local e clique em OK.
Para testar, abra o Internet Explorer 4.0 ou superior (no funciona no Netscape). Clique em Arquivo/ Abrir localize seu arquivo com extenso .vbd (docForm1.vbd) clique em abrir. Faa os testes necessrios. Se o documento no abrir ou mostrar a caixa de dilogo Abrir como escolha o programa Internet Explorer. Este apenas um exemplo simples de documento ActiveX. O limite sua criatividade e imaginao.
DISTRUINDO SUA APLICAO A aplicao desenvolvida no Visual Basic poder ser distribuda em discos, CDs, rede ou Internet, que podero ser instalados em seu cliente. No basta, porm, dar o arquivo executvel de sua aplicao para o cliente. Inmeros outros arquivos so necessrios.
Para facilitar a distribuio do aplicativo, o Visual Basic oferece utilitrio Package and Deployment Wizard, que cria os disco que contero todos os arquivos necessrios para a instalao de seu aplicativo no cliente.
Com este utilitrio voc poder: Recompilar automaticamente o arquivo .EXE; Comprimir arquivos e distribu-los em disquetes; Ser avisado da necessidade de certos arquivos para que sua aplicao funcione; Ser notificado sobre o nmero de disquetes necessrios para distribuir sua aplicao nos discos de instalao.
Para usar o Package and Deployment Wizard no grupo de programas do Visual Basic, selecione a opo Package and Deployment Wizard.
Selecione o projeto que ser distribudo, e a forma de distribuio. Selecione o tipo de pacote, e clique em Next. Selecione a pasta onde o pacote ser criado, e clique em Next. Selecione os arquivos que faro parte do pacote, e clique Next. Selecione o tipo de arquivo CAB desejado, e clique em Next. Digite o nome do projeto que ser mostrado durante a execuo do programa de instalao, e clique em Next. Determine os grupos e itens de menu para o projeto, e clique em Next. Determine o local onde ser instalado o arquivo em seu cliente, e clique em Next. Defina se os arquivos sero compartilhados e clique em Next. Digite um nome para o script, e clique em Finish. Os arquivos CAB so criados.
O que so winforms? Tipo de aplicao para desenvolvimento de aplicaes Windows na plataforma .Net. Possui uma grande facilidade no desenvolvimento e um conjunto de controles muito rico. Vale lembrar que o sucessor do Visual Basic 6 no o VB.net e sim o tipo de aplicao windows (winforms). Dentro da plataforma .net, a linguagem de programao independente do tipo de aplicao, ou seja podemos desenvolver para winforms com VB.NET, C#, J#, etc. Linguagem Tipo de Aplicao VB.NET C# J# Cobol.Net Asp.net (Web) Winforms (Windows) WebService Na prtica (figura 1), quando vamos criar uma aplicao selecionamos primeiro a linguagem a ser utilizada, na seqncia o Template (Tipo de aplicao), o nome e a localizao. GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 24
Figura 1 - Criando um novo projeto. Comparaes (VB6) Por que migrar? Permitir que os desenvolvedores tenham total acesso a funcionalidades oferecidas pelo .Net Framework, de maneira direta e integrada sem a necessidade de "artifcios" de programao; O Visual Basic se torna uma linguagem de programao ainda mais poderosa e flexvel; O Visual Basic no foi melhorado e sim totalmente refeito. Diferenas Tipos de dados Converses implcitas Sintaxe de linguagem Comportamento Arrays Fortemente tipado Tipos comuns ao .Net Framework O tipo de dados universal, passa a ser Object ao invs de Variant. Tipos - Inteiros VB.NET VB 6.0 Tamanho .NET Framework Short Integer 16 bits System.Int16 Integer Long 32 bits System.Int32 Long Nenhum 64 bits System.Int64 Currency e Date GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 25 Currency no existe mais, substitudo pelo Decimal; Datas no so mais armazenadas como Double. String Todas as strings so de tamanho varivel; No mais possvel declarar o tamanho de uma varivel do tipo String. Algumas vantagens Orientado a Objetos -Passa a suportar herana de classes geradas no s em VB.net; -Pode acrescentar funcionalidades da classe base (sobreposio de mtodos). Construtores e Destrutores -Construtores so utilizados para incializar uma classe. Uma classe pode ter vrios construtores e estes podem ser parametrizados; -Substituem os eventos Initialize e Terminate. Controles Alguns novos controles e propriedades foram criados Controles Spliter NotifyIcon CheckedListBox
Propriedades Form - Opacity Form - Archor
Menu Criado um novo editor de menu "Edit in Place"; O menu montado dentro do prprio formulrio e no em uma janela separada.
Herana Visual Tanto formulrios como controles, podem ser extendidos atravs de herana; Desta forma torna-se bastante simples a definio de interfaces grficas padronizadas aumentando o reaproveitamento de cdigo e a produtividade dos desenvolvedores. Tratamento de erros GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 26 Utilizao de blocos TryCatchFinally; Mais fcil de utilizar, mais robusto, mais abrangente; On Error ainda mantido como forma de tratamento no estruturado. Visual Studio .NET Ferramenta de alta produtividade para equipes de desenvolvimento para aplicaes corporativas e Web Mais produtiva ferramenta para a criao de servios Web Ferramentas End-to-end para maior produtividade no ciclo de vida do desenvolvimento corporativo Novas janelas -Solution Explorer -Class View -Server Explorer Quando utilizar winforms? Aplicaes com processamento pesado; Aplicaes com interfaces mais ricas; Aplicaes com controles mais personalizveis. Comparao: WINFORMS COM WEBFORMS (Asp.net) As aplicaes winforms gastam um processamento no cliente, enquanto na web gastam mais no servidor; As aplicaes mais pesadas com longo processamento em aplicaes web no so eficientes; Distribuio A distribuio de aplicaes windows um problema a muitos anos, porm no .NET isso melhorou muito. Como: - XCOPY: Uma aplicao que no possui componentes (DLLS) simplesmente pode ter o seu executvel copiado para uma mquina com o framework instalado - Setup: Caso a aplicao possua DDLS sendo utilizada, o setup ainda uma boa forma de distribuio - Smart Client: Uma revoluo na distribuio de aplicaes Smart Client Vantagens - Distribuio pela Web - Interface rica, sem miutos problemas com segurana - Poder trabalhar off-line, quando possvel - Bom uso da banda - Utilizao de WebService
Conexo com Banco de Dados conexo com banco de dados, usado amplamente no dia-a-dia do programador. Sero usados nesta e nas prximas colunas os bancos ACCESS 2000/97, MS-SQL Server e MYSQL. O tipo de conexo a ser utilizada ser a string para conexo ADO. GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 27 Para exemplificar esses trs tipos de conexo, vamos criar uma aplicao simples de Agenda Telefnica. Nesta primeira parte vamos usar o banco ACCESS. Crie um banco com o nome de agenda.mdb e com as seguintes caractersticas: Tabela: pessoal Campo Tipo Tamanho codigo AutoNumber nome Text 50 end Text 100 fone Text 25 No Visual Basic crie um novo Projeto com nome de AgendaMDB, renomeie o Form1 para frmAgenda e insira um Mdulo com o nome de modCnn, como mostra a figura abaixo:
Agora vamos criar dentro do Mdulo o cdigo de conexo com o banco, e as rotinas de Incluso, Consulta, Alterao e Excluso como mostra as linhas abaixo: Option Explicit Global cn As ADODB.Connection Global rs As ADODB.Recordset Conexo: Private Sub Main() Dim strArquivo As String Dim strLocal As String GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 28 Dim ConectaAccess As String
Load frmAgenda frmAgenda.Show DoEvents Set cn = New ADODB.Connection Set rs = New ADODB.Recordset strArquivo = "agenda.mdb" strLocal = App.Path Set cn = CreateObject("ADODB.Connection") ConectaAccess = "Driver={Microsoft Access Driver (*.mdb)};" & _ "Dbq=" & strArquivo & ";" & _ "DefaultDir=" & strLocal & ";" & _ "Uid=Admin;Pwd=;" cn.Open ConectaAccess End Sub Rotina de Incluso: Public Function Inserir(ByVal strNome As String, _ strEnd As String, _ strFone As String) As Variant
Inserir = True End Function Rotina de Alterao: Public Function Alterar(ByVal intCodigo As Integer, _ strNome As String, _ strEnd As String, _ strFone As String) As Variant
Alterar = True End Function Rotina de Consulta: Public Function Consultar(ByVal intCodigo As Integer) As Variant Set rs = CreateObject("ADODB.Recordset") With rs .Open "select * from pessoal where codigo=" & intCodigo & "", cn, adOpenKeyset, adLockOptimistic If .RecordCount = 0 Then MsgBox "Cdigo Invlido", vbExclamation, "Erro" Else frmAgenda.lblCod = !codigo GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 29 frmAgenda.txtNome = IIf(IsNull(!nome), Empty, !nome) frmAgenda.txtEnd = IIf(IsNull(!End), Empty, !End) frmAgenda.txtFone = IIf(IsNull(!fone), Empty, !fone) End If .Close End With
End Function Rotina de Excluso: Public Function Excluir(ByVal intCodigo As Integer) As Variant cn.Execute "delete * from pessoal where codigo=" & intCodigo & "" Excluir = True End Function Para esse cdigo que acabamos de digitar tenha efeito necessrio fazer uma referncia ao ADO. Ento clique em Project/References... e escolha a opo "Micrisoft ActiveX Data objects 2.6 Library", como mostra a figura abaixo:"
Obs.: As verses 2.5 e 2.6 do ADO so para ACCESS 2000 e a verso 2.1 para ACCESS 97. Voltando ao form frmAgenda modele-o como mostra a figura abaixo: GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 30
E o cdigo desse form vai ficar dessa forma: Boto Alterar: Private Sub cmdAlterar_Click() Dim atual As Variant
atual = Alterar(lblCod.Caption, txtNome.Text, txtEnd.Text, txtFone.Text) If atual = True Then Call limpar Else MsgBox "Erro na atualizao.", vbCritical End If End Sub Boto Consultar: Private Sub cmdConsultar_Click() Dim intCodigo As Integer intCodigo = InputBox("Digite o Cdigo", "Consulta") Consultar (intCodigo) End Sub Boto Excluir: Private Sub cmdExcluir_Click() Dim excluido As Variant
excluido = Excluir(lblCod.Caption) If excluido = True Then Call limpar Else MsgBox "Erro na excluiso.", vbCritical End If End Sub Boto Incluir: Private Sub cmdIncluir_Click() Dim novo As Variant
novo = Inserir(txtNome.Text, txtEnd.Text, txtFone.Text) If novo = True Then Call limpar GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 31 Else MsgBox "Erro na incluiso.", vbCritical End If End Sub Funo limpar: Private Sub limpar() lblCod.Caption = "" txtNome.Text = "" txtEnd.Text = "" txtFone.Text = "" End Sub Boto Sair Private Sub cmdSair_Click() cn.Close Set cn = Nothing Unload Me End Sub Para finalizar, clique em ProjectAgendaMDB Proprerties... e em Startup Object: troque frmAgenda por Sub Main. Estatstica e Visual Basic
No Visual Basic, crie um novo Projeto com nome de Estatstica e renomeie o Form1 para frmDados. Depois inclua mais um form como mostram as figuras abaixo:
Remonei o Form2 para frmGrafico. GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 32 Insira um Mdulo com o nome de modCnn, como mostra a figura abaixo:
Crie dentro do Mdulo, o cdigo de conexo com o banco como mostram as linhas abaixo: Option Explicit Private Declare Function ShellExecute Lib "shell32.dll" Alias _ "ShellExecuteA" (ByVal HWnd As Long, ByVal lpOperation _ As String, ByVal lpFile As String, ByVal lpParameters _ As String, ByVal lpDirectory As String, ByVal nShowCmd _ As Long) As Long Global cn As ADODB.Connection Global rs As ADODB.Recordset Private Sub Main() Dim strArquivo As String Dim strLocal As String Dim Conecta As String DoEvents Set cn = New ADODB.Connection /font color="#0066CC">Set rs = New< font> ADODB.Recordset strArquivo = "dados.mdb" strLocal = App.Path Set cn = CreateObject("ADODB.Connection") Conecta = "Driver={Microsoft Access Driver (*.mdb)};" & _ "Dbq=" & strArquivo & ";" & _ GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 33 "DefaultDir=" & strLocal & ";" & _ "Uid=Admin;Pwd=;" cn.Open Conecta Load frmDados frmDados.Show End Sub Para este exemplo, preciso fazer referncia ao ADO para usar a conexo com o banco de dados e Microsoft Excel e exportar os dados, como mostra a figura abaixo:
Voltando ao form frmDados modele-o como mostra a figura abaixo:
GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 34 Para incluir o ListView e o Chart(Grfico), no menu principal, clique em Project/Components e selecione os itens Microsoft Chart Control 6.0 e Microsoft Windows Common Control 6.0, como mostra a figura abaixo:
Na barra de componente, d um duplo clique em ListView, como mostra a figura abaixo:
Selecione o ListView que acabou de inserir, v em properties e renomeie para lstAgenda, como mostra a figura abaixo:
GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 35 Clique em Custom, e, em Column Headers, crie 6 campos: Ms, Valor1, Valor2, Valor3, Valor4 e Valor5, como mostra a figura abaixo:
Codifique o frmDados da seguinte forma: Private Sub Form_Load() Call montaLista End Sub Private Sub cmdExcel_Click() Dim i, n, col, lin As Long Dim objExcel As Excel.Application Dim objWorkbook As Excel.Workbook On Error Resume Next Set objExcel = New Excel.Application Set objExcel = GetObject(, "Excel.Application") If Err.Number Then Err.Clear Set objExcel = CreateObject("Excel.Application") If Err.Number Then MsgBox "No foi possivel abrir o Excel." End If End If objExcel.Visible = True Set objWorkbook = objExcel.Workbooks.Add rs.Open "select * from mes", cn, adOpenKeyset, adLockOptimistic '--- conta as linhas --- GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 36 Do While Not rs.EOF lin = lin + 1 rs.MoveNext Loop
'--- conta as colunas --- col = rs.Fields.Count
For i = 0 To 0 For n = 0 To col - 1 objWorkbook.ActiveSheet.Cells(i + 1, n + 1).Value = rs.Fields(n).Name Next Next
rs.MoveFirst ' move para o primeiro registro For i = 1 To lin For n = 0 To col - 1 objWorkbook.ActiveSheet.Cells(i + 1, n + 1).Value = rs.Fields(n).Value Next rs.MoveNext Next
rs.Close Set objWorkbook = Nothing Set objExcel = Nothing End Sub Private Sub cmdGrafico_Click() frmGrafico.Show End Sub Private Sub cmdSair_Click() Unload Me End Sub Private Sub montaLista() Dim lst As ListItem 'Limpar Lista ListView1.ListItems.Clear
'carregar a lista With rs .Open "select * from mes", cn, adOpenKeyset, adLockOptimistic If .RecordCount = 0 Then MsgBox "No existe(m) dado(s) cadastrado(s) no sistema.", vbExclamation, "Erro" Else Do Until rs.EOF Set lst = ListView1.ListItems.Add(, , rs("mes")) lst.SubItems(1) = rs("Valor1") lst.SubItems(2) = rs("Valor2") lst.SubItems(3) = rs("Valor3") lst.SubItems(4) = rs("Valor4") lst.SubItems(5) = rs("Valor5") GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 37
rs.MoveNext Loop End If .Close End With
'desmarca a lista ListView1.SelectedItem.Selected = False End Sub Agrora modele o frmGrafico como mostra a figura abaixo:
Para inserir o Grfico, na barra de componente, d um duplo clique em MSChart, como mostra a figura abaixo:
Codifique o frmGrafico da seguinte forma: Private Sub Form_Load() With MSChart1 rs.Open "select valor1, valor2, valor3, valor4, valor5 from mes", cn, adOpenKeyset, adLockOptimistic rs.MoveFirst
Set .DataSource = rs .ShowLegend = True rs.Close End With End Sub GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 38 Private Sub cmdExcel_Click() Dim i, n, col, lin As Long Dim f, letras As String Dim objExcel As Excel.Application Dim objWorkbook As Excel.Workbook On Error Resume Next letras = "ABCDEFGHIJKLMNOPQRSTUVWXYZAAABAC ADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUA VAWAXAYAZBABBBCBDBEBFBGBH"
Set objExcel = New Excel.Application Set objExcel = GetObject(, "Excel.Application") If Err.Number Then Err.Clear Set objExcel = CreateObject("Excel.Application") If Err.Number Then MsgBox "No foi possivel abrir o Excel." End If End If objExcel.Visible = True Set objWorkbook = objExcel.Workbooks.Add
rs.Open "select * from mes", cn, adOpenKeyset, adLockOptimistic '--- conta as linhas --- Do While Not rs.EOF lin = lin + 1 rs.MoveNext Loop
'--- conta as colunas --- col = rs.Fields.Count
For i = 0 To 0 For n = 0 To col - 1 objWorkbook.ActiveSheet.Cells(i + 1, n + 1).Value = rs.Fields(n).Name Next Next
rs.MoveFirst ' move para o primeiro registro For i = 1 To lin For n = 0 To col - 1 objWorkbook.ActiveSheet.Cells(i + 1, n + 1).Value = rs.Fields(n).Value Next rs.MoveNext Next
If col <= 26 Then f = Mid(letras, col, 1) & lin + 1 Else f = Mid(letras, col, 2) & lin + 1 End If
rs.Close Set objWorkbook = Nothing Set objExcel = Nothing End Sub Private Sub cmdSair_Click() Unload Me End Sub Este nosso projecto chamar-se- "Agenda" e tem como obectivo registar dados dos nossos amigos, sendo o numero de acesso, chave principal, ou primria, o numero do bilhete de identidade. Para que possamos pessoalizar este projecto, teremos uma outra Tabela onde iremos registar os nossos dados pessoais, cujo campo "name" aparecer em todas as janelas.
Data Control
Existem duas formas de trabalharmos com uma Base de Dados num projecto em Visual Basic. Uma usarmos o objecto Data Control, existente na ToolBox (Imagem acima), outra fazermos a abertura "manual" da Base de Dados e das Tabelas.Existem vantagens e desvantagens em cada um dos processos. Vamos tentar esquematizar ambos os casos para uma compreenso mais facilitada. Data Control - Vantagens: Escrever poucas linhas de cdigo Rapidez de execuo do processo Projectos pequenos Data Control - Desvantagens: No se pode adaptar a outro projecto Debug (testar projecto pao a pao) dificil GERONET SERVICES Cursos Apostilas Manuais Tutoriais www.geronetservices.com geromel@gmail.com 40 Dificuldades de modificao por outro programador Abertura Manual - Vantagens: Total controlo sobre todos os aspectos do processo Melhor utilizao em multiutilizador Cdigo genrico reutilizavel em diferentes projectos Poder ser alterado por outro programador Abertura Manual - Desvantagens: Todo o processo tem que ser escrito Exige maior responsabilidade do programador Em face do exposto, ns optamos definitivamente pela abertura Manual. Continuando com a anlise do nosso projecto, iremos criar 3 janelas. A 1 ter um menu e icons de modo a podermos terminar ou aceder s outras janelas com facilidade, e chamar-se- FrmPrincipal. Teremos uma janela para registar os nossos dados pessoais (FrmPessoal), e uma outra para registar os dados dos nossos amigos(FrmAmigos). Quando clicarmos em "Terminar" devemos, atravs de uma caixa de dilogo, perguntar se queremos mesmo terminar, dando a opo de cancelarmos a operao. Na janela de "Amigos" vamos utilizar 2 Frames. Uma para sexo, com dois OptionButtons, e uma outra para Estado Civil com seis OptionButtons, onde a propriedade Caption ser alterada para (Casado, Solteiro, Viuvo, Separado, Divorciado, Outra)