Seite 2 von 2
Verfasst: 27.01.2006 23:07
von ts-soft
Achso, Du hast Dir meinen Code nicht angesehen

Verfasst: 27.01.2006 23:23
von Tsuki-Namida
Ja okay... da müsste ein Pipen zuhören sein über den system speeker (ist bei mir defekt) aber wie kann ich eine aktion nach abgelaufener zeit machen???
Verfasst: 27.01.2006 23:26
von ts-soft
Alle was in in der Procedure Timer steht, wird alle soundsoviel Sekunden, siehe Inputrequester, ausgeführt. Also schreib was anderes rein, was er anstatt von beep machen soll.
Er wird es dann, alle soundsoviel Sekunden ausführen, bis das Fenster geschlossen wird. Im Fenster kannste alles andere Einbauen, was du brauchst. Der Timer arbeitet unabhängig ständig weiter.
Verfasst: 27.01.2006 23:35
von Tsuki-Namida
ach sorum läuft das
naja jedenfals danke

Verfasst: 28.01.2006 20:29
von Tafkadasom2k5
Heyho!
ne andere Möglichkeit fürn Timer:
Wartet 10 Sekunden, und das Fenster ist noch zu gebrauchen..
Ist nicht immer genau, (jenachdem wieviele Callback-Prozeduren du in diese Schleife einbaust) aber es funktioniert und ist soweit ich weis plattforunabhängig und verständlich...
Gr33tz
Tafkadasom2k5
Verfasst: 28.01.2006 21:28
von ts-soft
@Tafkadasom2k5
Vielleicht liest Du erstmal, worum es geht. Es ging einzig und allein, um eine Lösung
ohne Delay 
Verfasst: 28.01.2006 23:05
von Tafkadasom2k5
ts-soft hat geschrieben:@Tafkadasom2k5
Vielleicht liest Du erstmal, worum es geht. Es ging einzig und allein, um eine Lösung
ohne Delay 
LOL und jetzt ließt du mal genau, bevor du hier den Macker makierst
Magix-Soft<Kain> hat geschrieben:
ich kann allerdings nicht mit Delay arbeiten weil ja das Programm an für diese Zeit still stehen bleibt und das darf nicht passieren da man auch andere aktionen werend dieser zeit machen kann.
Ja nee, aber sonst hast du schon irgendwie recht... -.-
Gr33tz
Tafkadasom2k5
P.S.:Is nur Spaß, weissu doch

Verfasst: 28.01.2006 23:17
von ts-soft
Tafkadasom2k5 hat geschrieben:
LOL und jetzt ließt du mal genau, bevor du hier den Macker makierst

Zu meiner Zeit hieß es noch "großen Macker"
Deine Lösung ist in einem ereignisgesteuerten Windows-Programm eigentlich nicht nutzbar, da alle Ereignisse, ausser die von Windows autom. abgearbeiten, verpuffen.
Verfasst: 28.01.2006 23:24
von Tafkadasom2k5
ts-soft hat geschrieben:Tafkadasom2k5 hat geschrieben:
LOL und jetzt ließt du mal genau, bevor du hier den Macker makierst

Zu meiner Zeit hieß es noch "großen Macker"
Deine Lösung ist in einem ereignisgesteuerten Windows-Programm eigentlich nicht nutzbar, da alle Ereignisse, ausser die von Windows autom. abgearbeiten, verpuffen.
Ja, da hast du recht
Genau aus dem Grund schrieb ich folgendes:
[...],(jenachdem wieviele Callback-Prozeduren du in diese Schleife einbaust) [...]
Genau das sollte das eben heissen...hab michn bissl blöd ausgedrückt..
Also nochmal, nicht dass jetzt jemand denkt "das geht jetzt einfach so":
In meiner Prozedur muss IN der For-Schleife ein eigenes Event-Handling stattfinden.
Zumindest das gröbste. Ich mach deshalb bei solchen progs für das gesamte Event-Handling immer eine eigene Prozedur, sodass man diese überall frei hinsetzen kann.
Gr33tz
Tafkadasom2k5
EDIT:Hoffe, dass ich den Missverständnis-Modus erfolgreich deaktivieren konnte

Verfasst: 29.01.2006 01:13
von Toshy
Hi,
das ist doch ganz einfach:
Code: Alles auswählen
OpenConsole()
EndTime.l = ElapsedMilliseconds() ;Endzeit - milisekunden
DifTime.l = ElapsedMilliseconds()
DifStartTime.l = ElapsedMilliseconds() ;Startzeit - milisekunden ;Vorlagecode fr dein Programm
DifTime.l = 1000 * 3;Zeit zwischen den Ausfhrungen in Millisekunden ;Vorlagecode fr dein Programm
PrintN("Starte und warte 3 Sekunden.")
Repeat
If Abs(ElapsedMilliseconds() - DifTime) > DifStartTime ;Vorlagecode fr dein Programm
PrintN("es sind wieder 3 Sekunden um.") ;Vorlagecode fr dein Programm
DifStartTime.l = ElapsedMilliseconds() ;Neue Startzeit setzen ;Vorlagecode fr dein Programm
EndIf ;Vorlagecode fr dein Programm
Delay(1) ; kann weggelassen werdne, ist nur damit im Beispiel der Prozessor nich voll ausgelastet wird.
Until 0
CloseConsole()
das ABS() sollte auf jedenfall benutzt werden, damit es auch dann klappt, denn der zähler duch das Bebriebssytem auf Null gesetzt wird. bei Windows98 passiert das glaube ich nach 49 Tagen.
Besser wäre für den Falls noch eine If-Abfrage, aber dürfte so auch gehen.
Bei dem Code ist es vollkommen egal was im Programm geschieht, sobald mehr als X Millisekunden vorbei sind, wird der Code ausgeführt. Man muß nur drauf achten, das ein Wartebefehl auch unterbrochen wird oder je nach Code halt ein Thread genutzt wird.
Gruß
Thorsten