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

Postades av 2004-06-08 14:16:24 - Ola Ljungcrantz, i forum vb.net, Tråden har 3 Kommentarer och lästs av 658 personer

Hur använder jag en Timer för att få For-Next att snurra med intervallet t ex 1 sekund?


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As Integer
For a = 1 To 20
TextBox1.Text = a
Next
End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs Handles TextBox1.TextChanged

End Sub

mvh Ola


Svara

Sv: Timer

Postades av 2004-06-08 14:47:58 - Johan Bovin

du kan nog inte göra som du tänkt dig men du kan gör anåt sånt här:

Imports System
Imports System.Drawing
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms


Public Class TickerForm
    Inherits System.Windows.Forms.Form
    Private timer1 As System.Windows.Forms.Timer
    Private textBox1 As System.Windows.Forms.TextBox
    Private button1 As System.Windows.Forms.Button
    Private components As System.ComponentModel.IContainer
    Private nrTicks As Integer = 0
    Private maxTicks As Integer = 20

    Public Sub New()
        InitializeComponent()
    End Sub

    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    Private Sub InitializeComponent()
        Me.components = New System.ComponentModel.Container
        Me.timer1 = New System.Windows.Forms.Timer(Me.components)
        Me.textBox1 = New System.Windows.Forms.TextBox
        Me.button1 = New System.Windows.Forms.Button
        Me.SuspendLayout()
        Me.timer1.Interval = 1000
        AddHandler Me.timer1.Tick, AddressOf Me.timer1_Tick
        Me.textBox1.Location = New System.Drawing.Point(48, 72)
        Me.textBox1.Name = "textBox1"
        Me.textBox1.Size = New System.Drawing.Size(136, 20)
        Me.textBox1.TabIndex = 0
        Me.textBox1.Text = "textBox1"
        Me.button1.Location = New System.Drawing.Point(104, 168)
        Me.button1.Name = "button1"
        Me.button1.TabIndex = 1
        Me.button1.Text = "button1"
        AddHandler Me.button1.Click, AddressOf Me.button1_Click
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(292, 266)
        Me.Controls.Add(Me.button1)
        Me.Controls.Add(Me.textBox1)
        Me.Name = "TickerForm"
        Me.Text = "TickerForm"
        Me.ResumeLayout(False)
    End Sub

    Private Sub timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs)
        If nrTicks < maxTicks Then
            textBox1.Text = nrTicks.ToString()
            nrTicks += 1
        Else
            timer1.Stop()
        End If
    End Sub

    Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        nrTicks = 0
        maxTicks = 20
        timer1.Start()
    End Sub
End Class


Svara

Sv: Timer

Postades av 2004-06-08 14:58:24 - Oskar Johansson

Det gör du inte ;)

Men (om det inte gör något att programmet fryser under tiden) är att du använder System.Threading.Thread.Sleep(1000) vilket får programmet att somna.

En annan variant är att du använder en global variabel som du sedan räknar upp i eventet på timern.

Ytterligare en variant (ganska snygg eftersom att du varken behöver en global variabel eller fryser programmet) är att du använder lite Win32 api. Deklaration i vb:

Declare Function WaitMessage Lib "user32.dll" () As Int32

WaitMessage fryser den aktuella tråden enda tills ett meddelande kommer
Sedan gör du så att du kör en enkel loop samt en timer som garanterar att tråden får fokus:
<code>
dim d = system.datetime.now
dim s = system.timespan
dim t as new system.timers.timer()
do while true
s = system.datetime.now.subtract(d)
if(s.totalseconds > 1) then
exit do
end if
WaitMessage()
System.Windows.Forms.Application.DoEvents()

(obs: all kod är okompilerad, men jag har gjort väldigt liknande saker förut iaf.)
loop
</code>


Svara

Sv: Timer

Postades av 2004-06-08 15:24:42 - Ola Ljungcrantz

OK. Tack för det. Jag ska testa ikväll.

mvh Ola


Svara

Nyligen

  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino

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 570 887
27 965
271 776
1 009
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