AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi mit queryperformancecounter mehrere timer starten?
Thema durchsuchen
Ansicht
Themen-Optionen

mit queryperformancecounter mehrere timer starten?

Ein Thema von nicosch · begonnen am 25. Apr 2006
Antwort Antwort
nicosch

Registriert seit: 14. Apr 2006
6 Beiträge
 
#1

mit queryperformancecounter mehrere timer starten?

  Alt 25. Apr 2006, 11:17
Hallo

wahrscheinlich eine ganz dumme frage, aber ich finde die variable nicht, die mir anzeigt, wann genau ein bestimmtes item aus einer DXImageList nach dem befehl
Delphi-Quellcode:
 form3.dxdraw2.Restore;
form3.dximagelist2.Items[1].Draw(form3.DXDraw2.Surface, 0, 0, 0);
form3.dxdraw2.Flip;
(zuende) gemalt wurde. genau dann will ich einen timer (queryperformancecounter) starten und auf einen bestimmten tastendruck hin stoppen. ich könnte den timer natürlich genau dann starten, wenn ich den befehl zum malen losschicke und damit es genau ist die gemessene zeit (wieder mit queryperformancecounter) für die bearbeitung des befehls davon abziehen. dann allerdings verhakt sich alles, weil ich gleichzeitig einen timer starten und den anderen stoppen muss. aber ich bin mir nicht auch nicht sicher, ob ich durch den performancecounter meherere variablen beschriften kann, oder ob mein fehler woanders liegt:
Delphi-Quellcode:
var
  Form3: TForm3;
  {starttime: TTimeStamp;}
  Res, res2, t1, t2, t3, t4: int64;
  bOk: Bool;
  tt: integer;
  tt2: string;

implementation
procedure StartTimer1;
begin
bOk:= QueryPerformanceFrequency(res);
if bOk = true then
QueryPerformanceCounter(t1);
end;

procedure StartTimer2;
begin
bOk:= QueryPerformanceFrequency(res2);
if bOk = true then
QueryPerformanceCounter(t3);
end;

procedure StopTimer1;
begin
if bOk = true then
QueryPerformanceCounter(t2);
end;

procedure StopTimer2;
begin
if bOk = true then
QueryPerformanceCounter(t4);
end;

{$R *.dfm}

procedure TForm3.DXTimer1Timer(Sender: TObject; LagCount: Integer);


var
tt1, tt2: integer;
tt3, tt4: string;
begin
dxinput2.Keyboard.Update;
if dxinput2.Keyboard.Keys[Key_B]=true then
  begin
    ShowStimulus1;
    StartTimer1;
    StopTimer2;
      end;
if dxinput2.Keyboard.Keys[Key_N]=true then
  begin
    ShowStimulus2;
    StopTimer1;
    StartTimer2;
    tt1:=(t2-t1)*1000 div res;
    tt2:=(t3-t4)+1000 div res2;
    tt3:=inttostr(tt2);
    tt4:=inttostr(tt1);
    Form3.Caption:= tt4+'ms;'+tt3+'ms';

end;
danke, ihr seid die besten!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz