Italia
Fonte/ Codesnippets

Echte Laufende Threads Zeitanzeige

 
Immer wieder gefragt: Die laufende Zeitanzeige im Titel oder Status oder oder ...

Gefragt speziell wird eigentlich auch nach einer Anzeige, die sich unabhängig vom Hauptprogramm selbständig aktualisiert, auch wenn das Hauptprogramm arbeitet.

Dieses Verhalten ist mit Präkompilern erzielbar, xpse bietet hierzu die Pseudo-Klasse "Thread" [...]  , um basichaften Umgang mit echten Threads herzubilden.

Eine einfache Zeitanzeige im Hauptfenstertitel kann man somit so schön kurz formulieren:
KompilierenMarkierenSeparieren
 {$cleq}
cls
var thread&=thread.start(procaddr(meinThread),0,"")

while 1

    waitinput
    //... programm // break

wend

thread.close(thread&)
end

nProc meinThread

    Parameters thread&,dataLong&,dataString$

    WhileNot thread.message(thread&)=wm_close

        setText(%hWnd,"Mein FensterTitel - ["+time$(0)+"."+substr$(time$(1),1,".")+"]")
        sleep(1000)

    wend

    return 0

endProc

, bzw.
KompilierenMarkierenSeparieren
 {$cleq}
cls
var thread&=thread.start(procaddr(meinThread),0,"")

while 1

    waitinput
    //... programm // break

wend

showWindow(%hWnd,0)
thread.stop(thread&)

while thread.is(thread&)

wend

thread.close(thread&)
end

nProc meinThread

    Parameters thread&,dataLong&,dataString$

    WhileNot thread.message(thread&)=wm_close

        setText(%hWnd,"Mein FensterTitel - ["+time$(0)+"."+substr$(time$(1),1,".")+"]")
        sleep(1000)

    wend

    return 0

endProc

sauberer programmiert wäre, weil der Thread nicht abgewürgt wird sondern gewartet wird, bis dieser korrekt beendet ist.

Eine andere Möglichkeit bietet die SetTimer-Api.

Da es in XProfan die Befehle KillTimer und SetTimer gibt, per ~ auf die Apis zeigen, z.B. ~SetTimer(... :
KompilierenMarkierenSeparieren
 {$cleq}
WindowStyle 520
cls
var zeitAnzeige.timer&=~setTimer(0,0,1000,procAddr(zeitAnzeige.timerProc))

While 1

    WaitInput
    Case %key=2: BREAK

EndWhile

~killTimer(0,zeitAnzeige.timer&)
end

nProc zeitAnzeige.timerProc

    Parameters wnd&,msg&,id&,tme&
    setText(%hWnd,date$(1)+" - "+time$(0)+" Uhr - "+time$(2)+" ["+str$(&getTickCount)+"]")

EndProc


Wer weitere Varianten kennt, hier ist ein guter Platz dafür - liegt in Anwendungstemplates und Codesnippets.

Bedingungen sind kein FastMode (per beste Integration in normale Anwendungen) und keine unsichere Anwendung von ProcAddr, also nichts mit absehbarer Absturzgefahr.

Wer also weitere Beispiele hat oder necessario, bitte posten.

Beispielexen im Anhang.

560 kB
Hochgeladen:15.03.2010
Downloadcounter113
Download
561 kB
Hochgeladen:15.03.2010
Downloadcounter96
Download
 
15.03.2010  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

3.726 Views

Untitledvor 0 min.
Erfurt04.08.2020
AndreasS17.12.2018
Member 389165722.09.2018
iF20.06.2018
Di più...

Themeninformationen

Dieses Thema hat 1 subscriber:

iF (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie