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

SLIFE

[Resolvido] Utilização de Timer

11 mensagens neste tópico

Tenho este codigo:

Public Function Destinoactivo(ByVal hostnameOuEndereco As String)
        Dim responde As Boolean = False
        Try
            responde = My.Computer.Network.IsAvailable AndAlso _
                             My.Computer.Network.Ping(hostnameOuEndereco )

        Catch pingException As System.Net.NetworkInformation.PingException
        Catch genericNetworkException As System.Net.NetworkInformation.NetworkInformationException

            ' Falha em silencio e returna falso
        End Try
        Return responde
        StatusNet.Text = responde
    End Function

Mas Como chamo dentro de um timer esta função? Não é colocar o nome da função e no fim ( ).

No VB 6 era assim se nao estou em erro!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nova questão, novo tópico! Vamos manter isto organizado  :D

Só tens de colocar um timer no ter form, definir o interval (tempo que vai executar em milisegundos) e no evento timer.tick colocas o código que vai chamar a função. Por exemplo um interval de 10000 = 1 segundo. Depois só tens de dizer que o timer está enabled para iniciar a execução ou, através do código, Timer1.Start()

No entanto essa função também não está correcta! Uma função retorna sempre algo e se queres apenas verificar se consegues pingar um endereço podes usar assim:

     Public Function Destinoactivo(ByVal hostnameOuEndereco As String) As Boolean
       Dim responde As Boolean = False
       Try
           responde = My.Computer.Network.IsAvailable AndAlso _
                            My.Computer.Network.Ping(hostnameOuEndereco )

       Catch ex As Exception
            ' Falha em silencio e returna falso
       End Try
       StatusNet.Text = responde
       Return responde
   End Function

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nova questão, novo tópico! Vamos manter isto organizado  :D

Só tens de colocar um timer no ter form, definir o interval (tempo que vai executar em milisegundos) e no evento timer.tick colocas o código que vai chamar a função. Por exemplo um interval de 10000 = 1 segundo. Depois só tens de dizer que o timer está enabled para iniciar a execução ou, através do código, Timer1.Start()

No entanto essa função também não está correcta! Uma função retorna sempre algo e se queres apenas verificar se consegues pingar um endereço podes usar assim:

     Public Function Destinoactivo(ByVal hostnameOuEndereco As String) As Boolean
       Dim responde As Boolean = False
       Try
           responde = My.Computer.Network.IsAvailable AndAlso _
                            My.Computer.Network.Ping(hostnameOuEndereco )

       Catch ex As Exception
            ' Falha em silencio e returna falso
       End Try
       StatusNet.Text = responde
       Return responde
   End Function

Desculpa ter feito off-topic!

Mas o problema é como chamo a função dentro do timer!

Eu já tenho o timer!

Agora queria chamar a função!

Jpaulino, Por acaso nao tens na tua pagina, nada sobre como elaborar um interface e o xml para o Ficheiro Saft??

Ia ser muito util ter uma ajuda nesse sentido!

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Utiliza o evento tick do timer e chamas ai a tua função .. espero ter ajudado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se já tens o timer, dentro do evento Tick chamas a tua função:

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
       ' código
   End Sub

Por exemplo: If Destinoactivo("endereço") Then ...

Jpaulino, Por acaso nao tens na tua pagina, nada sobre como elaborar um interface e o xml para o Ficheiro Saft??

Ia ser muito util ter uma ajuda nesse sentido!

Não, não tenho nada. Cria um novo tópico pode ser que alguem trabalhe com esses ficheiro e possa-te ajudar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
       ' código
   End Sub

Por exemplo: If Destinoactivo("endereço") Then ...

Mas o Problema que estou a ter é esse mesmo, como chamo a função?

A função está criada com o nome DestinoActivo. Com faço? No topo do timer coloco:

Destinoactivo()

Mas dá erro, diz

Erro 1 Argumento não especificado para o parâmetro 'hostnameOuadereco' de 'Public Function DestinoActivo(hostnameOuadereco As String) As Object'.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então mas é como te mostrei ... dentro do evento Tick() tens de colocar algo como:

If Destinoactivo("endereço") Then

    ' fazes alguma coisa

End If

Não entendo qual é a tua ideia, mas tu na função dizes que tens de indicar um parametro e não está a fazer.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então mas é como te mostrei ... dentro do evento Tick() tens de colocar algo como:

If Destinoactivo("endereço") Then

    ' fazes alguma coisa

End If

Não entendo qual é a tua ideia, mas tu na função dizes que tens de indicar um parametro e não está a fazer.

Sim tens razão!

Não estava a chegar lá!

Porque antigamente fazia por exemplo uma função no VB6, por exemplo:

Desactivar botões!

Quando queria desactivar os botões chamava a função tipo Desactivabotoes()

E o programa ao pressionar esse botão ia fazer o que estava escrito na função! Neste caso desactivar os botoes!

Por esse motivo não estava a entender como iria fazer aqui com esta função!

Eu estava a fazer o mesmo que fazia no VB6, colocava só o nome da função e estava á espera que o programa passasse por ela!

Isto mudou do Vb6 para o VB2008?

Ou se criar uma função para desactivar botões como disse acima, basta só a chamar?

desactivabotoes ()????

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Existem duas coisas diferentes que no VB6 trabalhavam da mesma forma: funções e subrotinas

A diferenças entre uma e outra é que as subrotinas ou procedimentos não retornam/devolvem nenhum valor. Por isso se queres chamar um código que não retorne nenhum resultado usas um Sub, se queres executar determinado código que retorne algo, usas uma Function().

Ex:

    Private Sub testSub(ByVal valor1 As Integer, ByVal valor2 As Integer)
        MessageBox.Show(valor1 * valor2)
    End Sub

    Private Function testFunction(ByVal valor1 As Integer, ByVal valor2 As Integer) As Integer
        Return valor1 * valor2
    End Function


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        ' Chama a subrotina "testSub" que mostra um valor
        testSub(5, 6)

        ' Chama a função "testFunction" que devolve um valor
        ' que irá depois ser mostrado na MessageBox
        MessageBox.Show(testFunction(5, 6))

    End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Por falta de informação do utilizador e por existirem respostas aceitáveis à pergunta efectuada, esta questão foi marcada como resolvida.

Jorge Paulino

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