CreateTaskEvent (TdbmEvent)
De Wiki1000
(Différences entre les versions)
(Une révision intermédiaire par un utilisateur est masquée) | |||
Ligne 1 : | Ligne 1 : | ||
− | <source lang='delphi'>class procedure CreateTaskEvent(const | + | <source lang='delphi'>class procedure CreateTaskEvent(const iEventId:string; iNames:Array of variant; iValues:Array of variant);</source> |
− | Cette méthode de classe crée un | + | Cette méthode de classe crée un événement de type tâche. |
− | Le type de l' | + | Le type de l'événement est TASK |
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
− | | | + | |iEventId |
− | | | + | |identifiant de l'événement |
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
|iNames | |iNames | ||
Ligne 19 : | Ligne 16 : | ||
|Tableau de valeurs de paramètre de l'évènement | |Tableau de valeurs de paramètre de l'évènement | ||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
Exemple : | Exemple : | ||
Ligne 28 : | Ligne 21 : | ||
<source lang='delphi'> | <source lang='delphi'> | ||
− | // | + | // Task to be triggered by an event |
Type | Type | ||
− | + | TMyOperationEvent = class(TitTask) | |
function Execute():Integer; | function Execute():Integer; | ||
− | function RegisterThisTask; | + | class function RegisterThisTask; |
+ | class procedure Start; | ||
end; | end; | ||
− | function | + | function TMyOperationEvent.Execute():Integer; |
var idx:Integer; S:string; aMsg:TdbmQueueMessage; | var idx:Integer; S:string; aMsg:TdbmQueueMessage; | ||
begin | begin | ||
Ligne 66 : | Ligne 60 : | ||
end; | end; | ||
− | function | + | class function TMyOperation.RegisterThisTask; |
var aReason:string; | var aReason:string; | ||
begin | begin | ||
− | if not SubscribeToEvent( | + | if not SubscribeToEvent(TMyOperation.OnStartId(),aReason) then |
showMessage('subscribe failed '+aReason); | showMessage('subscribe failed '+aReason); | ||
end; | end; | ||
− | + | class procedure TMyOperation.Start; | |
− | + | ||
− | procedure | + | |
begin | begin | ||
− | + | TdbmEvent.CreateTaskEvent(TMyOperation.OnStartId(), ['name1','name2'],['value1',2]); | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | TdbmEvent.CreateTaskEvent( | + | |
end; | end; | ||
</source> | </source> | ||
Ligne 89 : | Ligne 76 : | ||
* [[CreateCustomEvent (TdbmEvent)|CreateCustomEvent]] | * [[CreateCustomEvent (TdbmEvent)|CreateCustomEvent]] | ||
+ | * [[TTask.Subscribe_(TitTask)|Subscribe]] | ||
[[Category:TdbmEvent]] | [[Category:TdbmEvent]] |
Version actuelle en date du 5 décembre 2024 à 11:12
class procedure CreateTaskEvent(const iEventId:string; iNames:Array of variant; iValues:Array of variant);
Cette méthode de classe crée un événement de type tâche.
Le type de l'événement est TASK
iEventId | identifiant de l'événement |
iNames | Tableau de noms de paramètre de l'évènement |
iValues | Tableau de valeurs de paramètre de l'évènement |
Exemple :
// Task to be triggered by an event Type TMyOperationEvent = class(TitTask) function Execute():Integer; class function RegisterThisTask; class procedure Start; end; function TMyOperationEvent.Execute():Integer; var idx:Integer; S:string; aMsg:TdbmQueueMessage; begin Result := True; // Add messages to the log ProgressMessage('On Task event'); if Assigned(UserContext.TaskContext) and Assigned(userContext.TaskContext.EventContext) then begin userContext.TaskContext.AddMessage('Task context'); // aMsg := userContext.TaskContext.EventContext.ReceivedMsg; if Assigned(aMsg) then begin // get message parameters // userContext.TaskContext.AddMessage('Task context has message'); userContext.TaskContext.AddMessage(Format('Message parameter count:%d',[aMsg.Count])); for idx:=0 to aMsg.Count-1 do begin S := aMsg.DisplayStrings(idx); UserContext.TaskContext.AddMessage(S); end; end; end else ProgressMessage('no task context'); Result := True; end; class function TMyOperation.RegisterThisTask; var aReason:string; begin if not SubscribeToEvent(TMyOperation.OnStartId(),aReason) then showMessage('subscribe failed '+aReason); end; class procedure TMyOperation.Start; begin TdbmEvent.CreateTaskEvent(TMyOperation.OnStartId(), ['name1','name2'],['value1',2]); end;
Voir aussi :