Array
(
)

Tela de Splash - C#

Herivelton Pires
   - 21 jun 2009

Prezados, Boa Noite!

Por favor, poderiam me passar um exemplo de como fazer uma tela de Splash para uma aplicação feita em C.

Pretendo montar uma tela (janela) que vai aparecendo aos poucos até ficar 100¬ visivel, um efeito interessante na abertura de programas já muito utilizado por diversas empresas.

Grato aos que responderem.

Abs.


Rike
   - 04 out 2009

Para começar deve-se criar um novo projecto C Windows Application (File -> New -> Project ->Visual C Projects -> Windows Application). Dar um nome ao projecto, ex. SplashScreen.

Para já vamos deixar de lado o form atual e vamos adicionar outro form ao projecto. Para isso, é preciso ir a Project menu e clicar em Add Windows Form. Dar o nome de Splash.cs e clicar em OK.

O Visual Studio .NET criou um novo form. Agora vamos fazer uns ajustes nesse form. Colocar a FormBorderStyle como None, a StartPosition como CenterScreen, o ShowInTakbar como false.
Agora vamos à ToolBox e arrastamos uma PictureBox e inserimos uma imagem. Também pode ser feito através do BackgroundImage do form. Fica ao vosso critério.
Depois de inserir a imagem, colocar a propriedade do form TransparencyKey com a cor de fundo da imagem inserida.

Agora para que o Splash funcione temos que o inicializar antes do Form1. Para isso temos que adicionar algum código ao Form1.

Ir para o método Form1(). Este método é o construtor da class e é executado antes de qualquer outro método. Agora basta adicionar o seguinte código, depois da chamada do método InitializeComponent:


Código (C):
using System.Threading;

Código (C):

Thread th = new Thread(new ThreadStart(DoSplash));
th.Start();
Thread.Sleep(3000);
th.Abort();
Thread.Sleep(1000);

Adicionar o seguinte método DoSplash() no final do código do Form1.

Código (C): [Select]
private void DoSplash()
{
Splash sp = new Splash();
sp.ShowDialog();
}

Agora uma pequena explicação do que é feito aqui. Primeiro, declaramos uma thread e dizemos quanto é que executa o método DoSplash. A linha seguinte executa a thread. Agora a thread iniciada é executada juntamente com a aplicação principal. Para prevenir que o form principal aparece antes que a thread acabe, colocamos uma pausa de 2 segundos (um sleep de 3000 miliseconds). Para assegurar que a thread é finalizada, colocamos uma pausa de 1 segundo para “limpar”.
Agora vamos ver o que é feito no método DoSplash:
Foi declarado uma instância para a class Splash e é então que é visualizada. Quando é chamado o método abort da thread, todas as variáveis declaradas ou instanciadas são “eliminadas”.

Aqui fica um pequeno tutorial de como fazer um SplashScreen em C.

tutorial retirado de : http://www.portugal-a-programar.org/forum/index.php?topic=5533.0

Espero ter ajudado


Rike
   - 04 out 2009

Para começar deve-se criar um novo projecto C Windows Application (File -> New -> Project ->Visual C Projects -> Windows Application). Dar um nome ao projecto, ex. SplashScreen.

Para já vamos deixar de lado o form atual e vamos adicionar outro form ao projecto. Para isso, é preciso ir a Project menu e clicar em Add Windows Form. Dar o nome de Splash.cs e clicar em OK.

O Visual Studio .NET criou um novo form. Agora vamos fazer uns ajustes nesse form. Colocar a FormBorderStyle como None, a StartPosition como CenterScreen, o ShowInTakbar como false.
Agora vamos à ToolBox e arrastamos uma PictureBox e inserimos uma imagem. Também pode ser feito através do BackgroundImage do form. Fica ao vosso critério.
Depois de inserir a imagem, colocar a propriedade do form TransparencyKey com a cor de fundo da imagem inserida.

Agora para que o Splash funcione temos que o inicializar antes do Form1. Para isso temos que adicionar algum código ao Form1.

Ir para o método Form1(). Este método é o construtor da class e é executado antes de qualquer outro método. Agora basta adicionar o seguinte código, depois da chamada do método InitializeComponent:


Código (C):
using System.Threading;

Código (C):

Thread th = new Thread(new ThreadStart(DoSplash));
th.Start();
Thread.Sleep(3000);
th.Abort();
Thread.Sleep(1000);

Adicionar o seguinte método DoSplash() no final do código do Form1.

Código (C): [Select]
private void DoSplash()
{
Splash sp = new Splash();
sp.ShowDialog();
}

Agora uma pequena explicação do que é feito aqui. Primeiro, declaramos uma thread e dizemos quanto é que executa o método DoSplash. A linha seguinte executa a thread. Agora a thread iniciada é executada juntamente com a aplicação principal. Para prevenir que o form principal aparece antes que a thread acabe, colocamos uma pausa de 2 segundos (um sleep de 3000 miliseconds). Para assegurar que a thread é finalizada, colocamos uma pausa de 1 segundo para “limpar”.
Agora vamos ver o que é feito no método DoSplash:
Foi declarado uma instância para a class Splash e é então que é visualizada. Quando é chamado o método abort da thread, todas as variáveis declaradas ou instanciadas são “eliminadas”.

Aqui fica um pequeno tutorial de como fazer um SplashScreen em C.

tutorial retirado de : http://www.portugal-a-programar.org/forum/index.php?topic=5533.0

Espero ter ajudado