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

Ziwdon

[Visual Basic 2005 Express] Como Fazer Um Delay (ou algo semelhante)?

12 mensagens neste tópico

Boas.

Ja pesquisei em vários sitios mas nao consigo descobrir como posso fazer um delay no Visual basic 2005.

Eu queria fazer algo simples do género:

(Delay 5 segundos)

messagebox("Ola")

Ou seja, antes de aparecer a messagebox, o programa deveria esperar 5 segundos.

Alguem sabe como fazer?

Se alguem me poder ajudar agradecia.

Obrigado e fiquem bem ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

usa o controlo timer... n tenho conhecimento de qualquer código do genero po vb, se calhar até ha, ms costumo usar timers...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas isso é se ele tiver a usar threads, que não é o caso

com o timer dá para fazer isso, mas tambem deve haver um função para fazer isso

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Option Explicit

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

sub teste

  sleep 500

end sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O timer não sei usar...pelo menos para o que pretendo.

Como o Asgorath disse resulta...

Espera 5 segundos

System.Threading.Thread.Sleep(5000)

Como o Delta disse já não.

Dà erro em "Option" e "Sleep".

Option Explicit

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

sub teste

  sleep 500

end sub

Acho que vou fazer como disse o Asgorath. Existem algumas limitações? Já agora...alguém me pode explicar o que são threads? Desconhecia...

Obrigado a todos ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

a declaração em VB.NET é algo diferente...as chamadas a APIs tem que se mudar LONGS por INTEGERS

tem que ser assim :

Public Class Form1

    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer)

    Sub teste()

        Sleep(5000)

        MsgBox("ok")

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        teste()

    End Sub

End Class

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

System.Threading.Thread.Sleep(5000)

afinal assim tambem funciona, é melhor assim do que usar API

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

...alguém me pode explicar o que são threads? Desconhecia...

Imagina que queres fazer um download ao mesmo tempo que estás a ler texto de um ficheiro. Sem threads, o programa ficava empanado no download até este acabar e só depois lia o texto. Com threads, "crias" processadores virtuais que conseguem fazer várias tarefas ao mesmo tempo.

Acho que é isto...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bom post  :P

esclareceu-m mtas duvidas  :)

continuem  ;)

cumps e mtas linhas de codigo :biggrin:

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