![]() |
![]() |
|
![]() |
![]() |
|
Registrieren | Hilfe/Forumregeln | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Veteran
![]() Registriert seit: 08.02.2001
Alter: 41
Beiträge: 320
|
![]() Hallo, ich hab ein Problem mit den beiden o.g.
Dem ScriptControl hab ich eine Klasse meines Programms übergeben, wo die wichtigsten Funktionen drinstehen. Eine dieser Funktionen heißt FireEvent, mit der ich die Verbindung zu einer bestimmten Webseite auslöse. Jetzt soll der Code des ScriptControls erst weiter ausgeführt werden, wenn die Verbindung wieder geschlossen wurde. Und da komm ich nicht weiter... hier der code: FireEvent >> Call sEvent Code:
Public Sub sEvent() Dim strURL As String Dim strHost As String Dim strPage As String If txtURL = "" Then msgbox "Bitte geben Sie eine korrekte URL ein." Exit Sub End If strURL = txtURL If Left(strURL, 7) = "http://" Then strURL = Mid(strURL, 8) On Error GoTo ErrHandle p_strHost = Left(strURL, InStr(1, strURL, "/") - 1) p_strPage = Mid(strURL, InStr(1, strURL, "/")) p_lngDownloadedBytes = 0 p_strHttpResponse = "" p_HeaderReceived = False With Winsock .Tag = "open" .Close .LocalPort = 0 .Connect p_strHost, 80 End With ErrHandle: If Err.Number = 5 Then strURL = strURL & "/" Resume 0 End If End Sub Code:
Do Sleep x 'oder doch besser... DoEvents '...?? Loop Until Winsock.Tag <> "open" für infos wäre ich sehr dankbar!
____________________________________
Nein, ich bin nicht die Signatur, ich putz hier nur. http://www.chili-it.at |
![]() |
![]() |
![]() |
#2 |
Veteran
![]() Registriert seit: 10.01.2001
Beiträge: 478
|
![]() Wenn du den Wert in einer Schleife abfragen willst solltest du UNBEDINGT 'do events' verwenden. Nur dieses Statement gibt die Kontrolle ab damit auch andere Teile der Anwendung zum Zug kommen.
Allerdings würde es sich bei einer Klasse doch eigentlich anbieten einen eigenen Event zu programmieren, der ausgelöst wird wenn die Übertragung fertig ist. In der VB-Hilfe findet man die Anleitung um Events zu Klassen hinzuzufügen. (Declaring and Raising Events) Allerdings sollte man diese Möglichkeit nicht zu exzessiv nutzen, da dabei ziemlich viele Ressourcen draufgehen. |
![]() |
![]() |
![]() |
#3 |
Veteran
![]() Registriert seit: 08.02.2001
Alter: 41
Beiträge: 320
|
![]() Hab mal wieder alles ungestrickt. Statt Winsock hab ich das INET-Control verwendet. Das erfüllt alle meine Anforderungungen und ist noch einfacher in der Programmierung. Dort gibt es auch eine Property "StillExecuting", an der sieht man ob INET gerade beschäftigt ist...
mfg Hussl
____________________________________
Nein, ich bin nicht die Signatur, ich putz hier nur. http://www.chili-it.at |
![]() |
![]() |
![]() |
#4 | |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Zitat:
![]() Nicht, das ich es gerade bräuchte, aber es wäre schon interessant zu wissen, wie des geht... |
|
![]() |
![]() |
![]() |
#5 |
Veteran
![]() Registriert seit: 10.01.2001
Beiträge: 478
|
![]() @Hussl: In dem Fall, wie gesagt, unbedingt DoEvents verwenden.
@LLR: Gute Beschreibung im MSDN vorhanden. |
![]() |
![]() |
![]() |
#6 | |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Zitat:
|
|
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|