Deutsch
Quelltexte/ Codesnippets

Blink Led Statusbar Uhrzeit

 
- Seite 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 für meine Zwecke brauchbar - mein Dank für 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 Spaß,
Christian

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



 
- Seite 4 -


Die XProfanhilfe gibt über 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?
Gruß,
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 anzeigen.

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 für Deinen MCI-Tip. Habe mir die Profan-Hilfe 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 möglichst viel Zeit ersparen, manche Befunderhebungen können aber erheblche Zeit brauchen. In dem Fall könnte 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!

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




Jörg
Sellmeyer
Hallo,
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 möglich 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:
[...] 

Gruß
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 ich den thread einem anderen Part der Statusbar zuweisen könnte - ich glaube, in dieser Form geht das auch gar nicht. Sonst kann ich in Deinem Beispiel alles analog zu meinem einstellen.
Hier im Forum war mal ein ähnliches Beispiel von Pascal für die Uhrzeit, das war mir etwas zu komplex. Pascal ist genial (das reimt sich sogar), aber für 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 läuft:

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 für Deine Hilfe
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?

Gruß
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 Header mitladen zu müssen, und da ist das A stehengeblieben...

Das mit der Abwärtskompatibilität ist so ne Sache (für mich):
die Zeile ist mir auch erst aufgefallen, als ich Deinen Code nochmals Stück für Stück mit meinem verglichen und mich dann erinnert habe, mal sowas ähnliches in 2 Varianten für 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!

Gruß,
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.
Gruß
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 natürlich besonders für 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 möglichst 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 natürlich nicht jedem sofort möglich 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


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

30.714 Betrachtungen

Unbenanntvor 0 min.
p.specht16.12.2020
Jörg Sellmeyer03.06.2018
Georg Teles29.06.2015
Heltal20.08.2014
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


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