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 :

  1. 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 ...)

  2. 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.)

  1. Project Types : Visual Basic .NET
  2. Templates : Windows Application
  3. Name : SplashScreen
  4. Location : c:\vbnet\SplashScreen

- 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:

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:

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


Timer1.Enabled =
False

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 Timer

f1.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