Avatar billede mora Nybegynder
21. juli 2001 - 13:44 Der er 13 kommentarer og
1 løsning

reaction time

Jeg vil gerne lave et lille prog der måler tiden fra timer2 udløber til button2 trykkes.
Men det ser ud til timer1 tæller alt for langsomt ?
Se. evt. http://www.asciitable.com/ der er en i js


er der en måde at gøre dette hurtigere ? (Vil en thread hjælpe)
Avatar billede ziron Nybegynder
21. juli 2001 - 13:46 #1
kun kan bare sætte tiden hurtiger/langsomer på timer 1...

/ZIRON
Avatar billede mora Nybegynder
21. juli 2001 - 13:48 #2
Min unit

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Timer1: TTimer;
    Timer2: TTimer;
    Button2: TButton;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  react : integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Randomize;
button1.Enabled:=False;
button2.Enabled:=True;
label2.Caption:=\'WAIT\';
label2.Color:=clGreen;
label2.Visible:=True;
timer2.Interval:=random(5000)+2000;
timer2.Enabled:=True;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
label2.Caption:=\'TRYK STOP!\';
label2.Color:=clRed;
timer1.Enabled:=True;
timer2.Enabled:=False;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
timer2.enabled:=False;
label2.Visible:=false;
timer1.Enabled:=False;
showmessage(inttostr(react*10));
button2.Enabled:=False;
button1.Enabled:=True;
react:=0;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
inc(react);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
react:=0;
end;

end.
Avatar billede mora Nybegynder
21. juli 2001 - 13:48 #3
timer1 er sat til 10 nu, før var den 1
men den når langfra op på 1000 for hvert sec.
Avatar billede ziron Nybegynder
21. juli 2001 - 13:57 #4
kan du ikke sende hele dit projekt til

ziron@wanadoo.dk

/ZIRON
Avatar billede ziron Nybegynder
21. juli 2001 - 14:09 #5
du har dette med i uses Variants hvad er det til???

/ZIRON
Avatar billede mora Nybegynder
21. juli 2001 - 14:10 #6
Har ikke selv tilføjet noget i Uses.
Har sendt det til din mail.
Avatar billede ziron Nybegynder
21. juli 2001 - 14:12 #7
når okay men har fjenet den og det ser da ud til at virke... den når at tælle til ca. 500 og jeg synes da jeg trykker hurtigt...

/ZIRON
Avatar billede ziron Nybegynder
21. juli 2001 - 14:21 #8
mora >> mail tilbage sendt :-)

/ZIRON
Avatar billede speedy Nybegynder
22. juli 2001 - 12:39 #9
du skal ikke bruge en timer. Den alt for upræcis.

brug GetTickCount, som returnerer tiden i millisekunder siden windows startede.

gem GetTickCount når farven skifter, og når der bliver trykket på knappen skal du trække GetTickCount fra den du gemte, det er meget meget mere præcist.

Hvis du vil have et eksempel så sig til.

/SpEeDy
Avatar billede speedy Nybegynder
22. juli 2001 - 12:50 #10
jeg har sendt eksempel til din mail.

/SpEeDy
Avatar billede speedy Nybegynder
23. juli 2001 - 22:24 #11
hvad så, hvad siger du ?
Avatar billede unclebug Nybegynder
26. juli 2001 - 12:13 #12
Hvis du måler reaktionstid er det nok sjovere at have en mere præcis timing end GetTickCount kan give. QueryPerformanceCounter (og GetPerformanceFrequency) kan give dig en superpræcis timing. Check dem selv, men hvis du har brug for hjælp så bare sig til.


Avatar billede mora Nybegynder
26. juli 2001 - 17:44 #13
Nu har speedy rykket mig 2 gange på 4 dage, så må jeg helere komme herind...

Avatar billede speedy Nybegynder
26. juli 2001 - 17:47 #14
jeg har sku\' da ikke rykket 2 gange!!

Jeg har bare pænt spurgt i dag hvad du sagde til svaret siden der går flere dage uden der sker noget.
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