Bonsoir,

Je cherche à faire une Classe Chrono afin de pouvoir l'utiliser de façon simple dans mon programme. Ce que je souhaite faire, c'est utiliser des méthodes statiques afin de ne pas avoir à instancier d'objet.

J'ai ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
unit Chrono;
 
interface
 
uses Windows;
 
type TChrono=class
    private
      FFrequency    : Int64    ;    // Fréquence du compteur hautes performances.
      FStart, FStop : Int64    ;    // Valeurs du compteur au début et à la fin du chrono.
    public
      class Procedure Start;
      class Function Stop:Extended;
end;
 
 
implementation
 
class procedure TChrono.Start;
begin
  QueryPerformanceFrequency(FFrequency);
  QueryPerformanceCounter(FStart) ;
end;
 
class function TChrono.Stop:Extended;
begin
  Result:=(FStop-FStart)/FFrequency;
end;
 
end.
Et j'ai ces messages d'erreurs :

[Erreur] TChrono.pas(22): Variable instance 'FFrequency' inaccessible ici
[Erreur] TChrono.pas(23): Variable instance 'FStart' inaccessible ici
[Erreur] TChrono.pas(27): Variable instance 'FStop' inaccessible ici
[Erreur] TChrono.pas(27): Variable instance 'FFrequency' inaccessible ici
Est-ce possible de faire ce que je veux ? On utiliserai ainsi mon Chrono de cette façon :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
procedure TForm1.Button1Click(Sender: TObject);
var
Temps:Extended;
begin
  TChrono.Start;
  //Traitement
  Temps:=TChrono.Stop;
end;

Merci d'avance
Cordialement