Wie kann man bitte regelmäßig mit einem Timer-event eine Proc aufrufen ?

  • Wie kann man bitte regelmäßig mit einem Timer-event diese Proc aufrufen ?
    Danke. Gruss


    [ code]
    while 0
    ......
    ......
    endwhile
    end


    proc dw.get
    parameters url$, ausgabe$


    downloadfile(url$)
    casenot %hWnd : cls


    while %Loading
    waitinput 333
    settext %hWnd,"Lade Daten: "+str$(&getTickCount)
    endwhile


    ausgabe$= dw.get("http://192.168.2.102/?pin=0OFF")
    print ausgabe$
    endproc
    [/code]

  • Mit SetTimer kannst Du einen Timer im Millisekunden einstellen. Der liefert dann jeweils nach Ablauf der Zeit das Ereignis %wmTimer.




    Gruß Volkmar

  • Danke.
    Aber die Proc wird nicht angesprungen.


    ---------------------------
    {$cleq}


    SetTimer 200


    print "test"
    while 1
    waitinput
    Case %wmTimer : TimerProc
    endwhile


    killtimer
    end


    proc TimerProc
    parameters url$
    url$="http://192.168.2.102/?pin=0OFF"
    downloadfile(url$)
    casenot %hWnd : cls


    while %Loading
    waitinput 333
    endwhile


    print "daten= "+$Download
    endproc
    -----------------------------------------


    Hiermit läuft die Proc :
    while 1
    sleep 200
    TimerProc
    endwhile

  • Ein Timer kann nur in einem Fenster verwendet werden. Baue nicht ein CLS mitten in den Code ein sondern erzeuge ein Fenster, bevor Du SetTimer verwendest.
    Und was Parameters in der TimerProc soll, verstehe ich nicht. Lies mal die Hilfe zur Bedeutung.


    Gruß Volkmar

  • Wie bringt man den Code hier so rein wie bei dir ? [code] funktioniert nicht.


    So jetzt zum Ergebnis.


    Das Progamm funktioniert :
    -------------------------------------------
    {$cleq}


    declare url$
    SetTimer 200


    Window 20,20-600,600
    Cls $ffffff


    while 1
    waitinput
    TimerProc
    endwhile


    killtimer
    end


    proc TimerProc
    url$="http://192.168.2.102/?pin=0OFF"


    downloadfile(url$)
    casenot %hWnd : cls


    while %Loading
    waitinput 333
    endwhile


    print "daten= "+$Download
    endproc
    ----------------------------------------------



    damit nicht :
    ------------------------------------------------
    while 1
    waitinput
    Case %wmTimer : TimerProc
    endwhile
    ------------------------------------------------


    Danke.
    Gruss

    Einmal editiert, zuletzt von funkheld ()

  • Das Fenster vor SetTimer erzeugen.
    Code kannst Du hier reinbringen, indem Du oberhalb des Eingabebereiches auf Code, dargestellt durch </> klickst. Dann öffnet sich ein neues Fenster, dort kannst Du den Code per Copy And Paste einfügen und dann auf Speichern klicken. Einfach mal durchprobieren, mit Erweiterte Antwort hast Du die Möglichkeit, eine Vorschau des geschriebenen Beitrages nutzen. Es wird dabei noch nichts abgeschickt, immer erst bei Klick auf Absenden.


    Gruß Volkmar

  • Danke für die Hilfe.


    Bei "declare string url" wird in der Proc gemotzt, das kein String definiert wurde.
    warum? : "url="http://192.168.2.102/?pin=0OFF"


    Danke

    Denke mal, dass hier der Fehler ist
    VAR url$="http://192.168.2.102/?pin=0OFF"

  • In neueren Profan-Versionen gibt es 2 Schreibweisen


    Alte Form

    Code
    Declare Url$
    Url$ = "http://192.168.2.102/?pin=0OFF"


    oder neue Form ohne Postfix

    Code
    Declare String Url
    Url = "http://192.168.2.102/?pin=0OFF"

    Beides sind unterschiedliche Variablen! Wurde die klassische Form der Declaration verwendet, gibt es nur die Variable Url$, nicht aber Url. Wurde die zweite neuere Form der Declaration verwendet, dann gibt es keine Variable Url$ sondern nur Url, die dann eine Stringvariable bezeichnet.


    Für beide Formen kann auch zur Verkürzung auf eine Zeile Var verwendet werden.


    Code
    Var Url$ = "http://192.168.2.102/?pin=0OFF"
    Var String Url = "http://192.168.2.102/?pin=0OFF"


    Gruß Volkmar

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!