« OnCreateEventId (class) » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| (Une version intermédiaire par le même utilisateur non affichée) | |||
| Ligne 13 : | Ligne 13 : | ||
<source lang='delphi'> | <source lang='delphi'> | ||
Type | |||
MyClass = class(TdbObject) | |||
//... | |||
property CanStart:boolean; | |||
end; | |||
MyTask = class(TitTask) | |||
Function Execute():boolean; | |||
Function doExecute(obj:TitObject):boolean; | |||
end; | |||
Function MyTask.Execute():boolean; | |||
var aMsg:TdbmQueueMessage; | |||
begin | |||
Result := False; | |||
aMsg := ReceivedMsg as TdbmQueueMessage; | |||
if Assigned(aMsg) then | |||
begin | |||
if Assigned(SourceObject) then | |||
begin | |||
Result := doExecute(SourceObject); | |||
end; | |||
end; | |||
end; | |||
Function MyTask.doExecute(obj:TitObject):boolean; | |||
begin | |||
if obj is MyClass then | |||
begin | |||
if (obj as MyClass).CanStart then | |||
begin | |||
AddMessage(Format('object %s ...',[(obj as MyClass).Caption])); | |||
// do something ... | |||
end | |||
else | |||
begin | |||
AddMessage(Format('objet %s ne peut pas ...'),[(obj as MyClass).Caption])); | |||
end; | |||
Result := True; | |||
end | |||
else Result := False; | |||
end; | |||
//procedure RegisterTasks; | |||
begin | |||
MyClass.RegisterOnCreateEvent(); | |||
MyTask.Subscribe( | |||
MyClass.OnCreateEventId(), | |||
[],[] | |||
); | |||
end; | |||
</source> | </source> | ||
Voir aussi : | Voir aussi : | ||
* [[RegisterOnCreateEvent_(class)|RegisterOnCreateEvent]] | |||
* [[OnChangeEventId_(class)|OnChangeEventId]] | * [[OnChangeEventId_(class)|OnChangeEventId]] | ||
Dernière version du 5 décembre 2024 à 09:50
(Version 11)
class function OnCreateEventID():string;
Retire l'identifiant de l'évènement de création d'un objet de cette classe.
| Return | L'identifiant de l'évènement |
Exemple
Type
MyClass = class(TdbObject)
//...
property CanStart:boolean;
end;
MyTask = class(TitTask)
Function Execute():boolean;
Function doExecute(obj:TitObject):boolean;
end;
Function MyTask.Execute():boolean;
var aMsg:TdbmQueueMessage;
begin
Result := False;
aMsg := ReceivedMsg as TdbmQueueMessage;
if Assigned(aMsg) then
begin
if Assigned(SourceObject) then
begin
Result := doExecute(SourceObject);
end;
end;
end;
Function MyTask.doExecute(obj:TitObject):boolean;
begin
if obj is MyClass then
begin
if (obj as MyClass).CanStart then
begin
AddMessage(Format('object %s ...',[(obj as MyClass).Caption]));
// do something ...
end
else
begin
AddMessage(Format('objet %s ne peut pas ...'),[(obj as MyClass).Caption]));
end;
Result := True;
end
else Result := False;
end;
//procedure RegisterTasks;
begin
MyClass.RegisterOnCreateEvent();
MyTask.Subscribe(
MyClass.OnCreateEventId(),
[],[]
);
end;
Voir aussi :