• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

rjsma

[RESOLVIDO]splash screen

21 mensagens neste tópico

boas

e tenho uma duvida que para a maioria das pessoas daqui do forum teve ser muito facil resolver isto

e assim eu adicionei uma splash screen mas queria qua ao executar o programa que o splash screen estevesse so 2 ou 3 segundos aberto e depois que abrisse a form1

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas... tens que meter um timer no intrevalo de 30000 e dares a ordem para a form1 abrir

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Com 30000 no interval, terias um "splash" screen a demorar 30 segundos a fazer qualquer coisa.

O interval é dado em milisegundos, onde 1000 é igual a 1 segundo. Logo, 3000 seriam 3 segundos.

Não precisas de reinventar a roda:

    [*]No solution explorer, dá 2 cliques em My Project[*]Cá em baixo, onde diz "Splash screen", escolhe na combobox o form que queres que sirva de splash

    E aí tens um splash screen, "costless".

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se estás a fazer o que eu te sugeri, esquece os timers. Limpa isso tudo.

Basta escolheres a form de splash no combo da "splash form" no "My Project".

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

se eu tirar o timer depois o splash nao fica so 3 segundos,e ja tirei o timer e continua a dar o mesmo erro

no startup form pos o splash screen, e capaz de ser isto que esta a fazer isto

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é no Startup form que deves colocar, mas sim no "SplashScreen" (3ª opção), como o ribeiro disse:

Se estás a fazer o que eu te sugeri, esquece os timers. Limpa isso tudo.

Basta escolheres a form de splash no combo da "splash form" no "My Project".

Por acaso desconhecia esse recurso do VB, e digo desde já que facilita bastante a criação de splashscreens (embora não seja frequente criá-los para aplicações que desenvolvo...).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas eu quero que o splash screen seja a 1 form a aparecer a 3 opcao e para escolher  e a form que quero que apareca a seguir ao splash screen

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não, é mesmo lá em baixo, atrásde um botão que diz "View Aplication Events".

Em suma, tens de fazer o seguinte:

1) Criar um splashscreen, usando a opção new > new item > splashScreen

2) Seleccionar a opção "splash screen", escolhendo o form que acabaste de criar (acho que esta opção só aparece acessível quando fazes o passo anterior).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e assim para eu por por o splash com form inicial vou ao startup form e para escolher a form que abre a seguir do splash screen vou ao splash screen,certo?

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Num método tradicional, terias de colocar o teu form com o Splashscreen (SS) como startup form, e depois configurar timers, etc.

No entanto, o VB trás um novo recurso, que também só descobri com este tópico, que faz tudo por ti. No fim de contas, fazes assim: vais à janela de criar um novo form, em em vez de escolheres  "windows Form", escolhes um chamado Splashscreen. Modificas o formulário ao teu gosto, e depois vais às propriedades do projecto, e alteras a opção que destaquei a verde:

http://i36.tinypic.com/t53ts5.jpg

A vermelho, pões o teu formulário principal

A verde pões o teu splashscreen.

Inicia a aplicação, e vais ver que corre tudo automaticamente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

existe uma coisa que me parece que não entendeste correctamente.

para fazer sleep não é com timer...

Threading.Thread.Sleep(30000)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

30000 msecs são 30 segundos.

Não precisas de timers, sleeps nem nada que roce lá perto.

O softclean já explicou bem o que eu queria dizer.

Não vale a pena reinventar a roda :thumbsup:

Se quiseres aumentar o tempo de splash, clicas no "Application events" e fazes um override ao "OnInitialize" e brincas com a propriedade "MinimumSplashScreenDisplayTime":

        Protected Overrides Function OnInitialize(ByVal commandLineArgs As System.Collections.ObjectModel.ReadOnlyCollection(Of String)) As Boolean
            Me.MinimumSplashScreenDisplayTime = 3000
            Return MyBase.OnInitialize(commandLineArgs)
        End Function

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se quiseres aumentar o tempo de splash, clicas no "Application events" e fazes um override ao "OnInitialize" e brincas com a propriedade "MinimumSplashScreenDisplayTime":

Desculpa tar a levantar esta questao, mas tudo acima ja havia feito, por acaso nao sabia como aumentar o tempo. Eu tenho ao lado da "View Applications Events". Quando acrescento o codigo que deste da Error: Statement is not valid in a namespace.

O que pode ser?

Obrigado!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso é porque tens de fazer as tuas alterações dentro da Partial Class MyApplication, dentro do Namespace My.

Namespace My
    Partial Friend Class MyApplication

        Protected Overrides Function OnInitialize(ByVal commandLineArgs As System.Collections.ObjectModel.ReadOnlyCollection(Of String)) As Boolean
            Me.MinimumSplashScreenDisplayTime = 3000
            Return MyBase.OnInitialize(commandLineArgs)
        End Function

    End Class
End Namespace

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

De facto deu certo, mas o form a seguir abre e o Splash fica por detras....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então é porque tens timers ou outras porcarias no splash.

O Splash tem de estar completamente desprovido de código.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então é porque tens timers ou outras porcarias no splash.

O Splash tem de estar completamente desprovido de código.

não concordo contigo ribeiro. a minha aplicação tem código no splash screen e funciona 5 estrelas. o problema aqui é que ele ta a aceder a algum controlo que não lhe é permitido. aquele erro normalmente acontece quando acedes através duma thread a um controlo, etc...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Completamente desprovido de código no que toca a tentativas de simular um splash screen.

Se "chamares" um form antes do timeout do splash, é óbvio que te vai ficar o splash por detrás, como foi descrito.

Para além disso, acho que um splash, na sua verdadeira essência, só devia ter código para ir buscar a versão da assembly e mostrá-la.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora