VB.NET - Criando uma Splash Screen
Uma splash Screen ou tela de inicialização (no inglês do Zecão) tem dois objetivos básicos :
Mascarar o tempo de carga da aplicação durante sua inicialização. (tendo alguma coisa para ver o usuário tem a sensação de que o tempo não passa tão devagar. Profundo isto não é mesmo ...)
Exibir informações sobre a empresa e o produto que a sua aplicação. ( a propaganda é a alma do negócio. Mas negócio tem alma ?)
Vamos então criar uma splash screen no VB.NET. Você se lembra que no VB6 existia um formulário modelo pronto para ser usado como splash screen, pois é , no VB.NET não tem.... Mas como existe jeito para tudo vamos lá...
1 - Inicie um novo projeto no Visual Studio.NET com as seguintes características (sinta-se a vontade para alterar a seu gosto.)
- Você terá uma solução com um formulário form1.vb. Altere o nome deste formulário para frmMain.vb
- No menu Project selecione a opção Add Windows Forms
- Na janela Add New Item - marque - Windows Form e informe o nome : frmSplash.vb para este novo formulário
Para tornar este novo formulário o nosso formulário de inicialização devemos alterar as seguintes propriedades do mesmo:
FormBorderStyle - none
StartPosition - CenterScreen
Bem , agora falta dar um toque de Picasso no formulário incluindo um logotipo um texto . Eu particularmente estava inspirado e meti um fundo preto no formulário com um texto branco. Ficou assim meu formulário:
Meio tétrico não é mesmo ? Esqueci de incluir as informações sobre a empresa , o produto e a versão do sistema. Mas como eu posso fazer isto ? |
Quando você cria um projeto do tipo Windows Application geralmente você vai criar como saída um programa EXE.
Cada programa EXE possui propriedades como Nome , Empresa , versão . Vamos pegar um programa EXE bem conhecido , a calculadora do Windows. Na pasta x:\windows\system32 localize o programa Calc.exe e clique com o botão direito do mouse sobre ele . Na menu pop up selecione propriedades e você verá :
Pois bem , nosso programa
também será um EXE é o que queremos e justamente incluir estas informações. Como em .NET um EXE também é conhecido como um Assembly , se você olhar a estrutura do seu projeto você vai encontrar uma classe chamada AssemblyInfo.vb. Pois é neste arquivo que vamos armazenar as informações sobre nome , empresa e versão da aplicação.
|
Vamos dar uma olhada na estrutura interna do arquivo AssemblyInfo.vb:
Basta então incluir os valores que desejamos diretamente no arquivo. Veja abaixo como ficou :
Após compilarmos o projeto o compilar irá ler esta informação e irá vinculá-las ao EXE.
Mas como eu posso exibir estas informações no formulário ? Simples baby.
Inclua três labels no formulário : lblNome , lblEmpresa e lblVersao. A seguir inclua o código abaixo no evento Load do formulário :
Private
Sub
frmSplash_Load(ByVal
sender As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load lblNome.Text = Application.ProductName lblEmpresa.Text = Application.CompanyName lblVersao.Text = Application.ProductVersion End Sub |
No código eu estou usando a classe Application que fornece métodos e propriedades estáticos (Shared em VB.NET) para gerenciar a aplicação (iniciar , parar, processar mensagens) e obter informações sobre a mesma. Esta classe não pode ser herdada.
Agora devemos fazer com que o formulário seja exibido na carga da aplicação. Para isto siga o roteiro:
clique com o botão direito do mouse no nome do projeto - SplashScreen -
no menu suspenso selecione properties
a seguir na janela properties informe em startup object o nome do formulário : frmsplash
Com isto o formulário frmsplash será carregado , mas ele deve ficar alguns segundos visível e a seguir chamar o formulário principal. Para isto podemos incluir um controle Timer no formulário frmSplash e a seguir definir sua propriedade Interval igual a 5000 ( 5 segundos) e Enabled igual a true e a seguir inserir o código abaixo no evento Tick do formulário:
Private
Sub Timer1_Tick(ByVal
sender As System.Object,
ByVal e
As System.EventArgs)
Handles Timer1.Tick
f1.Show() Me.Visible = False End Sub |
Você deve declarar no início do formulário a variável f1 assim : Public Shared f1 As New frmMain()
Após 5 s da carga do formulário o código do evento Tick será executado. Nele temos :
Timer1.Enabled =
False - desabilito o controle Timerf1.Show() - exibo o formulário principal
Me.Visible = False - torno invisível o formulário de inicialização
Executando a aplicação você verá :
|
|
O formulário de inicialização | e após 5s o formulário principal |
Existe mais de uma maneira de fazer a carga do formulário. Deixo para você pesquisar...
Eu sei , é apenas ASP.NET , mas eu gosto..
José Carlos Macoratti