|
| Egne Events ! Fra : Thomas P |
Dato : 10-04-01 22:00 |
|
I forbindelse med et mindre projekt, der skal bruge windows' ur, har jeg
brug for at få programmet til at udføre en funktion kl. xx.xx . Programmet
er tiltænkt at skulle køre rimelig permanent, så Timer er nok en _meget_
dårlig idé. Derfor har jeg tænkt på, om man måske kunne bede windows om at
fortælle mit program hvornår klokken er xx.xx uden at mit program belaster
systemet unødigt - alt dette kunne måske gøres med EVENT-tingen !? Nærmere
forklaringer om min uvidne tankegang tilønskes ;)
- Thomas
| |
Niels (10-04-2001)
| Kommentar Fra : Niels |
Dato : 10-04-01 22:12 |
|
Just as I expected, Thomas P came up with this:
>I forbindelse med et mindre projekt, der skal bruge windows' ur, har jeg
>brug for at få programmet til at udføre en funktion kl. xx.xx .
Med mindre du virkelig har *lyst* til at lave det selv, så kan du jo
bruge Windows' task scheduler (Opgavestyring eller Planlagte Opgaver)
til at sætte den til at køre automatisk.
>Programmet
>er tiltænkt at skulle køre rimelig permanent, så Timer er nok en _meget_
>dårlig idé. Derfor har jeg tænkt på, om man måske kunne bede windows om at
>fortælle mit program hvornår klokken er xx.xx uden at mit program belaster
>systemet unødigt - alt dette kunne måske gøres med EVENT-tingen !? Nærmere
>forklaringer om min uvidne tankegang tilønskes ;)
Svjv. er en timer den bedste løsning (500 ms ville jeg sætte den til),
eller du kunne måske sætte noget på Application.OnIdle de checker
tidspunktet.
Du kunn evt. også lave en slags "dynamisk" timer der sætter sit interval
efter hvor lang tid der er til opgaven skal udføres, så koden kører så
lidt som muligt. Jeg ved ikke hvor nemt det er.
Niels
--
e-mail: nmartin at iname dot com
ICQ UIN: 50187323
http://www.niller.f2s.com/ - niLLer's pages
| |
Finn Bindeballe (11-04-2001)
| Kommentar Fra : Finn Bindeballe |
Dato : 11-04-01 06:07 |
|
hej der......
hvorfor sqlle TTimer være dårlig????? ved godt at den ikke er præcis, men du
kan jo bare checkke NOW, og saa gøre det tit nok til at din fineste opløsning
i tid er rigeligt overholdt.......
Finn Bindeballe
FinnB@post6.tele.dk
Thomas P wrote:
> I forbindelse med et mindre projekt, der skal bruge windows' ur, har jeg
> brug for at få programmet til at udføre en funktion kl. xx.xx . Programmet
> er tiltænkt at skulle køre rimelig permanent, så Timer er nok en _meget_
> dårlig idé. Derfor har jeg tænkt på, om man måske kunne bede windows om at
> fortælle mit program hvornår klokken er xx.xx uden at mit program belaster
> systemet unødigt - alt dette kunne måske gøres med EVENT-tingen !? Nærmere
> forklaringer om min uvidne tankegang tilønskes ;)
>
> - Thomas
| |
Thomas Due (11-04-2001)
| Kommentar Fra : Thomas Due |
Dato : 11-04-01 11:54 |
|
Hej,
Jeg sidder faktisk lige nu med en opgave hvor mit program skal gøre noget
en gang i døgnet. Det gør jjeg ved at have en TTimer til at køre med en
opløsning
på 60.000 ms. Det gør at timeren en gang i minuttet (ca.) checker
klokkeslettet.
Hvis klokkeslettet er lig det fastsatte tidspunkt (på minuttet) så er det
tid til
at udfører handlingen. Fordi jeg kun checker på minuttet og opløsningen på
TTimer er i minutter, så risikere jeg ikke at kørslen foretages mere end en
gang
i døgnet. Hvis maskinen har meget travlt kan jeg til gengæld godt risikere
at
programmet springer et døgn over. Hvis TTimer fyrer efter 60050 ms f.eks. og
den sådan lige præcis rammer forbi det ønskede tidspunkt.
Den eneste anden måde jeg kunne forestille mig man kunne gøre det på er ved
hjælp af en tråd som udelukkende står og holder øje med tiden, og når den er
inde, så hejser denne tråd et flag. Men det er jo principielt måden som
TTimer fungerer på, mere eller mindre.
Mvh
Thomas
"Finn Bindeballe" <FinnB@post6.tele.dk> wrote in message
news:3AD3E68B.6F6BBAF9@post6.tele.dk...
> hej der......
>
> hvorfor sqlle TTimer være dårlig????? ved godt at den ikke er præcis, men
du
> kan jo bare checkke NOW, og saa gøre det tit nok til at din fineste
opløsning
> i tid er rigeligt overholdt.......
>
> Finn Bindeballe
> FinnB@post6.tele.dk
>
> Thomas P wrote:
>
> > I forbindelse med et mindre projekt, der skal bruge windows' ur, har jeg
> > brug for at få programmet til at udføre en funktion kl. xx.xx .
Programmet
> > er tiltænkt at skulle køre rimelig permanent, så Timer er nok en _meget_
> > dårlig idé. Derfor har jeg tænkt på, om man måske kunne bede windows om
at
> > fortælle mit program hvornår klokken er xx.xx uden at mit program
belaster
> > systemet unødigt - alt dette kunne måske gøres med EVENT-tingen !?
Nærmere
> > forklaringer om min uvidne tankegang tilønskes ;)
> >
> > - Thomas
>
| |
Lars Bargmann (12-04-2001)
| Kommentar Fra : Lars Bargmann |
Dato : 12-04-01 09:52 |
|
Lav et par "check-variable".....
En til at holde øje med hvornår du sidst kørte proceduren, og så bare hold
øje med om det er mere end (60 * 24) minutter siden...
Var
LastRun : TDateTime;
procedure TheTimerThingTimer(Sender : TObject);
begin
if Now > (LastRun + 1) then
DoTheStuff;
end;
procedure DoTheStuff;
begin
file://Gør en hel masse
LastRun := Now;
end;
Hmmm, ved nærmere eftertanke behøver du ikke engang initialisere LastRun,
eftersom DoTheStuff vil blive kaldt når programmet starter, og så ruller det
derfra...
Timeren kan faktisk stilles til en ret høj opløsning.....
Ovenstående er totalt utestet, og skrevet ud af den blå luft, men håber det
hjælper....
Bargmann....
"Thomas Due" <noname@nowhere.net> wrote in message
news:9b1d5t$hra$1@news.inet.tele.dk...
> Hej,
>
> Jeg sidder faktisk lige nu med en opgave hvor mit program skal gøre noget
> en gang i døgnet. Det gør jjeg ved at have en TTimer til at køre med en
> opløsning
> på 60.000 ms. Det gør at timeren en gang i minuttet (ca.) checker
> klokkeslettet.
> Hvis klokkeslettet er lig det fastsatte tidspunkt (på minuttet) så er det
> tid til
> at udfører handlingen. Fordi jeg kun checker på minuttet og opløsningen på
> TTimer er i minutter, så risikere jeg ikke at kørslen foretages mere end
en
> gang
> i døgnet. Hvis maskinen har meget travlt kan jeg til gengæld godt risikere
> at
> programmet springer et døgn over. Hvis TTimer fyrer efter 60050 ms f.eks.
og
> den sådan lige præcis rammer forbi det ønskede tidspunkt.
>
> Den eneste anden måde jeg kunne forestille mig man kunne gøre det på er
ved
> hjælp af en tråd som udelukkende står og holder øje med tiden, og når den
er
> inde, så hejser denne tråd et flag. Men det er jo principielt måden som
> TTimer fungerer på, mere eller mindre.
>
> Mvh
> Thomas
>
>
> "Finn Bindeballe" <FinnB@post6.tele.dk> wrote in message
> news:3AD3E68B.6F6BBAF9@post6.tele.dk...
> > hej der......
> >
> > hvorfor sqlle TTimer være dårlig????? ved godt at den ikke er præcis,
men
> du
> > kan jo bare checkke NOW, og saa gøre det tit nok til at din fineste
> opløsning
> > i tid er rigeligt overholdt.......
> >
> > Finn Bindeballe
> > FinnB@post6.tele.dk
> >
> > Thomas P wrote:
> >
> > > I forbindelse med et mindre projekt, der skal bruge windows' ur, har
jeg
> > > brug for at få programmet til at udføre en funktion kl. xx.xx .
> Programmet
> > > er tiltænkt at skulle køre rimelig permanent, så Timer er nok en
_meget_
> > > dårlig idé. Derfor har jeg tænkt på, om man måske kunne bede windows
om
> at
> > > fortælle mit program hvornår klokken er xx.xx uden at mit program
> belaster
> > > systemet unødigt - alt dette kunne måske gøres med EVENT-tingen !?
> Nærmere
> > > forklaringer om min uvidne tankegang tilønskes ;)
> > >
> > > - Thomas
> >
>
>
| |
|
|