Countdown von 3 Minuten

chrischdell

Grünschnabel
Hallo,
ich brauche einen ganz (kleinen) einfachen Timer, der in einem Textfeld 3 Minuten rückwerts zählt. Der Timer soll in einem Formular stehen, mit dem man per tapirequestmakecall über die Windows Wählhilfe einen fest eingetragene Telefonnummer anrufen kann.
Der Timer und der Anruf werden gleichzeitig durch klicken eines Buttons (anrufen) ausgelöst.
Der Anruf soll solange gehalten werden, bis der Timer abgelaufen ist.
d.h. der Anruf wird für 3 Minuten gehalten.
Die Sache mit dem anrufen klappt schon, aber ich haben keine Ahnung, woher ich einen Timer bekomme, der aus einem kurzen Code besteht, und den Anruf abbrechen kann.
Kann mir bei diesem Problem jemand helfen
Schon mal vielen Danke im vorraus
Gruß Chrischdell
 
Ein Timer selbst ist nicht schwer, es gibt das Timer-Control, du setzt einfach einen Intervall von 1000 ms und zählst in einer Variable auf 180 rauf:
Visual Basic:
Private Sup Timer1_Timer()
 Static iTimer %
 iTimer = iTimer + 1
 If iTimer = 180 Then
  Timer1.Enabled = False
  'Hier noch dein Code für die Anruf
 End If
End Sub
Du kannst alternativ auch die Windows-Funktion Time() benutzen, dir die Aktuelle Zeit merken und 180 Sekunden lang warten:
Visual Basic:
Sub pTimer
 Dim sTime
 sTime = DateAdd("s", 3, Time)
 Do
  DoEvents 'Wichtig, dass das System nicht blockiert wird
 Loop Until sTime <= Time
 'Hier dann dein weiterer Code
End Sub


Der Doc!
 
hi, erst mal dankeschön,
hab das gestern abend auch noch so in etwa herausgefonden... dieser Timer zeigt aber wie meiner auch 180 sekunden an.... wie krig ich diese 180 sekunden jetzt in das Format "hh:mm:ss" ... wenn ich bei mir Format( zeit, "hh:mm:ss:) mache zeigt mir mein Feld 00:00:00 an, aber macht sonst nix mehr
 
Das Formatieren geht über Format(), nachdem ich in der Sub sowieso ein paar Schreibfehler hatte hier die korrigierte Version:
Visual Basic:
Private Sub Timer1_Timer()
 Static iTimer%
 Dim dDate As Date
 iTimer = iTimer + 1
 'Ich zeig hier die Zeit in einem Label an
 Label1.Caption = Format(DateAdd("s", iTimer, dDate), "hh:mm:ss")
 If iTimer = 180 Then
  Timer1.Enabled = False
  'Hier noch dein Code für die Anruf
 End If
End Sub


Der Doc!
 
Super, dieser Timer zählt schon mal im richtigen Format, aber er zählt vorwärts :(
er soll ja von 00:03:00 auf 00:00:00 herunterzählen... ich krigs nur hin , dass er von 24:00:00 runterzählt... und das dauert mir zu lange *g*
 
In dem Fall musst du nur deinen Zähler von der Maximalzahl abziehen, sieht so aus:
Visual Basic:
Private Sub Timer1_Timer()
 Static iTimer%
 Dim dDate As Date
 iTimer = iTimer + 1
 'Ich zeig hier die Zeit in einem Label an
 Label1.Caption = Format(DateAdd("s", 180 - iTimer, dDate), "hh:mm:ss")
 If iTimer = 180 Then
  Timer1.Enabled = False
  'Hier noch dein Code für die Anruf
 End If
End Sub


Der Doc!
 
Zurück