Visual Basic #2 – Programação modular e estruturada
Por Juliano Almeida para o Pplware Como prometido aqui está mais um artigo sobre Visual Basic, antes de começar quero agradecer a todos os leitores que apoiaram o último artigo, são esses leitores que nos fazem continuar com a rubrica;)
Voltando ao exemplo do café do último artigo, se eu dividisse o problema em problemas menores ou sub-problemas, que passariam a ser módulos e escrevesse as instruções para cada um desses sub-problemas ou módulos, não só libertaria o leitor da sequência rígida imaginada por mim, como poderia ainda ensinar-lhe, talvez com maior profundidade, acções isoladas que poderia aplicar a outras situações.
Imaginemos, por exemplo, que eu lhe ensinava o módulo destinado a acender o fogão, ou seja, os passos 4 a 7 e chamava a essa sequência acender-fogão.
Escreveria o seguinte conjunto de instruções:
Módulo acender-fogão:
1 – Pegar na caixa de fósforos; 2 – Acender um fósforo; 3 – Rodar o botão da boca do fogão; 4 – Acender essa boca com o fósforo.
E que para colocar uma cafeteira com água ao lume escrevia:
Módulo cafeteira-água-fogão
1 – Pegar numa cafeteira; 2 – Encher a cafeteira com água; 3 – Pôr a cafeteira numa boca do fogão.
E ainda que para o café escrevia:
1 – Pegar na lata de café; 2 – Colocar café na chávena; 2.1 – Se o quiser mais fraco, uma colher; 2.2 – Se o quiser mais forte, duas colheres; 3 – Esperar que a água ferva; 4 – Colocar a água na chávena; 5 – Pegar numa colher; 6 – Mexer o café.
Como se vê as instruções permanecem rigorosamente iguais. Encontram-se é divididos em blocos menores e o utilizador pode escolher a sequência em que quer utilizar esses blocos.
Assim, caso pretenda utilizar os módulos de instruções na seguinte ordem, solucionando um sub-problema de cada vez:
1 – Módulo café 2 – Módulo cafeteira-água-fogão 3 – Módulo acender-fogão
Se preferirem outra ordem não existe problema nenhum. Com a vantagem adicional de caso queira fazer chá, por exemplo, possuir à partida 2 dos 3 módulos necessários, só precisando de aprender o módulo chá (que será idêntico ao módulo café, apenas substituindo-se o produto). O mesmo se dará se o utilizador pretender aquecer sopa. Poderá ainda nesse caso, utilizar pelo menos o já disponível módulo acender-fogão.
A vantagem deste tipo de programação, em alguns aspectos são óbvias, o problema simplifica-se uma vez que é dividido em problemas menores ou sub-problemas, mais fáceis de analisar e solucionar. Ao criar módulos de instruções para a solução desses sub-problemas, passamos a dispor desses módulos para a eventual resolução de outros problemas. Pode escolher-se a ordem dos passos para a resolução de um problema, etc.
Acabando com a teoria por hoje, vamos passar ao programa Visual Basic 6 ou Visual Basic 2008.
Hoje pretendo mostrar como é que se constrói menus pendentes e menus flutuantes, a maneira de o fazer no Visual Basic 6 é um pouco diferente da maneira do Visual Basic 2008, por isso vou mostrar primeiro como se faz no Visual Basic 6 e em seguida no Visual Basic 2008.
Menus Pendentes – Visual Basic 6
A primeira coisa a fazer depois de criar um novo projecto, é abrir o editor de menus. Para tal recorre-se à opção Menu Editor do menu Tools. A janela que irá aparecer deverá de ser a seguinte:
O Editor de Menus está basicamente dividido em duas partes, a parte superior, onde se faz a manipulação das propriedades dos menus e a parte inferior, constituída por uma caixa de texto onde se introduzem as opções do meu.
O que eu pretendo que criem, é uma interface para uma pequena aplicação que terá os menus Ficheiro e Editar. A opção Ficheiro terá como subopção Sair e a opção Editar terá as sub-opções Copiar e Colar.
Então para criarem o meu têm que fazer o seguinte:
1 – Na caixa Caption colar o nome do meu a criar. A letra que serve como acesso através de teclas é definida colocando o carácter “&” antes:
Exemplo: Se em Ficheiro a letra de acesso fosse o “F”, a definição em Caption seria &Ficheiro. O resultado em execução seria Ficheiro.
2 – Na caixa Name, colocar o nome pelo qual a opção do menu será reconhecida na aplicação. Como se sabe, este nome será importante na altura de associar acções a cada uma das opções do menu.
3 – Ajustar o nível de profundidade do menu através das setas esquerda e direita.
Este nível de profundidade diz respeito a sub-opções de opções. Utilizando o exemplo anterior o primeiro nível será o dos menus Ficheiro e Editar e o segundo será o das suas sub-opções.
4 – Seleccionar propriedades mais avançadas dos menus (discutidas mais à frente);
5 – Carregar no botão Next para criar um novo item de menu ou em Insert para inserir um item de menu entre outros já criados. Para apagar um item carregar em Delete.
6 – Voltar ao ponto 1 até que todos os menus estejam completos. Quando isto acontecer carregar no botão OK.
Vamos utilizar o método anterior para implementarmos o menu.
Então vamos começar pela opção Ficheiro
Quando a construção do menu estiver concluída, o editor deverá apresentar o seguinte aspecto:
Como podem ver, o meu está pronto, para visualizar na Forma basta carregar em OK.
O resultado obtido deverá ser o seguinte:
Quanto ao Visual Basic 6 estamos terminados, vamos passar ao Visual Basic 2008.
Menus Pendentes – Visual Basic 2008
No Visual Basic 2008, não existe o “Menu Editor” como no Visual Basic 6, a maneira de criar menus no VB 2008 é muito mais fácil que no VB 6, basta irem a toolbox, na zona “Menus & Toolbars” clicarem na opção Menu Strip
.
Depois de clicarem na opção Menu Strip, têm que “desenhar” o menu na Form, depois editam o menu em tempo real, o “&” continua a servir para escolher qual a tecla de acesso.
Depois de editarem os menus, o resultado final deverá de ser o seguinte:
Como viram no Visual Basic 2008 foi muito mais fácil.
Peço-vos que guardem o que acabamos de criar, para na próxima terça poderem criar uma calculadora simples e um menu flutuante.
Este artigo tem mais de um ano
Boas,
Bom tutorial para quem está a dar os 1ºs passos no mundo da programação.
Este espirito é que é preciso, Continua 😉
Muito bom!!
Espero que este comentário ajude na motivação para a continuação deste excelente tuturial.
Muito Bom, Siga para o próximo.
Em C# e em Delphi é praticamente igual
Nota de fora desse programa,já chegou o Mozilla Firefox 3.5 final.
Já estava a espera disto! 😀
Muito obrigado pela a ajuda aos novatos!
Continuem sff!
Grande abraço
Se tivessem disponibilidade estes tutoriais podiam ser todos os dias.
Boas,
Só um reparo a este tutorial, existe mais uma forma de criar menus no VB.NET 2008.
A forma é a seguinte, ao adicionar o MenuStrip nas propriedades, Data>Itens, ai podemos fazer o mesmo com muitas mais opções.
Continuem assim…
Cumprimentos.
esta muito bom mais uma vez excelente mesmo passo a passo vamos consolidando melhor 😀 para mim por exemplo que estou a trabalhar so em saltinhos e que consigo ca vir esta excelente mesmo
Eu não quero parecer chato, mas vou voltar a insistir, porque penso que não viram o meu comentário na outra rubrica (visto que não houve resposta, e ficou algures na (eterna) discussão da melhor linguagem…):
“Uma sugestão: não vale a pena tocar mais no VB 6. A própria Microsoft já não dá qualquer tipo de suporte ao produto (Visual Basic 6), e consequentemente a tendência é para migrar para o .NET
Estar a incitar o uso do VB6 é estar a dar às pessoas a “oportunidade” de se manterem no “passado”, e consequentemente se forem a fóruns colocar as vossas dúvidas de VB6, poucas ou cada vez menos respostas vão ter.
Eu arriscaria dizer que tudo o que se faz em VB6 também é possível fazer em .Net, de certo modo facilitado pela .Net Framework, que já evita muito código e chamadas à API do Windows.”
Quanto ao artigo em si, é giro termos um menu, mas também podias ter incluído umas funcionalidades exemplo, ao clicar no menu, por uma imagem… etc. Está um bocado incompleto a meu ver. E dá-me que já tinhas incluído aquele exemplo do café.
O VB6 ainda é muito usado e a Microsoft continua a suportar o Runtime do mesmo por mais 10 anos. A razão é simples. O Windows 7 suporta o Runtime do VB6 e como tal, a MS e devido à sua propria politica, garantiu assim a continuidade por mais 10 anos do Runtime do VB6 . Já o tinha feito no Vista também.
Alias a titulo de curiosidade, sabiam que o VS2003 e VS.NET (o 2002) não instalam nem no Vista nem no W7 mas o IDE do VB6 instala? Fica a curiosidade.
Há também uma vantagem do VB6 hoje em dia que passa ao lado de muitagente mas que nunca é demais referir. O VB6 é a ultima linguagem VB a desenvolver componentes COM nativos. No .NET podes desenvolver componentes COM, mas estes correm sobre .NET. EM VB6 desenvolves componentes COM em código nativo e os mesmos se não usarem livrarias externas podem ser instalados no XP e no Vista quase sem qq tipo de “custo” de deploy extra. Em certos cenários isto pode fazer todo o sentido. Principalmente quando estamos a falar de máquinas mais antigas onde o .NET é quase impossível de usar devido ao peso que representa.
Alias é possível, ao contrário do que muitos pensam, a partir do XP, fazer o deploy de componentes COM side by side sem conflitos de versões e sem ter de os registar. Procurem por SxS manifest.
E finalmente, e mais importante do que tudo acima, acho importante esta comparação entre as duas linguagens, porque ajuda a quem ainda usa mais VB6 do que .NET e perceber as diferenças e como pode fazer a migração.
Por isso tudo acho que o teu comentário é válido mas não acho que tenha em consideração todos os factores.
Não tinha ideia que os runtimes ainda eram suportados, fui fazer uma pequena pesquisa e fica aqui de referência para comprovar:
http://msdn.microsoft.com/en-us/vbrun/ms788708.aspx
É verdade que pode ser interessante para quem está a fazer a transição de VB6 para .Net, mas para quem começa agora e tem o “azar” de começar por VB6, pode sentir-se tentado a permanecer nessa linguagem. Bom, de resto tenho de concordar 😀
Visual Basic 6.0 Still Widely Used
* 87% of companies currently use VB6 – similar to finding above but without the maintenance focus
* 25% of companies have over 500,000 lines of VB6 code
* 26% of companies have a VB6 application connected to the Internet
* 42% of companies plan to never migrate VB6 code to .NET and instead continue using VB6.
Para ler o estudo completo:
http://geekswithblogs.net/iupdateable/archive/2009/02/17/results-of-the-visual-basic-survey-part-1-language-and.aspx
http://geekswithblogs.net/iupdateable/archive/2009/02/18/results-of-the-visual-basic-survey-part-2-visual-basic.aspx
http://geekswithblogs.net/iupdateable/archive/2009/02/17/results-of-the-visual-basic-survey-part-3-move-from.aspx
Assim, para estar apto para o mercado de trabalho acho de todo fundamental saber 1º VB6 e depois .NET
[]’s
Ele incluiu o exemplo do café para iniciar na algoritmia, mas neste artigo ele fez uma introdução à modularidade. Ajudava leres melhor o artigo.
Não li a primeira parte do artigo, sendo assim tens razão.
Quanto ao VB6, bom, foi o que já disse. Realmente não tinha noção que ainda era tão usado, mas para quem se inicia, não acho correcto estar a ensinar tecnologia que daqui a alguns anos correm o risco de se tornar obsoletas, como referi.
O José Luís e o J.C. já disseram tudo por mim…
VB6 rules!;)
…excelente artigo, como no anterior a simplicidade foi muita…! bom trabalho, e na próxima terça, cá estarei…!! (está guardado)
Continuação de bons artigos.
🙂 🙂
Muito obrigado pelo rubrica.
Já algum tempo que queria aprender a programar em Visual basic, e acho que esta vai ser uma excelente oportunidade.
Fico a aguardar pelos próximos post.
Continua!!!
Afinal, é meu ou menu?
Grato por mais este post. Muito útil para nós os principiantes!
Grande simplicidade, grande qualidade, so penso que desta vez pecaste talvez por falta de mais um pouco de teoria.
Sugestão:
– Comecares a usar algumas apis simples 😉
Duvida:
– Por acaso n sabes como criar thumbnails de pdfs com o vb.net?
Problema do thumbnail resolvido, podem ver a resolucao no forum.
Parabéns pelo artigo, pela segunda vez.
Compreendo a razão pela qual fazes uma parte de teoria e outra de prática com a ferramenta.
Espero ansiosamente que no final, possas colocar em prática os conceitos de programação, assim como as ferramentas do IDE para concretizar um programa final que relacione todos os temas aqui estudados.
Continua. 😉
Parabens pela simplicidade com que assuntos complexos são explicados de uma forma simples. Aguardo pela próxima terça…
Mais uma vez excelente post…
Continua assim…
good work!!
🙂
Agrado a todos os que comentaram, para a semana já sabem cá estarei, e continuarei com a mesma estrutura, primeiro um pouco de teoria e depois a explicação de uma aplicação tanto em Visual Basic 6 como em Visual Basic 2008.
Abraço
Espero que me perdoem os entendidos.
Mas como já disse anteriormente, nunca vi um tópico de programação com uma sequência tão lógica, para quem não sabe programar (penso que é esse o objectivo), como este. Espero que continue assim. Começar um programa e leva-lo até ao fim. Espero que não se perca nas indicações dadas: (“Sugestão:- Comecares a usar algumas apis simples ;)Duvida:
– Por acaso n sabes como criar thumbnails de pdfs com o vb.net?”).
Quem já sabe alguma coisa que se limite a esperar que chegue á altura em que não sabe. Sugestões, são para quem já sabe algo, ou tem conhecimentos para opinar sobre o assunto. E isso é outro assunto, pelo que eu entendi sobre o começo deste tema não é esse o objectivo deste tutorial. Isto é para quem quer começar. Pela primeira vez estou a assistir a uma lógica de programação simplista e perfeitamente perceptível por qualquer leigo. Os entendidos devem começar um post novo para “mostrar o que sabem” e nunca opinar ou tentar que o assunto seja avançado de acordo com aquilo que já sabem. Como disse de inicio nunca vi uma explicação com uma encadeação tão sincronizada e tão simplista como esta. É disto que, nós leigos necessitamos. Quem já estiver mais adiantado não necessita de o demonstrar. Que espere pela altura deles, ou então que iniciem um novo post. Espero que o autor continue com o óptimo trabalho e não se deixe influenciar por quem quer demonstrar que sabe. Eu não sei, quero aprender e nunca VI UM POST COM UMA SEQUÊNCIA TÃO LÓGICA E TÃO PERCEPTÍVEL.
Perdoem-me o desabafo, mas “entendidos” a opinar ou criticar boas iniciativas, estou farto. Têm melhores ideias façam outro post. Eu não estou a opinar ou criticar, simplesmente nunca aprendi tanto como estou a aprender, por isso espero que o autor continue e não se deixe influenciar ou desista por alguns comentários “dos entendidos ou mais avançados”.
Fiz a sugestão com o intuito de ser uma sugestão construtiva e seguindo a sequencia lógica destes tutoriais, tal como a critica acerca da quantidade teorica do artigo.Relativamente a duvida era uma coisa k eu precisava nakele momento e que felizmente consegui resolver.A ideia n é demonstrar que ja sei alguma coisa ou o que sei, a ideia e tentar ajudar alg k ja por si tenta ajudar outros, pk da mesma maneira que ja recebi muita ajuda gosto tb de me disponibilizar para ajudar.Realmente tenho pena que tenhas entendido o meu comentario como uma critica distrutiva e arrogante quando n pretendia nd disso.
*destrutiva