VBasic Timer na oduzimanje

poruka: 9
|
čitano: 1.069
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
14 godina
neaktivan
offline
VBasic Timer na oduzimanje

Dakle iz baze podataka procitam vrijednost u textbox ona je u formatu  00:15:00  , postavim timer koji kuca svake sekunde i dakle sa trenutne vrijednosti 00:15:00 trebam oduzimati po jednu sekundu tako do nule kada timer stane i izbaci poruku "Vrijeme isteklo " ?

 

 

Pokusavao sam kao

 

  Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        TextBox1.Text = Val(TextBox1.Text) - 1
        If Val(TextBox1.Text) <= 0 Then
            MsgBox(" Vrijeme isteklo ")
        End If
    End Sub

 

Da budem iskren nisam ni ocekivao da ce proraditi .

 

Edit: Dakle svoje vrijeme iz baze citam u formatu   00:15:00   Obratite paznju

Prva druga peta ;) ;)
Poruka je uređivana zadnji put pet 30.5.2014 11:42 (aneLL).
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
VBasic Timer na oduzimanje

Public Class Form1

    Public val As Integer = 15
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Timer1.Enabled = True
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        val -= 1
        Label1.Text = val
    End Sub
End Class

 

Ugrubo je to to... samo umjesto obicnog broja uvrstis vrijeme.

Poruka je uređivana zadnji put čet 29.5.2014 15:17 (Abomb).
Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Re: VBasic Timer na oduzimanje
Abomb kaže...

Public Class Form1

    Public val As Integer = 15
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Timer1.Enabled = True
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        val -= 1
        Label1.Text = val
    End Sub
End Class

 

Ugrubo je to to... samo umjesto obicnog broja uvrstis vrijeme.

Da ali ono oduzima od 15, 14 , 13 ,12 meni treba da oduzima od vremena sekunde minute   00:15:08

pa onda 00:15:07

00:15:06

00:15:04

00:15:03

...

 

00:13:25

00:13:24

Prva druga peta ;) ;)
17 godina
offline
VBasic Timer na oduzimanje

Ja sam imao određenu varijablu brojSekundi u cjelobrojnom iznosu koju sam smanjivao timerom, a prikaz u labelu sam formatirao ovako. Dakle, postavio sam timer na jednu sekundu, i na njega stavio ovaj event handler.

Npr:

int brojSekundi = 15;

prikaz u labelu

 

0:14

0:13

0:12

 

 

 private void timer_Elapsed(object source, ElapsedEventArgs e)
        {
            label.Text = string.Format("{0} : {1}{2}", --brojSekundi / 60, brojSekundi % 60 / 10, brojSekundi % 60 % 10);
            if (brojSekundi == 0)
            {
                timer.Enabled = false;
                isTimerTrue = false;
            }

Poruka je uređivana zadnji put čet 29.5.2014 19:04 (Floki).
 
0 0 hvala 1
14 godina
neaktivan
offline
Re: VBasic Timer na oduzimanje
Floki kaže...

Ja sam imao određenu varijablu brojSekundi u cjelobrojnom iznosu koju sam smanjivao timerom, a prikaz u labelu sam formatirao ovako. Dakle, postavio sam timer na jednu sekundu, i na njega stavio ovaj event handler.

Npr:

int brojSekundi = 15;

prikaz u labelu

 

0:14

0:13

0:12

 

 

 private void timer_Elapsed(object source, ElapsedEventArgs e)
        {
            label.Text = string.Format("{0} : {1}{2}", --brojSekundi / 60, brojSekundi % 60 / 10, brojSekundi % 60 % 10);
            if (brojSekundi == 0)
            {
                timer.Enabled = false;
                isTimerTrue = false;
            }

Kad sam ispravio kod i odradio kako si naveo nisam dobio rijesenje :(

 

Dakle jos uvjek trazim rijesenje za svoj problem

Prva druga peta ;) ;)
16 godina
neaktivan
offline
VBasic Timer na oduzimanje

preporucam da se upoznas sa mojim dobrim prijateljom Google-om {#}

Meni je u roku od 25 sekundi izbacio ovo:

http://en.allexperts.com/q/Visual-Basic-1048/Timer-Countdown.htm

Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Re: VBasic Timer na oduzimanje
Abomb kaže...

preporucam da se upoznas sa mojim dobrim prijateljom Google-om {#}

Meni je u roku od 25 sekundi izbacio ovo:

http://en.allexperts.com/q/Visual-Basic-1048/Timer-Countdown.htm

Stvarno ne znam koristiti google pocetnik sam al zasto sljedeci put ne pokusas kod koji ti tvoj "prijatelj" pokaze

 

Moj basic kaze ovako

[img]http://pokit.org/get/img/139f7de65d3ecd9c9312a1d936144a9e.jpg[/img]

 

u prevodu

Operator * is not defined for types Date and Integer.

 

@Topic

 

Vrijeme procitam iz baze podataka koristeci

 

      textbox1.text= myData.Item(2)
        textbox2.text = "Dobrodosli " & myData.Item(0) & ""

 

potrebno mi je da vrijeme koje dobio u textbox1 pocne otkucavati do 00:00  primjer na slici

http://pokit.org/get/img/b9e0a76f247e8172195e3a8f09eab496.jpg

Prva druga peta ;) ;)
Poruka je uređivana zadnji put pet 30.5.2014 19:19 (aneLL).
14 godina
neaktivan
offline
VBasic Timer na oduzimanje

Jos uvjek u potrazi za rijesenjem

Prva druga peta ;) ;)
Moj PC  
0 0 hvala 0
17 godina
offline
VBasic Timer na oduzimanje

Ne znam to napraviti u VB, ali znam u C#, pa ako će pomoći koncept.

Pošto iz baze vučemo stringove u timespan formatu, konvertiramo string u timespan varijablu duration. Drugu varijablu timespan second inicijaliziramo na jednu sekundu.

Inicijaliziramo timer i postavimo ga na jednu sekundu, na njega pozovemo event handler u kojem dekrementiramo varijablu duration za varijablu second, kad varijabla duration postane manja od varijable second zaustavljamo timer jer je na nuli. Naravno, za svaki poziv eventa, text u labeli se smanjuje za jednu sekundu. A ovaj metod SetText mi služi zato jer ne mogu iz threada handlera namjestiti text na labeli, nego pomoću invoke metoda delegatom namjestim text u threadu gdje se izvodi label kontrola.

 

Sada je string koji se pojavljuje u labeli:

00:15:00

00:14:59

Da bi se u labeli dobio string tipa

15:00

14:59

mora se upotrijebiti metod string format

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Timers;

namespace Timer
{
    public partial class Form1 : Form
    {
        System.Timers.Timer timer;
        TimeSpan duration, second;
        Label label;
        delegate void SetTextCallBack(string text);
        public Form1()
        {
            InitializeComponent();
            SetTimeSpan();
        }
        private void SetTimeSpan()
        {
            label = new Label();
            this.Controls.Add(label);
            string t = "00:15:00";
            TimeSpan.TryParse(t, out duration);
            SetText(duration.ToString());
            second = new TimeSpan(0, 0, 1);
            timer = new System.Timers.Timer(1000);
            timer.Elapsed += timer_Elapsed;
            timer.Enabled = true;
           
        }
        void timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            SetText((duration -= second).ToString());
            if (duration < second) timer.Enabled = false;
        }
        private void SetText(string text)
        {
            if(this.label.InvokeRequired)
            {
                SetTextCallBack a = new SetTextCallBack(SetText);
                this.Invoke(a, new object[] { text });
            }
            else
            {
                label.Text = text;
            }
        }
    }
}

Poruka je uređivana zadnji put ned 1.6.2014 21:35 (Floki).
 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice