Avatar billede kipolaks Nybegynder
24. maj 2002 - 21:52 Der er 6 kommentarer og
1 løsning

Noget med en timer....

Hejsa!
jeg har en record hvor jeg gerne vil smide en timer til hvert objekt jeg smider i den ...hmmm det var vist ik lige fremragende formuleret...

Eks:

mokka = record
navn : string;
alder : integer;
Timer : TTimer;  <-- her er der så en timer
end;

mit spm er så, hvordan laver jeg en procedure/function der andvender timer's onTimer event?
Avatar billede jekk Nybegynder
24. maj 2002 - 22:00 #1
er det ikke mere en timer-værdi, du vil gemme i hver record ?

hvornår skal timeren så aktiveres ? hvad styrer det ?

normalt placerer jeg et timer-object på min form og så i Createform, så sætter jeg den passiv -
først når en given hændelse opstår (f.eks. du henter en record) så gøres timeren aktiv med den ønskede timer-værdi - og i onTimer event, udfører jeg det der skal udføres og sætter timeren passiv ...
o.s.v.
er det noget sådan du vil ?
beskriv lidt mere - evt. med et eksempel...
Avatar billede kipolaks Nybegynder
24. maj 2002 - 22:08 #2
OK..
det den skal bruge til er et lille spil jeg er ved at lave..
i spillet er der en masse væsener du kan flytte lidt rundt på skærmen ved klik med musen. timeren skal aktiveres hvis væsenet skal flytte sig til et andet punkt.

EKS:

mokka = record
navn : string;
X,Y : integer;  <-- Kordinater
Timer : TTimer;  <-- timer til styring af af kordinat
end;

når Væsenet er 'valgt' kan man så med et højreklik på formen kan man så bestemme de nye kordinater og væsenet rykker dertil ved hjælp af timeren(alt det er lavet) jeg vil bare gerne lave en timer til hvert væsen (lige nu bliver de ale styret af én men der går ged i det!)
Hvad gør jeg!
Avatar billede doc404 Novice
25. maj 2002 - 00:12 #3
du kan ikke placerer en timer i en record - du skal lave din record om til et object
Avatar billede cms Nybegynder
25. maj 2002 - 01:18 #4
uden at læse dit andet indlæg, så kalder du det sådan her:

type
  TMokka = record
    Navn: String;
    X, Y: Integer;
    Timer: TTimer;
  end;

  TDummy = class
  public
    procedure SignalTimer(Sender: TObject);
  end;

procedure TDummy.SignalTimer(Sender: TObject);
begin
  //Koden, der bliver udført, når TMokka.Timer når sit Interval.
end;

var
  Mokka1, Mokka2: TMokka;
  Dummy: TDummy;

begin
  Dummy := TDummy.Create;

  Mokka1.Timer := TTimer.Create(nil);
  Mokka1.Timer.Interval := 5000;
  Mokka1.Timer.OnTimer := Dummy.SignalTimer;
  Mokka1.Timer.Enabled := True;

  Mokka2.Timer := TTimer.Create(nil);
  Mokka2.Timer.Interval := 5000;
  Mokka2.Timer.OnTimer := Dummy.SignalTimer;
  Mokka2.Timer.Enabled := True;

  //...
end;
Avatar billede dcgeek Nybegynder
27. maj 2002 - 20:01 #5
Jeg kan ikke helt forstå dit spm. Vil du lave et program, hvor der er en procedure der gør det samme som Timer1 gør?
Hvis ja, så gøres det sådan her:
(Eks. med en button1)

procedure Form1.Timer1Timer(Sender: TObject);
begin
form1.caption := 'ændret';
end;

procedure form1.Button1Click(sender: Tobject);
begin
timer1Timer(sender);
end;

end;
Avatar billede kipolaks Nybegynder
29. maj 2002 - 18:43 #6
cms>>> skriv lige et svar, så får du point...
Avatar billede cms Nybegynder
31. maj 2002 - 14:11 #7
oki :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester