AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DXDraw auslesen

Ein Thema von nicosch · begonnen am 14. Apr 2006 · letzter Beitrag vom 17. Apr 2006
Antwort Antwort
nicosch

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

DXDraw auslesen

  Alt 14. Apr 2006, 14:24
Hi,

ich bin noch ein ziemlicher anfänger und habe ein problem, bei dem ich nicht weiterkomme:
für ein projekt muss ich die zeit vom erscheinen eines bildes bis zum tastendruck möglichst genau messen. ein bild erscheint wiederum durch einen tastendruck. im groben also so:
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if not DXDraw1.CanDraw then
  Exit;
  DXInput1.Update;
  if Form1.DXInput1.Keyboard.Keys[Key_B] = true then
  begin
    Form1.DXDraw1.Restore;
    DXImageList1.Items[1].draw(DXDraw1.Surface, 0, 0, 0);
    DXDraw1.Flip;
  end;
  if Form1.DXInput1.Keyboard.Keys[Key_N] = true then
  begin
    Form1.DXDraw1.Restore;
    DXImageList1.Items[0].draw(DXDraw1.Surface, 0, 0, 0);
    DXDraw1.Flip;
  end;
end;
Gibt es eine Variable, die genau das Ende des "Malens" anzeigt, die ich als startpunkt für die messung nehmen kann, etwas in der art:
Delphi-Quellcode:
if Form1.DXDraw1.xxx= true then
  begin
    hrt_timer_reset(ExacTicks);
    hrt_timer_start(ExacTicks);
    ...
  end;
Wenn mir jemand helfen kann, wäre das super (vielleicht auch mit einer guten (möglichst exakten) zeitmess-unit oder etw. ähnlichem)?
  Mit Zitat antworten Zitat
pacman1986

Registriert seit: 11. Feb 2005
Ort: Kirchhain
498 Beiträge
 
Delphi 2005 Personal
 
#2

Re: DXDraw auslesen

  Alt 14. Apr 2006, 15:22
nimm die zeit vor dem malen
und danach nimmst du die zeit nach dem malen und der rest ist einfachste mathematik
Christian N.
Designed to make a difference

najjaronline.de
  Mit Zitat antworten Zitat
nicosch

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

Re: DXDraw auslesen

  Alt 14. Apr 2006, 15:29
meine frage war, wie ich die zeit vor und nach dem malen nehmen kann...
  Mit Zitat antworten Zitat
pacman1986

Registriert seit: 11. Feb 2005
Ort: Kirchhain
498 Beiträge
 
Delphi 2005 Personal
 
#4

Re: DXDraw auslesen

  Alt 14. Apr 2006, 15:33
Delphi-Quellcode:
var time1,time2 : tdatetime;
begin
    time1 := NOW();
    Form1.DXDraw1.Restore;
    DXImageList1.Items[1].draw(DXDraw1.Surface, 0, 0, 0);
    DXDraw1.Flip;
    time2 := NOW();
    showmessage(TimeToStr(time2-time1));
end;
müsste gehen wobei ich mit timetostr nicht so sicher bin

edit hier um ms und sec anzuzeigen

showmessage(formatdatetime('ss:zzz',time2-time1));
Christian N.
Designed to make a difference

najjaronline.de
  Mit Zitat antworten Zitat
nicosch

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

Re: DXDraw auslesen

  Alt 17. Apr 2006, 18:10
funzt leider nicht,

wahrscheinlich weil solche operatoren mit zeiten nicht möglich sind: showmessage(TimeToStr(time2-time1)); oder weil es einfach zu schnell geht.

aber ich habe auch die verschiedenen zeitzuweisungen weiter auseinander gelegt (jeweils auf einen tastendruck und dann ein paar sek gewartet) und dennoch gehts nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#6

Re: DXDraw auslesen

  Alt 17. Apr 2006, 18:18
Hi kannst es auch mit MSDN-Library durchsuchenQueryPerformanceFrequency und MSDN-Library durchsuchenQueryPerformanceCounter machen. Sollte noch genauer sein.
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  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 22:21 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