23442
Goto Top

Program wird durch Delay nicht mehr angezeigt

Hallo,

ich habe ein Program, das beim starten auf einem Button einen Countdown ("Starte in 5 Skeunden") im Sekundentakt runterzählt. Nach ablauf des Countdowns passiert dann was, soweit so gut.

Wenn ich jetz aber diese Funktion mit ins Form_Load reinschreibe wird mein Program nicht mehr angezeigt! Lege ich die Funktion auf nen Button muss ich diesen erst anklicken und dann geht es alles ohne Probleme. Gibt es da nen Trick bei oder noch ne andere Sleep/Wait/Delay Funktion (Program muss weiterhin reagieren!), das er mir zuerst alles aufbaut und dann die Funktion startet? Ein DoEvents oder noch ne Wartefunktion vor dem Aufruf meines Countdown hilft leider nicht... Hier ein Schnippsels des Problemcodes:

<b>Private Sub Form_Load()</b>
iStop = 0
txtURL.Text = GetINIString(App.Path & "\conf.ini", "Free-AV", "URL")  
Set dl = New clsDownload

Call cmdStart_Click
<b>End Sub</b>

<b>Private Sub cmdStart_Click()</b>
txtURL.Enabled = False
cmdStart.Enabled = False
iStop = 0
DoEvents

For i = 10 To 1 Step -1
    If iStop = 1 Then
       cmdStart.Enabled = True
       cmdStart.Caption = "Download beginnen"  
      Exit Sub
    End If
cmdStart.Caption = "Start in " & i & " Sekunden"  
Delay 1
Next
cmdStart.Caption = "Starte Download"  
Command1.Enabled = False
tempdat = Environ("temp") & "\"  
dl.Download txtURL.Text, tempdat
<b>End Sub</b>

Content-Key: 64369

Url: https://administrator.de/contentid/64369

Printed on: May 9, 2024 at 11:05 o'clock

Member: bastla
bastla Jul 21, 2007 at 16:08:48 (UTC)
Goto Top
Hallo chicken!

Du könntest "Form_Activate" und einen Schalter (Beispiel hier: http://www.vb-seminar.de/vb_30.htm) verwenden, damit die Aktion nur beim ersten Mal ausgeführt wird.

Grüße
bastla
Member: Desperado
Desperado Jul 22, 2007 at 05:56:42 (UTC)
Goto Top
vb.net ? dann kannst du einen thread erstellen...

in vb6 würde ich mit einem ticker arbeiten. on cmd_start = ticker.start, in dessen tick-ereignis du ab 5 erst deinen download startest und den ticker wieder stoppst....

greetz, desperado
Mitglied: 23442
23442 Jul 22, 2007 at 19:32:41 (UTC)
Goto Top
Alles klar, Problem gelöst!

Hab einen Timer mit einem Intervall von 1000 (1 Sekunde) eingebaut, der erst bei Form_Load aktiviert wird und dann die Funktion aufruft! Danke für die Hilfe