Jump to content

[RESOLVIDO]splash screen


rjsma

Recommended Posts

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

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other 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...).

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other 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).

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other 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.

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other 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 👍

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

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other 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!!

Link to comment
Share on other 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

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other 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...

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.