/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Nem løsning på tidsindstilling?
Fra : Søren Aaholm Møller


Dato : 09-11-01 17:28

Hej,

Jeg er igang med at lave et program som ekskveres når/hvis klokken bliver
XX:XX

Hvordan gøres det egentlig nemmest - hele funktionen funker nu - men hvordan
eksekveres den nemmest efter et bestemt tidspunkt?

Ex - programmet indstilles til at skulle køre funktionen "TrainNow;" når
klokken bliver 19.00 (eller hvis computeren først bliver tændt kl. 19.05, så
eksekveres den der)....

Man kunne selvfølgelig lave det med en timer som regnede lidt rundt - men er
der ikke en nemmere måde at gøre det på?

// Søren



 
 
Peter Arnholm (10-11-2001)
Kommentar
Fra : Peter Arnholm


Dato : 10-11-01 14:48

"Søren Aaholm Møller" <swdata@image.dk> skrev i en meddelelse
news:avTG7.1153$Gt.54080@news000.worldonline.dk...
> Hej,
>
> Jeg er igang med at lave et program som ekskveres når/hvis klokken bliver
> XX:XX
>
> Hvordan gøres det egentlig nemmest - hele funktionen funker nu - men
hvordan
> eksekveres den nemmest efter et bestemt tidspunkt?

Jeg kan ikke se hvordan du kan undgå en timer for at aktivere din funktion.
Noget i stil med:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Timetostr(time)=edit1.text then
Label1.Caption := 'Aktiveringen er startet';
end;
--
PA



Søren Aaholm Møller (10-11-2001)
Kommentar
Fra : Søren Aaholm Møller


Dato : 10-11-01 17:37

Hej, Peter

Pænt efternavn du har der Very close to mine

Problemet ligger i at du har timeren liggende og køre (ustandsligt) og
derved tage noget (i know - ikke meget) cpu-tid og hvad har vi. Det er der
vel igen grund til...

Jeg kunne forestille mig noget lignendende

Procedure TForm1.CreateForm(Sender: TObject);
Var
TimeNow, TimeSet, TimeLeft: Integer;
Begin
TimeSet := Edit1.Text // 1900 ('alarm' sat til)
TimeNow := TimeToStr(now) // 1700 (klokken er nu)
// Pille kolon af så vi har dem som integers springer vi lige over \\
*********'
End;

******* -> Her en kode som udregner hvor mange sekunder der er fra kl. 17:00
til kl. 19:00 - giver en timer antallet *1000 i interval - og herefter
starter den...

Burde sådan noget være muligt? - Og precisionsmæssigt realistisk?

// Søren

----- Original Message -----
From: "Peter Arnholm" <PeterArnholm@mail.dk>
Newsgroups: dk.edb.programmering.pascal
Sent: Saturday, November 10, 2001 2:47 PM
Subject: Re: Nem løsning på tidsindstilling?


> "Søren Aaholm Møller" <swdata@image.dk> skrev i en meddelelse
> news:avTG7.1153$Gt.54080@news000.worldonline.dk...
> > Hej,
> >
> > Jeg er igang med at lave et program som ekskveres når/hvis klokken
bliver
> > XX:XX
> >
> > Hvordan gøres det egentlig nemmest - hele funktionen funker nu - men
> hvordan
> > eksekveres den nemmest efter et bestemt tidspunkt?
>
> Jeg kan ikke se hvordan du kan undgå en timer for at aktivere din
funktion.
> Noget i stil med:
> procedure TForm1.Timer1Timer(Sender: TObject);
> begin
> if Timetostr(time)=edit1.text then
> Label1.Caption := 'Aktiveringen er startet';
> end;
> --
> PA
>
<>



Søren Mikkelsen (11-11-2001)
Kommentar
Fra : Søren Mikkelsen


Dato : 11-11-01 02:09

Hej Søren

Du kan sagtens bruge en timer. I ontimer-eventet sætter du timer-intervallet
til det halve af den tid, der er tilbage inden aktivering(eller til et eller
andet maximunm), indtil intervallet er så lille at
du opnår den præcision, du har behov for. Noget i denne retning:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
If Now >= TimeSet then
begin
Timer1.Enabled := False;
// Aktiver.
end else
begin
if Timer1.Interval < MinInterval then // MinInterval er præcision
angivet i millisec.
Timer1.interval := Trunc((TimeSet - Now) * 60 * 60 * 24 * 1000);
Else
Timer1.Interval := Trunc((TimeSet - Now) * 60 * 60 * 24 * 1000) Div
2;
// Her kan du også angive et maximumsinterval.
end;
end;

Du kunne også bruge en tråd med sleep

Venlig hilsen

Søren Mikkelsen


"Søren Aaholm Møller" <swdata@image.dk> skrev i en meddelelse
news:gJcH7.2943$Gt.193228@news000.worldonline.dk...
> Hej, Peter
>
> Pænt efternavn du har der Very close to mine
>
> Problemet ligger i at du har timeren liggende og køre (ustandsligt) og
> derved tage noget (i know - ikke meget) cpu-tid og hvad har vi. Det er der
> vel igen grund til...
>
> Jeg kunne forestille mig noget lignendende
>
> Procedure TForm1.CreateForm(Sender: TObject);
> Var
> TimeNow, TimeSet, TimeLeft: Integer;
> Begin
> TimeSet := Edit1.Text // 1900 ('alarm' sat til)
> TimeNow := TimeToStr(now) // 1700 (klokken er nu)
> // Pille kolon af så vi har dem som integers springer vi lige over \\
> *********'
> End;
>
> ******* -> Her en kode som udregner hvor mange sekunder der er fra kl.
17:00
> til kl. 19:00 - giver en timer antallet *1000 i interval - og herefter
> starter den...
>
> Burde sådan noget være muligt? - Og precisionsmæssigt realistisk?
>
> // Søren
>
> ----- Original Message -----
> From: "Peter Arnholm" <PeterArnholm@mail.dk>
> Newsgroups: dk.edb.programmering.pascal
> Sent: Saturday, November 10, 2001 2:47 PM
> Subject: Re: Nem løsning på tidsindstilling?
>
>
> > "Søren Aaholm Møller" <swdata@image.dk> skrev i en meddelelse
> > news:avTG7.1153$Gt.54080@news000.worldonline.dk...
> > > Hej,
> > >
> > > Jeg er igang med at lave et program som ekskveres når/hvis klokken
> bliver
> > > XX:XX
> > >
> > > Hvordan gøres det egentlig nemmest - hele funktionen funker nu - men
> > hvordan
> > > eksekveres den nemmest efter et bestemt tidspunkt?
> >
> > Jeg kan ikke se hvordan du kan undgå en timer for at aktivere din
> funktion.
> > Noget i stil med:
> > procedure TForm1.Timer1Timer(Sender: TObject);
> > begin
> > if Timetostr(time)=edit1.text then
> > Label1.Caption := 'Aktiveringen er startet';
> > end;
> > --
> > PA
> >
> <>
>
>



Gunnar Martensen (11-11-2001)
Kommentar
Fra : Gunnar Martensen


Dato : 11-11-01 15:24

Hej, Søren.

Du laver en tråd, som holder øje med, om klokken er XX:XX.
Tråden sætter du til at sove i det meste af dens liv (Sleep(100000))
Og tråden blokerer ikke programudførelsen iøvrigt.

Er klokken blevet det rigtige, fyrer du et event af.


Med venlig hilsen

Gunnar Martensen


"Søren Aaholm Møller" <swdata@image.dk> skrev i en meddelelse
news:avTG7.1153$Gt.54080@news000.worldonline.dk...
> Hej,
>
> Jeg er igang med at lave et program som ekskveres når/hvis klokken bliver
> XX:XX
>
> Hvordan gøres det egentlig nemmest - hele funktionen funker nu - men
hvordan
> eksekveres den nemmest efter et bestemt tidspunkt?
>
> Ex - programmet indstilles til at skulle køre funktionen "TrainNow;" når
> klokken bliver 19.00 (eller hvis computeren først bliver tændt kl. 19.05,

> eksekveres den der)....
>
> Man kunne selvfølgelig lave det med en timer som regnede lidt rundt - men
er
> der ikke en nemmere måde at gøre det på?
>
> // Søren
>
>



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408523
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste