Publication par le contexte (publish/subscribe)

De Wiki1000

Le contexte utilisateur publie certains évènements.

Ces messages sont publiés sous le sujet :

//sys/nom_de_l_évènement
Evènement Déclenchement
BeforeDisconnect
AfterConnect
BeforeDatabaseChange La base de données par défaut va changer
AfterDatabaseChange La base de données par défaut à changé
AfterShareContextChange Le contexte société à changé


unit TestMultisociete;
interface
 
Type
  TRegisterTestMultiSociete = Class(TitObject)
  public
    Procedure HandlerDatabaseChange(const iTopic:string; const iEvent:Variant);
    Procedure HandlerSocietyChange(const iTopic:string; const iEvent:Variant);
    Class Procedure Initialize;
  end;
 
Implementation
 
{TRegisterTestMultiSociete}
 
Procedure TRegisterTestMultiSociete.HandlerDatabaseChange(const iTopic:string; const iEvent:Variant);
//Procedure HandlerDatabaseChange(const iTopic:string; iEvent:Variant);
begin
  ShowMessage('DatabaseChange');
end;
 
Procedure TRegisterTestMultiSociete.HandlerSocietyChange(const iTopic:string; const iEvent:Variant);
//Procedure HandlerSocietyChange(const iTopic:string; const iEvent:Variant);
begin
  ShowMessage('SocietyChange');
end;
 
Class Procedure TRegisterTestMultiSociete.Initialize;
//Class Procedure Initialize;
var inst:TRegisterTestMultiSociete;
begin
  showMessage('Register');
  inst := UserContext.getObject('handlers');
  if not Assigned(inst) then
   begin
     inst := TRegisterTestMultiSociete.Create;
     UserContext.SetObject('handlers',inst);
     inst.subscribe('//sys/AfterDatabaseChange','HandlerDatabaseChange');
     inst.subscribe('//sys/AfterShareContextChange','HandlerSocietyChange');
   end;
end;
 
end.

Voir aussi :

Outils personnels