Autor Beitrag
mick
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Do 30.12.04 17:56 
hi.

habe einen countdown in meinem spiel (spielzeit), der laeuft. wenn jetzt jedoch der user im mainmenue einstellungen vornimmt, soll die spielzeit angehalten werden. dafuer habe ich eine variable "lauf" in meinem programm.
aber: fuer jeden prozeduraufruf im mainmenue muss ich dann ueber lauf die spielzeit anhalten. das ist zwar immer nur eine zeile, aber die eben in jeder prozedur (fuer jeden menueeintrag): in TUHauptForm.Oeffnen1Click, TUHauptForm.Speichern1Click, TUHauptForm.Einstellungen1Click, TUHauptForm.UeberDiesesProg1Click... - nervig.

wie koennte ich das umgehen? wie kann ich es ohne redundanten code arrangieren, dass sobald der user ins mainmenue geht, die spielzeit angehalten wird?

ciao,
mijozi.
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Do 30.12.04 17:59 
Du könntest z. B. im OnIdle Event des Hauptfensters überprüfen ob das Hauptfenster noch aktiviert ist.
Kroni
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 720

Win 98, Win ME, Win2k, Win XP
D3 Pro
BeitragVerfasst: Do 30.12.04 18:00 
soweit ich weiß musst du jedes mal, wenn das spielfeld den focus verliert einfach timer1.enabled:=false;setzen.
wenn das spielfeld den focus bekommt...dann eben wieda auf true.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 30.12.04 18:22 
Kroni hat folgendes geschrieben:
soweit ich weiß musst du jedes mal, wenn das spielfeld den focus verliert einfach timer1.enabled:=false;setzen.
wenn das spielfeld den focus bekommt...dann eben wieda auf true.

Vom Prinzip richtig. Es hängt aber vom Timer-Intervall ab, ob es so ausreicht. Steht der Timer auf 5 Minuten und es soll nach 4 Minuten pausiert werden, dürfte das obige Verfahren dazu führen, dass wieder bei "0" angefangen wird zu zählen.
Man müsste sich also beim "Disablen" merken, wieviel Zeit bereits vergangen ist und beim "Enablen" diese Zeit entsprechend berücksichtigen.
Diese Überlegungen sind aber nur interessant, wenn der Timer auf "lange" Zeiten eingestellt ist. Bei Sekunden-Timern dürfte das nicht relevant sein.
mick Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Fr 31.12.04 00:10 
ok!

ciao,
mijozi.