Publication par le contexte (publish/subscribe)
De Wiki1000
(Différences entre les versions)
(Page créée avec « Le contexte utilisateur publie certains évènements. Ces messages sont publiés sous le sujet : //sys/nom_de_l_évènement {|class="wikitable" |- !Evènement !Déclen... ») |
|||
Ligne 28 : | Ligne 28 : | ||
<source lang="delphi"> | <source lang="delphi"> | ||
− | |||
unit TestMultisociete; | unit TestMultisociete; | ||
interface | interface | ||
Type | Type | ||
− | + | TRegisterTestMultiSociete = Class(TitObject) | |
public | public | ||
Procedure HandlerDatabaseChange(const iTopic:string; const iEvent:Variant); | Procedure HandlerDatabaseChange(const iTopic:string; const iEvent:Variant); | ||
Procedure HandlerSocietyChange(const iTopic:string; const iEvent:Variant); | Procedure HandlerSocietyChange(const iTopic:string; const iEvent:Variant); | ||
− | Class Procedure | + | Class Procedure Initialize; |
end; | end; | ||
Implementation | Implementation | ||
− | { | + | {TRegisterTestMultiSociete} |
− | Procedure | + | Procedure TRegisterTestMultiSociete.HandlerDatabaseChange(const iTopic:string; const iEvent:Variant); |
//Procedure HandlerDatabaseChange(const iTopic:string; iEvent:Variant); | //Procedure HandlerDatabaseChange(const iTopic:string; iEvent:Variant); | ||
begin | begin | ||
Ligne 50 : | Ligne 49 : | ||
end; | end; | ||
− | Procedure | + | Procedure TRegisterTestMultiSociete.HandlerSocietyChange(const iTopic:string; const iEvent:Variant); |
//Procedure HandlerSocietyChange(const iTopic:string; const iEvent:Variant); | //Procedure HandlerSocietyChange(const iTopic:string; const iEvent:Variant); | ||
begin | begin | ||
Ligne 56 : | Ligne 55 : | ||
end; | end; | ||
− | Class Procedure | + | Class Procedure TRegisterTestMultiSociete.Initialize; |
− | //Class Procedure | + | //Class Procedure Initialize; |
− | var inst: | + | var inst:TRegisterTestMultiSociete; |
begin | begin | ||
+ | showMessage('Register'); | ||
inst := UserContext.getObject('handlers'); | inst := UserContext.getObject('handlers'); | ||
if not Assigned(inst) then | if not Assigned(inst) then | ||
begin | begin | ||
− | inst := | + | inst := TRegisterTestMultiSociete.Create; |
UserContext.SetObject('handlers',inst); | UserContext.SetObject('handlers',inst); | ||
inst.subscribe('//sys/AfterDatabaseChange','HandlerDatabaseChange'); | inst.subscribe('//sys/AfterDatabaseChange','HandlerDatabaseChange'); | ||
Ligne 69 : | Ligne 69 : | ||
end; | end; | ||
end; | end; | ||
− | |||
end. | end. |
Version actuelle en date du 1 juillet 2014 à 10:50
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 :