CreateTimer - Win98

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

Sora

Betreff: CreateTimer - Win98

BeitragMi, Okt 15, 2008 20:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe gerade mal mein MaxGui Programm an einem alten Betriebsystem getestet (Win98)
Im Prinzip funktioniert alles, aber CreateTimer scheint keine Wirkung zu haben?

also als simples Beispiel:
dies würde nun ständig "test" ausgeben, unter WIN 98 jedoch nicht, nur dann wenn man eine Aktion macht: klickt, Fenster verschiebt etc. - also immer dann nur, wenn die "Schleife" auch ohne Timer ausgeführt werden würde.

Code: [AUSKLAPPEN]
Import MaxGui.Drivers
window=CreateWindow("-",20,20,200,200)
CreateTimer(50)

While True

   Print "test"
   
   WaitEvent
   Select EventID()
   
      Case EVENT_WINDOWCLOSE
         End
   
   End Select
Wend


Hat jemand eine Ahnung woran das liegt, bzw. wie man dies umgehen könnte?

BtbN

BeitragMi, Okt 15, 2008 21:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Windows 98 wurde eingestellt. Man braucht sich nicht mehr darum bemühen, da es, wie du hier ja mekrst, mehr und mehr kompatiblitäts-probleme geben wird, auch wenn MS sich um abwärtskompatiblität bemüht. Aufwärts-Kompatiblität ist nicht gewährleistet.
 

Sora

BeitragMi, Okt 15, 2008 21:16
Antworten mit Zitat
Benutzer-Profile anzeigen
BtbN hat Folgendes geschrieben:
Windows 98 wurde eingestellt. Man braucht sich nicht mehr darum bemühen, da es, wie du hier ja mekrst, mehr und mehr kompatiblitäts-probleme geben wird, auch wenn MS sich um abwärtskompatiblität bemüht. Aufwärts-Kompatiblität ist nicht gewährleistet.



ja ist mir schon klar, kann auch gut damit leben Wink

Nur hätte ja sein können, dass es eine einfache Lösung gibt, schaden würde es ja nicht, auch wenn kaum noch jemand mit einem inzwischen so altem OS unterwegs ist.
 

#Reaper

Newsposter

BeitragMi, Okt 15, 2008 23:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Entweder übersehe ich im Code was, oder er tut genau das, was er soll: Nur dann weitermachen, sobald eine Aktion. Die Funktion WaitEvent() wartet eben so lange, bis irgendetwas im/mit dem GUI passiert. Und den Timer verwendest du ja überhaupt nicht.
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7

Artemis

BeitragDo, Okt 16, 2008 7:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Timer feuert jede 1/50 Sekunde ein Event, welches auch von WaitEvent "gemeldet" wird. Nur bei Win98 scheinbar nicht.

Der Code ist also schon richtig.
 

Dreamora

BeitragDo, Okt 16, 2008 8:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Meine Vermutung: Der Timer wird direkt vom GC ausgelöscht da du es nicht für notwendig hälst ihn ordnungsgemäss etwas zuzuordnen.
In BM ist prinzipiell alles, was nicht etwas zugeordnet wird (von GUI abgesehen die dank BlitzPlus vergangenheit einfach nicht BM optimal ist) zum abschuss freigegeben. Da die Timer NICHT zu MaxGUI gehören sondern zu einem kernmodul werden sie vom GC gemanaged.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Sora

BeitragDo, Okt 16, 2008 14:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamora hat Folgendes geschrieben:
da du es nicht für notwendig hälst ihn ordnungsgemäss etwas zuzuordnen..


War hier ja nur ein kurzer Beispiel Code, im Programm mit dem ich es getestet habe, war alles "ordentlich" Wink

BtbN

BeitragDo, Okt 16, 2008 16:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamora hat Folgendes geschrieben:
Meine Vermutung: Der Timer wird direkt vom GC ausgelöscht da du es nicht für notwendig hälst ihn ordnungsgemäss etwas zuzuordnen.
In BM ist prinzipiell alles, was nicht etwas zugeordnet wird (von GUI abgesehen die dank BlitzPlus vergangenheit einfach nicht BM optimal ist) zum abschuss freigegeben. Da die Timer NICHT zu MaxGUI gehören sondern zu einem kernmodul werden sie vom GC gemanaged.


Es gibt eine Referenz auf den Timer. du kannst ja, wenn du nach dem Event-Sender fragt, ein Objekt erhalten, welches der Timer ist. Also muss irgendwo eine Referenz gespeichert werden.
 

Dreamora

BeitragDo, Okt 16, 2008 22:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Sora hat Folgendes geschrieben:
Dreamora hat Folgendes geschrieben:
da du es nicht für notwendig hälst ihn ordnungsgemäss etwas zuzuordnen..


War hier ja nur ein kurzer Beispiel Code, im Programm mit dem ich es getestet habe, war alles "ordentlich" Wink


wird brauchen schon code der vollständig ist, weil sonst macht das ganze keinen sinn. Teletubbi Raterunden sind was fürs Sudoku Board, nicht fürn' dev board Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Sora

BeitragDo, Okt 16, 2008 23:30
Antworten mit Zitat
Benutzer-Profile anzeigen
der Beispielcode verhält sich genauso wie der vollständige, nur das er halt wesentlich kürzer ist Wink
Es geht ja nur um die Tatsache, dass CreateTimer (bei mir?) unter alten WinOS nicht funktioniert, egal in welchem Kontext.
Naja ich werde Morgen nochmal ein bisschen rumexperimentieren, vielleicht finde ich noch was heraus, was weiterhelfen könnte. Und wenn nicht, naja dann wird 98/me etc. halt ignoriert, wer jetzt noch damit unterwegs ist...ist eh selbst Schuld Very Happy

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group