Timer (zur Zeitmessung)

Svartr

Grünschnabel
Hallo,

ich habe noch nie mit einem Timer gearbeitet und muß nun die Zeit messen, welche das Programm für eine best. Aktion benötigt.

Ich habe das zum Test mal so versucht:

Eine globale Variable int a, dann den Timer mit

Timer1->Interval = 100;
Timer1->Enabled = false;
Timer1->Enabled = true;
Timer1;
--- schleife zum zeitvertreib ---
ShowMessage(a);

zurückgesetzt und im Timer selbst:

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
a++;
}

a bleibt dabei aber immer 0 ... ich scheine da etwas grundlegendes verkehrt zu machen. Würde mich über einen kleinen Codeschnippsel freuen ;)

Schonmal Danke,

Svartr

Ps: Ich verwende den Borland C++ Builder 6
 
Ich antworte mir mal selbst.

Da ich das mit dem Timer nicht hinbekommen habe mache ich das nun folgendermaßen:

Code:
#include <time>
(...)
double zeit = 0.0, start;
start = clock();
(...)
zeit += clock() - start;
ShowMessage(zeit);
(...)

Ein Problem: wie mache ich aus dem Wert, welcher durch clock() gewonnen wird, einen lesabern Wert - am besten in ms?


Edit: Ich habs - den Wert einfach durch CLOCKS_PER_SEC teilen.
 
Zuletzt bearbeitet:
nur zur Info: wenn du was mit nem Timer machen willst, und wo anders
in ner Schleife was laufen läßt, dann solltest du nach jedem Schleifen-
durchgang Application->ProcessMessages() rufen.

Hintergrund. Das System ist blockiert, wenn du in ner Schleife hängst,
du mußt Windows erlauben, Nachrichten zu verarbeiten, wie eben
z.B. WM_TIMER.

Greets,
BadMourning
 

Neue Beiträge

Zurück