| |
|
|
- 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 |
|
|
| |
|
|
| |
|
- Seite 4 - |
|
|
| Die XProfanhilfe gibt über MCI Brauchbares aus. Damit könntest AVI statt Ani verwenden.
Salve, iF |
|
|
| |
|
|
|
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 |
|
|
| |
|
|
|
| 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 |
|
|
| |
|
|
|
| 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 |
|
|
| |
|
|
|
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 |
|
|
| |
|
|
|
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: KompilierenMarkierenSeparierenwindow 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 |
|
|
| |
|
|
|
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 |
|
|
| |
|
|
|
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 |
|
|
| |
|
|
|
| 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 |
|
|
| |
|
|