Bonjour,

Je m'interrogeais sur la meilleure manière de faire pour un objet singleton utilisant des procédures requérant des variables globales.

La structure actuelle est la suivante :
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
implementation
 
var
  UneSeuleInstance: TMyObject = nil;
  // ici les variables utiles à mes procédures, settées par mon objet
  procVar1, procVar2: integer;
 
procedure CallBack(aParam: integer);
begin
 //...
end;
 
procedure TMyObject.Create;
begin
  if Assigned(UneSeuleInstance)
  then raise Exception.Create('Une seule instance de TMyObject autorisée ; désolé.')
  else inherited Create;
  UneSeuleInstance:=self; // car singleton
  //...
end;
Serait-il plus "propre" de déclarer les procVar en :
1) class var en "compliquant" leur appel dans les CallBacks (TMyObject.procVar1) ?
2) membres privés de la classe, puisqu'une seule instance (UneSeuleInstance.procVar1) ?
3) autre ?

Merci pour vos avis !