senito Posted September 8, 2006 at 10:54 AM Report #49058 Posted September 8, 2006 at 10:54 AM Splash Screen 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 actual 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: 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. 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#. Baseado em http://www.codersource.net/csharp_splash_screen.aspx
karva Posted September 8, 2006 at 12:23 PM Report #49076 Posted September 8, 2006 at 12:23 PM Atenção: Não esquecer de por using System.Threading; . De resto, está bem bom. Proud LEIC-A@IST student!
Hipnoted Posted September 9, 2006 at 08:27 PM Report #49340 Posted September 9, 2006 at 08:27 PM Continua a fazer tutoriais destes. Eu estou a tentar aprender C# sozinho, isto ajuda e motiva bastante! 😛😄 "Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"
aMeScAS Posted February 9, 2007 at 02:17 AM Report #81402 Posted February 9, 2007 at 02:17 AM isso é para C# .. e para C++ ? Certos codigos sao diferentes... tais como o new = gcnew .... em vez de ' . ' costumas levar ' :: ', etc.. Nao estou a conseguir alterar isso para C++, agradecia alguma ajuda.. 🙂
senito Posted February 12, 2007 at 12:18 PM Author Report #82190 Posted February 12, 2007 at 12:18 PM Para c++ dá uma olhadela aquiu http://www.codeguru.com/Cpp/W-D/dislog/splashscreens/article.php/c5029/
Procrastinator Posted February 9, 2009 at 04:59 PM Report #243292 Posted February 9, 2009 at 04:59 PM Impressão minha ou isto é ripado daqui -> http://www.codersource.net/csharp_splash_screen.aspx
bsntuga Posted February 16, 2009 at 12:43 AM Report #244830 Posted February 16, 2009 at 12:43 AM ya, e copiado, mas ele nao disse q era o autor
Procrastinator Posted February 16, 2009 at 12:48 AM Report #244832 Posted February 16, 2009 at 12:48 AM Aaa boa não da credito nenhum ao autor e fica-se na boa... Bonito
djthyrax Posted February 16, 2009 at 01:38 AM Report #244837 Posted February 16, 2009 at 01:38 AM Acs, já viste a idade do post original? Era preferível enviares PM ao moderador da secção a pedir para identificar a fonte original como sendo esse site. Either way, já lá está. 🙂 Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now