Deutsch
Forum

weiterlaufende Uhrzeit in Programmen

 

Peter
Max
Müller
Hallo an alle ProfanerINNEN,
Ich progge noch nicht lange mit Profan.Alle meine bisherigen Probleme habe
ich gelöst oder ich habe im Web nach Lösungen gesucht.
Aber jetzt weiß ich einfach nicht weiter :

PROBLEM: Ich habe ein Progie geschrieben.Das hat ein normales Menü (PopUp) und eine Toolbar.Jetzt möchte ich gerne das die Uhrzeit angezeigt wird.Also habe ich folgenden Code
eingebaut:

window 0,0-200,200
settimer 1000
while 1
waitinput
case %wmtimer:settext %hwnd,Time$(0)+:+substr$(Time$(1),1,.)
endwhile
killtimer

Je nachdem wo ich endwhile hinsetze kann ich entweder die Menüleiste nicht bedienen oder
die Toolbar reagiert nicht.
Mal habe ich es soweit das alles läuft aber wenn ich dann ein Fenster öffne ist es beim
nächsten umspringen der Zeit (in diesem Fall Sekunde) wieder verschwunden.
Gibt es denn keinen Weg eine einfache Uhrzeit darzustellen?

Ich danke euch schon jetzt sehr herzlich für eure Hilfe.

Euer Peter
 
XProfan X3, X4ß, Win 10.1
04.09.2004  
 




Michael
Dell
Korrigiere:

SetText %Hwnd kommt mir Spanisch vor, sollte anstell von %HWnd nicht das
Handle eines Textfeldes stehen? Wo möchtest du die Zeit denn Anzeigen?

Sorry, ich bin heut wohl etwas daneben! Halt dich mal lieber an If

Vieleicht hilft aber auch dieses kleine Demo:
KompilierenMarkierenSeparieren
Declare txt1&
window 0,0-400,200
PopUp "Test"
AppendMenu 100,"Test_1"
AppendMenu 101,"Test_2"
Separator
AppendMenu 102,"Test_3"
settimer 500
txt1&=Create("Text",%HWnd,"",10,100,80,22)

whileNot Equ(%MenuItem,-2)

    Sleep 100

    If %wmtimer

        SetText txt1&,Time$(0)+":"+substr$(Time$(1),1,".")
        WindowTitle "Check Time - "+Time$(0)+":"+substr$(Time$(1),1,".")  anstelle SetText %HWnd
        SetActiveWindow(%HWnd)

    ElseIf Equ(%MenuItem,100)

        MessageBox("Test_1","Gewählt:",0)
        SetMenuItem 0

    ElseIf Equ(%MenuItem,101)

        MessageBox("Test_2","Gewählt:",0)
        SetMenuItem 0

    ElseIf Equ(%MenuItem,102)

        MessageBox("Test_3","Gewählt:",0)
        SetMenuItem 0

    EndIf

    SetActiveWindow(%HWnd)

endwhile

killtimer
Michael...
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
04.09.2004  
 



Schau mal hier: [...] 

Wenn Du Deine Zeitanzeige in die thread.do legst, funzt es permanent.

XProfan - needet.

Salve, iF

PS: Wenn ich mir Dein Avatar so anschaue frage ich mich was Dir denn passiert sei.
 
04.09.2004  
 




Peter
Max
Müller
Moin,Moin,

@Michael : Wo die Zeit dargestellt wird ist mir egal.Ob Fenster oder im Windows Title.
Ich habe mal deinen Demo Code ausprobiert.Aber dasselbe Problem wie bei meinem.
@CreateDialog Fenster werden beim umspringen der Uhr selbstständig und schliessen sich.
Aber auch nicht alle.Ich glaube das Problem tritt dann auf wenn per SetFocus auf einen Button verweist wird der den Dialog schliesst.Jedenfalls habe ich das mal geändert und dann lief es.
Ich danke Dir.

@IF : Ich habe leider kein X-Profan.Noch nicht.Ich merke aber selbst das alle schönen Funktionen X-Profan brauchen.Hier sei nur mal X-Menü erwähnt.Deshalb werde ich nächste Woche updaten.
Und zu meinem Avantar: Wenn ich mir Deinen so begucke hast auch Du ein böses Schicksal erlitten) .
Das Foto ist entstanden als ich mich auf einem VBA Treffen als Profaner geoutet habe.Nein,Spaß beiseite.Ich wußte einfach nicht was für ein Bild ich nehmen sollte und da habe ich das erstbeste genommen.Beim Kickboxen sieht man schon mal so aus.
Und auch ein großes Danke schön für Deine Hilfe an Dich.
 
XProfan X3, X4ß, Win 10.1
05.09.2004  
 



Hallo Peter,- zu Deinem Avatar,- ich habs kappiert.

Zu Deinem Timer-Problem,- ich glaube das dir das sekündliche waitinput-Verlassen diese Probleme bescherrt (da bleiben halt die messages auf der Strecke),- wenn Du also nur eine Minutengenaue-Anzeige proggen würdest wären wohl die Probleme dahin.

Salve, iF
 
05.09.2004  
 




Dennis
Schulmeister
Hallo Peter,

folgenden Quellcode habe ich mal vor ein paar Jahren erstellt, als gerade Profan² 7 neu war. (Hach, waren das noch Zeiten. )

Ich würde für die Uhrzeit keinen eigenen Timer nehmen, da dass viel zu ungenau ist. Frage die Zeit doch einfach mit @Time$() ab...

Gruß,
Dennis
 
(Fast) alle Profan²-Versionen seit Version 2.6, sowie (fast) alle Windows-Versionen seit Windows 3.1
05.09.2004  
 




Ragnar
Rehbein
böses programm

erzeugt 100 % cpu-last !

zu DOS-Zeiten wo nur ein programm zur zeit lief sicher kein problem aber heute .....

ein sleep 1 im IF und in ELSE -zweig wären sicher angebracht.

r.r.
 
05.09.2004  
 




Dennis
Schulmeister
Habs ehrlich gesagt nicht mehr getestet sondern direkt ovn der Backup-CD hochgeladen.

Also Sleep 1 nicht vergessen.

Gruß,
Dennis
 
(Fast) alle Profan²-Versionen seit Version 2.6, sowie (fast) alle Windows-Versionen seit Windows 3.1
06.09.2004  
 




Peter
Max
Müller
Halli,Hallo,
Erstmal vielen Dank an alle für eure Hilfe.
Ich glaube wenn ich die Uhr so progge das sie nur minütlich umspringt wird es auch nicht wirklich besser.Macht der Anwender kurz vor der vollen Minute ein Dialog auf und die Uhr springt just kurz danach um wird das Fenster wieder geschlossen.Glaube ich zumindestens.Ich habe es nicht ausprobiert.
Hab einfach SetFocus auf die Button weggelassen und es rennt ohne Probs.
Und was keiner von euch wissen konnte: Es handelt sich um eine Analoguhr wo ein Sekundenzeiger einfach gut aussieht. *coolyeah*
Machts alle gut und geht ruhig mal in die Sonne.
Bis bald
Euer Peter
 
XProfan X3, X4ß, Win 10.1
06.09.2004  
 



Hallo Peter...

Wenn du hier einen Teil deines Quellcodes gepostet hättest, hätte man dir bestimmt schneller und besser helfen können...
Zu deinem Problem: Der Timer durchbricht nach der eingestellten Zeit Waitinput und löst damit auch den Button aus, den du danach mit GetFocus abfragst und der den Focus hat. Getfocus überprüft nur, ob ein Button den Focus hat, nicht aber ob er gedrückt wurde. Versuch mal folgende Buttonabfrage:
If @gt(sendmessage(Dein_Button_Handle&,$00F2,0,0),40)
Diese Probleme wirst du auch bei der Abfrage von Menüpunkten haben, es sei denn du setzt das Menü mit SetMenuitem0 wieder zurück...

PS: Als ich IFs Avatar zum ersten Mal gesehen habe.... :biggrin:
 
06.09.2004  
 




Uwe
''Pascal''
Niemeier
Hallo Peter!

>> Das Foto ist entstanden als ich mich auf einem VBA Treffen als Profaner geoutet habe.


Ich habe da noch ein Beispiel, das ohne XProfan auskommt:
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"
def ResumeThread(1) !"KERNEL32","ResumeThread"
def SuspendThread(1) !"KERNEL32","SuspendThread"
declare a$,a&,a#
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
long a#,0=-1947432107
long a#,4=-141883267
long a#,8=1779746435
long a#,12=6968852
long a#,16=6946922
long a#,20=126550122
long a#,24=1784074495
long a#,28=-1962120704
long a#,32=-1957688249
long a#,36=-788593593
long a#,40=256104
long a#,44=138906368
long a#,48=-24915713
long a#,52=-1949011199
long a#,56=79846885
long a#,60=0
long a#,100 =Funct1&	GetTimeFormat
long a#,104 =Funct2&	SendMessageA
long a#,108 =Funct3&	Sleep
long a#,112 =%hwnd	Zielhandle
Thread&=CreateThread(0,0,a#,a#+100,0,addr(Dummy&))

while 1

    waitinput
    case %umessage=16:break
    case %key=97:SuspendThread(Thread&)--Taste "a": Stopp
    case %key=98:ResumeThread(Thread&)---Taste "b": Weiter

endwhile

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

Weils da noch kein @ProcAddr(S,N) gab, ist die eigendliche Routine in Assenbler geschrieben und in eine Bereichsvariable gepackt worden (ungefähr so wie beim seligen C64 die Maschinensprache-Codes)

Das Teil sollte theoretisch sogar noch bis auf Profan 5 runterzudrücken sein.

HTH
Pascal
 
06.09.2004  
 




Michael
Dell
Hallo,

hab auch noch ne Funktion ausgegraben die hier helfen kann.

Prüft ob ein Button losgelassen wurde während der Mauszeiger noch auf in zeigt (ja = 1 sonst 0)
ist das der fall wird 1 zurückgegeben und der Focus wird auf das übergebene Handle gesetzt

Befehl: ButtonUp(Handle&) Handle& steht für Fenster oder Dialog (Übergeordnet)

Def ButtonUp(1) @Equ(@If(Equ(%Lastmessage,514),1,@If(Equ(%Lastmessage,512),SetFocus(@&(1)),0)),1)

Beipsiel:

ElseIf @GetFocus(Button_1&)

If ButtonUp(Dialog_4&)
auszuführende Aufgaben
EndIf

ElseIf ....

Die hat mir schon ne menge Ärger erspart.

Michael...
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
06.09.2004  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

10.435 Betrachtungen

Unbenanntvor 0 min.
Gast.081524.07.2024
Peter Max Müller25.12.2022
E.T.21.05.2022
p.specht15.12.2020
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