Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Timer i Class

Postades av 2001-04-18 00:51:00 - Frans Englich, i forum visual basic - allmänt, Tråden har 9 Kommentarer och lästs av 590 personer

Hur fixar jag en timer i en klass?

mvh Frans


Svara

Sv: Timer i Class

Postades av 2001-04-18 06:27:00 - Peter Holm

Du skriver koden själv.......

Kolla min kurs http://www.pellesoft.nu/login/articles/other/oo_grund.asp

Längst ner på den sidan hittar du en timer i en klass. Med events och allt.

/lycka till


Svara

Sv: Timer i Class

Postades av 2001-04-18 09:25:00 - Patrik Löwendahl

Du kan även använda ett formulär där du lägger din timer, även i en dll fil.


Svara

Sv: Timer i Class

Postades av 2001-04-18 21:48:00 - Frans Englich

Jag kollade på din kurs, Peter men jag förstår inte en sak. Hur vet loopen att den angivna tiden har gått? Vad är det som "spenderar" tiden? Förstår du vad jag menar? Dessutom så kan ju ingen annan kod exekveras medan loopen körs(kan kanske lösas genom att lägga den i en dll). Kan man inte läga en referens på något vis till en timer och använda den på det viset? Urk, jag känner att jag har lite fel på ett par punkter..

Det är denna subben jag snackar om:

<code>
Public Sub startTimer()
Dim s As Single 'Variabel för timern
ticking = True 'Variabel=true då timern tickar
While ticking = True 'Så länge som timern tickar
s = Timer 'Spar timer-tiden
'Så länge som tiden är mindre än starttid +
'TimerIntervallet så loopa. DoEvents låter
'Systemet exekvera viss kod. Annars verkar det
'Som systemet hänger sig.
While Timer < (s + timerInterval / 1000)
DoEvents
Wend
RaiseEvent Tick 'När tiden gått, trigga händelsen
Wend
End Sub
</code>

mvh Frans


Svara

Sv: Timer i Class

Postades av 2001-04-19 00:09:00 - Andreas Hillqvist

Du kan använda dig av API anropen SetTimer och KillTimer. Nackdelen är man inte kan debuga om man startat timern. Eftersom windows då anropar en funktion som inte finns, vilket får vb att krasha.
Man kan ju lösa detta genom att kapsla koden i en ActiveX Dll.


Svara

Sv: Timer i Class

Postades av 2001-04-19 06:34:00 - Peter Holm

Hej Frans.

Kursen är till för att visa på OOP programmering och inte hur man
bygger en timer på bästa sätt.

Jag ville bara visa på att så här kan man göra om man vill.

Du har delvis rätt att annan kod inte kommer att kunna exekvera.

Men koden i alla events kommer att kunna köras. Fast då exekveringen
sker i endast en tråd så kommer timern halta om exekveringstiden för
en händelse överstiger timer.intervall

Men man kan ju inte få allt.

Jag är hittils den enda som givit ett konkret förslag till lösning. Ni andra
har bara sagt att si eller så kan man göra, men inte viast hur.

/peterh


Svara

Sv: Timer i Class

Postades av 2001-04-19 11:03:00 - Patrik Löwendahl

Du kan lägga nästan all kod i en klass modul.. men sista funktionen MÅTE ligga i en Bas modul, annars kommer inte koden att funka..

Sedan tror jag iofs på att man lär sig mer om man får en teknik förklarad för sig och får lösa problemet själv istället för att få en lösning serverad..
<code>

'// Callback Module
'// Created : 000705 - Patrik Löwendahl (Cornerstone Advanced Consulting)
'// Last rev: 010419 - Patrik Löwendahl (Cornerstone Advanced Consulting)
'// Bugs :
'// Notes :

Option Explicit

'// Callback timer api's
Private Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long

Dim cbID As Long '// Callback ID (handle)

'// Startup
'// Timeout - my god..

Sub StartCallBack(ByVal Timeout As Long)
'// Don't start the timer if already running.
If cbID = 0 Then
'// start callback timer
cbID = SetTimer(0, 0, Timeout, AddressOf CheckEvent_CBK)
End If
End Sub

'// shutdown
Sub StopCallback()
'// Don't stop the timer if it isn't running.
If cbID Then
'// safe release of the timer object...
KillTimer 0, cbID
cbID = 0
End If
End Sub

'// Changed? This function need to be in a Basic module otherwise the code will fail
Sub CheckEvent_CBK(ByVal hWnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal SysTime As Long)
'// Look for the event, play it safe to not get any errors
MsgBox "tjohoo"
End Sub

</code>



Svara

Sv: Timer i Class

Postades av 2001-04-19 12:29:00 - Andreas Hillqvist

Du bör nämna att vb krashar om timer är startad och mån går in i Break mode. Efter som Windows anropar en funktion som inte längre finns i minnet...

För att undvika detta kan man kapsla koden i en ActiveX Dll.


Svara

Sv: Timer i Class

Postades av 2001-04-19 13:57:00 - Frans Englich

Tack för alla svar, det verkar so om det inte finns någon perfekt lösning på problemet överhuvudtaget.

Jag bara undrar...varför kan man inte lägga en referens till timerobjektet i klassen? Vad gör att man bara kan använda timern i ett formulär? Jag försöker inte hitta en lösning till mitt proiblem, jag vill bara förstå varför inte en referens är en lösnning :)

mvh Frans


Svara

Sv: Timer i Class

Postades av 2001-04-19 15:00:00 - Patrik Löwendahl

därför att timern är en activex controll inte dll ...

OM du tar koden jag gav dig och kompilerar den till en dll kan du sätta referens till den och använda den som en timer..


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 619
27 953
271 709
5 759
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies