Avatar billede optical Nybegynder
15. august 2004 - 00:08 Der er 24 kommentarer og
1 løsning

timer i dll fil

hvordan laver man en timer i en dll - eller - det jeg er ude efter - er en handling der skal ske med et interval på 500

hvordan gøres dette?
Avatar billede optical Nybegynder
15. august 2004 - 00:16 #1
og den skal selvfølgelig også kunne stoppes igen :)
Avatar billede optical Nybegynder
15. august 2004 - 00:41 #2
håber på et svar når jeg står op i morgen
zZZzzZZZZzzZZZzzzZZZ :)
Avatar billede snepnet Nybegynder
15. august 2004 - 00:56 #3
Du kan da lige få et udgangspunkt her :

Public Class TimerSample
timer As Timer

Public Sub New()
  timer = New Timer (500)
  AddHandler timer.Elapsed, AddressOf timer_Elapsed
  timer.Start()
End Sub

Public Sub StartTimer()
  timer.Start()
End Sub

Public Sub StopTimer()
  timer.Stop()
End Sub

Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
  // her kan du så gøre et eller andet :o)
End Sub
End Class
Avatar billede optical Nybegynder
17. august 2004 - 16:33 #4
ohh undskyld jeg først svarer nu - jeg kan ikke få koden til at virke :S
Avatar billede snepnet Nybegynder
17. august 2004 - 18:09 #5
bare iorden... hvad er det der ikke virker ?
Avatar billede optical Nybegynder
17. august 2004 - 20:39 #6
vi skal måske lige understrege jeg ikke er pro :P

den siger, reference to a non-shared member req an object reference
Avatar billede optical Nybegynder
17. august 2004 - 20:40 #7
alle steder hvor der står timer
Avatar billede optical Nybegynder
17. august 2004 - 20:48 #8
jeg ved ikke om du kan bruge dette til noget:S

http://www.t0b1a5.person.dk/SS.JPG
Avatar billede snepnet Nybegynder
17. august 2004 - 21:01 #9
Timer ligger i namespace System.Timers, så du skal sørge for at skrive det her :
imports System.Timers øverst i din fil.
Avatar billede snepnet Nybegynder
17. august 2004 - 21:04 #10
Og så skal du nok lige skrive Dim i første linie i klassen, så det hele bliver sådan her :

Imports System.Timers

Public Class TimerSample
    Dim timer As Timer

    Public Sub New()
        timer = New Timer(500)
        AddHandler timer.Elapsed, AddressOf timer_Elapsed
        timer.Start()
    End Sub

    Public Sub StartTimer()
        timer.Start()
    End Sub

    Public Sub StopTimer()
        timer.Stop()
    End Sub

    Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)

    End Sub
End Class
Avatar billede optical Nybegynder
17. august 2004 - 21:05 #11
det eneste der sker, er at der ikke længere er fejl ved:
AddressOf timer_Elapsed
men stadig ved resten
Avatar billede snepnet Nybegynder
17. august 2004 - 21:08 #12
Nu er jeg ikke ligefrem VB'er men det kompilerer uden problemer her.
Prøv at kopier hele din fil herud så jeg kan se den.

Mvh
Avatar billede snepnet Nybegynder
17. august 2004 - 21:09 #13
du har husket den der Imports System.Timers ikke ?
Avatar billede optical Nybegynder
17. august 2004 - 21:13 #14
jeg har prøvet at få din kode til, at virke for sig selv - men det virker ikke:S

Imports System, System.timers

Public Class Form1
    Inherits System.Windows.Forms.Form

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

    End Sub

public Class TimerSample
timer As Timer

        Public Sub New()
            Timer = New Timer(500)
            AddHandler Timer.Elapsed, AddressOf timer_Elapsed
            Timer.Start()
        End Sub
Public Sub StartTimer()
            Timer.Start()
        End Sub

        Public Sub StopTimer()
            Timer.Stop()
        End Sub

        Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)

        End Sub
    End Class
End Class
Avatar billede optical Nybegynder
17. august 2004 - 21:14 #15
how - så ikke dit indlæg ovenover
Avatar billede arne_v Ekspert
17. august 2004 - 21:15 #16
Lille indskudt bemærkning:

en variabel ved navn timer af en type Timer i en case insensitivt sprog
øger ikke ligefrem forståeligheden af koden
Avatar billede snepnet Nybegynder
17. august 2004 - 21:15 #17
Du har stadig ikke en Dim her :

Dim timer As Timer 

Denne klasse bygger fint, hvis du har angivet dine imports :
(det var den samme som jeg postede sidst)

Public Class TimerSample
    Dim timer As Timer

    Public Sub New()
        timer = New Timer(500)
        AddHandler timer.Elapsed, AddressOf timer_Elapsed
        timer.Start()
    End Sub

    Public Sub StartTimer()
        timer.Start()
    End Sub

    Public Sub StopTimer()
        timer.Stop()
    End Sub

    Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)

    End Sub
End Class
Avatar billede optical Nybegynder
17. august 2004 - 21:20 #18
'hvorfor kalder jeg ikke console.writeline ?

Imports System, System.Timers
Module Module1
    Dim Tobias As New TimerSample
    Sub Main()
        Tobias.StartTimer()
    End Sub
    Public Class TimerSample
        Dim timer As timer
        Public Sub New()
            timer = New Timer(500)
            AddHandler timer.Elapsed, AddressOf timer_Elapsed
            timer.Start()
        End Sub

        Public Sub StartTimer()
            timer.Start()
        End Sub

        Public Sub StopTimer()
            timer.Stop()
        End Sub

        Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
            Console.WriteLine("test")
        End Sub
    End Class
End Module
Avatar billede snepnet Nybegynder
17. august 2004 - 21:21 #19
Næh - det kan du have ret i arne. Det tænkte jeg ikke lige over (skriver aldrig VB, og hvis jeg endelig skulle skrive en linie fikser VS det jo med fin casing ;o)

Det må du undskylde optical - det var ikke så velovervejet, såhh.... vi tager lige en tur til :o)

Public Class TimerSample
    Dim someTimer As Timer

    Public Sub New()
        someTimer = New Timer(500)
        AddHandler someTimer.Elapsed, AddressOf someTimer_Elapsed
        someTimer.Start()
    End Sub

    Public Sub StartTimer()
        someTimer.Start()
    End Sub

    Public Sub StopTimer()
        someTimer.Stop()
    End Sub

    Private Sub someTimer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)

    End Sub
End Class
Avatar billede optical Nybegynder
17. august 2004 - 21:29 #20
jeg kan stadig ikke få den til, at kalde den kode jeg skriver i someTimer_Elapsed

Imports System, System.Timers
Module module1
    Dim x As New TimerSample
    Sub main()
        x.StartTimer()
    End Sub
    Public Class TimerSample
        Dim someTimer As Timer

        Public Sub New()
            someTimer = New Timer(500)
            AddHandler someTimer.Elapsed, AddressOf someTimer_Elapsed
            someTimer.Start()
        End Sub

        Public Sub StartTimer()
            someTimer.Start()
        End Sub

        Public Sub StopTimer()
            someTimer.Stop()
        End Sub

        Private Sub someTimer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
            Console.WriteLine("hej")
        End Sub
    End Class
End Module
Avatar billede snepnet Nybegynder
17. august 2004 - 21:35 #21
Altså... det krydser jo helt vildt - jeg så ikke dit sidste spørgsmål (det med konsollen).

Programmet afslutter inden den når at skrive ud... Skriv en
Console.Read()
Efter du har startet timeren - altså denne linie :
x.StartTimer()

Mvh
Avatar billede snepnet Nybegynder
17. august 2004 - 21:35 #22
Så venter prompten på input fra dig inden programmet afslutter.
Avatar billede optical Nybegynder
17. august 2004 - 21:37 #23
muhauhauhauuha!!!!!! :D:D:D:D:D:D:D:D:D:D:D:D:D
mange tak Snepnet :D:D:D smidder du lige et svar?
Avatar billede snepnet Nybegynder
17. august 2004 - 21:46 #24
Et svar skal du få - fedt at du fik det til at spille :o)
Mvh
Avatar billede optical Nybegynder
17. august 2004 - 21:49 #25
mange tak igen Snepnet :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester