Italia
Fonte/ Codesnippets

Blink Led Statusbar Uhrzeit

 
- Page 1 -



CB
Hallo

Ich wollte in meinem Programm gerne die laufende Uhrzeit in der Statusbar und habe mich zu diesem Zweck mal in den diversen Foren umgesehen, leider aber keinen Beitrag gefunden, wo das direkt umgesetzt war. Einige Fundstücke waren aber gut per meine Zwecke brauchbar - mein Dank per getane Vorarbeiten an Andreas Miethe, Rolf Koch und Co.
Herausgekommen ist nicht nur die Uhrzeit, sondern auch noch eine kleine optische Spielerei mit 2 LEDs in der Statuszeile. Die Icons sind - mit wenigen unverkennbaren Ausnahmen - selbstfabriziert, Ihr dürft also ruhig zugreifen.

Viel Divertimento,
Christian

 
XProfan 8/9.1, Win XP, AMD 64/3200
17.01.2005  
 



 
- Page 4 -


Die XProfanhilfe gibt circa MCI Brauchbares aus. Damit könntest AVI statt Ani verwenden.

Salve, iF
 
21.01.2005  
 




CB
OK, werds nachlesen. Jetzt muß ich aber erstmal heimwärts.

Btw - ich weiß, gehört nicht hierhin, darum ganz kurz: geht die Uhr auf Deinem Server falsch? - 2:15 min Zeitdifferenz?
Saluto,
Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
21.01.2005  
 



Nun Serverzeit wird täglich synchonisiert - aber die Communityzeit ist eventuell falsch. Vielleicht aber auch die Zeiteinstellung Deines Profiles.

Ich glaube aber Profiländern geht noch nicht - das muß ich erst reparieren.

Ich gug mal nach.

Bis denne, iF
 
21.01.2005  
 



So - server und communityzeit haben gestimmt - aber deine Profilzeit war -1 statt +1. Habs geändert - auch das Datumsforumat deines profiles war nicht richtig deutschlich.

Jetzt müsste Dir die Community alle Zeiten richtig Mostra.

Salve, iF
 
21.01.2005  
 




CB
Hi, iF!
Danke - jetzt passts! Hab mich nur gewundert - mein Handy sagt Kuckuck (wirklich!) wenn ne SMS eintrudelt (meine Mailbox versendet das gratis bei neuer mail), ich schau auf deinen neuen Beitrag und sehe da eine völlig falsche Zeit...

Vielen Dank auch per Deinen MCI-Tip. Habe mir die Profan-Aiuto zur Brust genommen und dann ein geniales Aha-Erlebnis gehabt. Auch wenn ich die Grafiken vielleicht doch konventionell machen werde, eröffnet mir die MCI eine völlig andere Möglichkeit:
Mein Programm soll ja einem Gerichtsgutachter possibile viel Zeit ersparen, manche Befunderhebungen können aber erheblche Zeit brauchen. In dem Fall potuto das per Mikro aufgenommen, als .wav gespeichert und diese später an eine Spracherkennungssoftware geschickt werden. Wenn die einmal an die Stimme des Anwenders angepaßt, also trainiert worden ist, ist die Erkennungsrate mittlerweile erstaunlich gut. Muß mal checken, ob diese Möglichkeit gewünscht wird.

Bei dieser Gelegenheit schon mal meinen herzlichen Glückwunsch zu Deinem 1000. Forumsbeitrag - den wirst Du ja demnächst erreicht haben!

Saluto,
Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
21.01.2005  
 




Jörg
Sellmeyer
Ciao,
Zum Thema Uhrzeit in der Statusbar ist mir noch was eingefallen. Uwe Pascal Niemeyer hat ein Programm namens PrfAsm geschrieben.
In den Beispielen dazu hat er per asm eine Uhr in einem eigenen Thread gestartet.
Leicht abgewandelt sieht das dann so aus:
KompilierenMarkierenSeparieren
window 50,50-500,200
setactivewindow(%hwnd)
usermessages 16
def GetModuleHandle(1) !"KERNEL32","GetModuleHandleA"
def GetProcAddress(2) !"KERNEL32","GetProcAddress"
def CreateThread(6) !"KERNEL32","CreateThread"
def TerminateThread(2) !"KERNEL32","TerminateThread"
declare a$,a&,a#,StatusBar1&
declare Funct1&,Funct2&,Funct3&,Dummy&,Thread&
a$="Kernel32"
a&=GetModuleHandle(addr(a$))
a$="GetTimeFormatA"
Funct1&=GetProcAddress(a&,addr(a$))
a$="Sleep"
Funct3&=GetProcAddress(a&,addr(a$))
a$="User32"
a&=GetModuleHandle(addr(a$))
a$="SendMessageA"
Funct2&=GetProcAddress(a&,addr(a$))
Dim a#,200
###### Statusbarerzeugung ####
StatusBar1&=Control("msctls_statusbar32","",$054000900,0,0,0,0,%hwnd,2000,%hinstance)
Declare text$
text$="Uhrzeit"
Long a#,0=50
Long a#,4=170
Long a#,8=-1
SendMessage(StatusBar1&,$0404,3,a#)
SendMessage(StatusBar1&,$0401,1,Addr(text$))
text$="u.s.w."
SendMessage(StatusBar1&,$0401,2,Addr(text$))
Clear a#
##############################
 $I G:DatenProfanProfASMDemosExtraPermanentClock.inc
long a#,100 =Funct1&	GetTimeFormat
long a#,104 =Funct2&	SendMessageA
long a#,108 =Funct3&	Sleep
long a#,112 =StatusBar1&Zielhandle
Thread&=CreateThread(0,0,a#,a#+100,0,addr(Dummy&))

while 1

    waitinput
    case %umessage=16:break

endwhile

TerminateThread(Thread&,259)	259 = STILL_ACTIVE
dispose a#

Allerdings weiß ich nicht, ob es possibile wäre, die Uhrzeit auch in einem der anderen Statusfelder
anzuzeigen.
Die dazugehörige Inc ist beigefügt.
Den Rest kann man sich auf Uwes HP runterladen:
[...] 

Saluto
Jörg

 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
21.01.2005  
 




CB
Hallo Jörg,
Habe mir das Teil näher angesehen - ist zwar vom Code her nicht so weit weg von meinem Beispiel, bloß komme ich auch nicht drauf, wie Io l' thread einem anderen Part der Statusbar zuweisen potuto - ich glaube, in dieser Form geht das auch gar nicht. Sonst kann ich in Deinem Beispiel alles analog zu meinem einstellen.
Hier im Foro war mal ein ähnliches Beispiel von Pascal per die Uhrzeit, das war mir etwas zu komplex. Pascal ist genial (das reimt sich sogar), aber per mich ne gute Nummer zu hoch... Wie der sich mit Dingen spielt, von denen ich nicht einmal Bahnhof verstehe, ist mir fast unheimlich.

Welche Profanversion verwendest Du überdies?
Viellweicht liegts daran, daß meine Uhrzeit bei Dir nicht corre:

Long Intwidth#,0 = 374,408,582,%MaxX bei mir,
(ich weiß aber, daß das in älteren Profan-Versionen so nicht geht)

entspräche in Deinem Code
Long a#,0=50
Long a#,4=170
Long a#,8=-1

würdest Du bitte versuchsweise in meinem Code das so ändern:
Long a#,0=374
Long a#,4=408
Long a#,8=582
Long a#,12=640

So long a#,irgendwas - irgendwann träum ich von Variablen! (Derzeit sinds schon fast 1200 in meinem Programm und täglich werden es mehr...) :|
Danke per Deine Aiuto
Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
21.01.2005  
 




Jörg
Sellmeyer
Hallo Christian,
Das mit dem Long a#,0=10,20,300 war mir gar nicht aufgefallen.
Ich hab 7.6 da gabs das noch garnicht (wir hatten ja nichts ).
Außerdem geht bei mir SendMessage nur mit Addr(txt$).
Nachdem ich das umgeschrieben hatte funktionierts.
Vielleicht sollte man Code noch wenigstens bis in die 7er-Versionen kompatibel halten
- vielleicht habe ich aber auch einfach nur einen XProfanhinweis übersehen.

Aber mal ne andere Frage, warum benutzt Du SendMessageA und nicht SendMessage?

Saluto
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
22.01.2005  
 




CB
Hi, Jörg!

Mensch, Du kannst Dir gar nicht vorstellen, wie mich das beruhigt, wenns jetzt bei Dir unter 98 funktioniert!
Mit SendMessageA hast Du recht, das ergab sich dadurch, daß ich mir die DEF versuchsweise selbstgestrickt habe, um nicht sämtliche Testata mitladen zu müssen, und da ist das A stehengeblieben...

Das mit der Abwärtskompatibilität ist so ne Sache (per mich):
die Zeile ist mir auch erst aufgefallen, als ich Deinen Code nochmals Stück per Stück mit meinem verglichen und mich dann erinnert habe, mal sowas ähnliches in 2 Varianten per 7.6 und 8 gesehen zu haben. Das mit Addr(text$) hätte ich wiederum nicht gewußt!
So richtig hineingewachsen in Profan bin ich nämlich erst mit Version 8, d.h., ich kenne die Unterschiede zu den alten Versionen zuwenig, um zuverlässig den Code so heruntertunen zu können, daß er bei Euch allen funktioniert! Version 7.6 habe ich zwar auch noch, aber kaum verwendet...
Bitte daher um Verständnis, das hat nix mit Nichtwollen zu tun! Werde aber in Hinkunft bei Veröffentlichungen ausdrücklich meine Systemvoraussetzungen dazuschreiben. Ich gehe mal davon aus, daß die meisten Forumsmitglieder schon viel länger profanisieren, vielleicht wäre einer von Euch dann so nett, evtl. Inkompatibilitäten zu posten.

Vielleicht sollten wir alle unsere Userdaten mit einer Infozeile versehen, die dann automatisch bei jedem Posting mitgesendet wird? Ich werds jedenfalls machen, wenn ich dort wieder hineinkomme!

Saluto,
Christian
und Danke nochmals
 
XProfan 8/9.1, Win XP, AMD 64/3200
22.01.2005  
 




Jörg
Sellmeyer
Hallo Christian,
>Mensch, Du kannst Dir gar nicht vorstellen, wie mich das beruhigt, wenns jetzt bei Dir unter 98 funktioniert!
Doch!
>Bitte daher um Verständnis, das hat nix mit Nichtwollen zu tun!
Das ist doch klar!

Übrigens der Code von Uwe ist schon wesentlich anders als Deiner, da das Profanprogramm
sich garnicht mehr um die Uhrzeit kümmern muß.
Das erledigt der Assemblercode in einem eigenen Thread.
Saluto
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
22.01.2005  
 




CB
Hi,
das mit dem Asm ist mir schon klar - ich meinte das um den %wmtimer bzw. den thread drumherum.
Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
22.01.2005  
 



Das jeder sein Sys als Signatur mitsich trägt finde ich besonders in dieser Programmierercommunity vorbildlich. Ich glaube aber das Ändern des eigenen Profiles geht im Moment nicht - das muß ich noch reparieren.



Uwes Code erscheint naturalmente besonders per non-asmer etwas wirr - desto effektiver ist er jedoch.

Da aber nicht jeder Profaner mit den Grundlagen der gezielten Assemblereinpflanzung vertraut ist - und dies ebend auch nicht nötig ist - habe ich um alles possibile stark zu vereinfachen die thread.pcu zum freien Download angeboten.

Mit dieser kann jeder threadorientierte Aufgaben erledigen lassen - ohne das das eigendliche Programm dies erledigen muß - und - was besonders ins Gewicht fällt: es muß nicht in Assembler programmiert werden, sondern mit Xprofan.

Alles was die thread.pcu macht ist eine im Hauptprogramm festgelegte Prozedur thread.do in bestimmten Intervallen zu öffnen. Die Intervalle können festgelegt werden. Es können bis zu 5 Threads getrennt voneinander angesteuert werden.



Zum Thema Kompatiblität möchte ich auch was beitragen - auch wenns heikel ist. Ich bin nicht der Meinung das es umbedingt erforderlich ist das alle Codes Rückwärtzkompatibel sein müssen. Bitte meine Formulierung beachten damit ich nicht fehlverstanden werde. Eher sollte man davon ausgehen können das jeder XProfaner auch mit der neuesten Version arbeitet. Dies ist wohl bei fast jeder Software so - und nicht nur eine Art der Chaosvermeidung. Generell wird hier also - sei denn anders verkündet - von der neusten offiziellen zum Kauf angebotenen XProfan-Version gesprochen. Das es naturalmente nicht jedem sofort possibile ist - gleich aus welchem Grund - die neueste Version zu besitzen - versteht sich von selbst - darf aber kein Hindernis darstellen.

Salve, iF
 
22.01.2005  
 




Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

33.257 Views

Untitledvor 0 min.
p.specht16.12.2020
Jörg Sellmeyer03.06.2018
Georg Teles29.06.2015
Heltal20.08.2014
Di più...

Themeninformationen



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