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-ID: 64369

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

Ausgedruckt am: 22.11.2024 um 08:11 Uhr

bastla
bastla 21.07.2007 um 18:08:48 Uhr
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
Desperado
Desperado 22.07.2007 um 07:56:42 Uhr
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
23442
23442 22.07.2007 um 21:32:41 Uhr
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