//更新
type
TTaskUpdate = class(System.Object)
public
static function TaskUpdateNotifies : TDotNetObjectList;
static procedure TaskUpdateNotify(name: string);
end;
//更新回调(事件源功能名)
TTaskUpdateDelegate = procedure(name: string) of Object;
implementation
var
FTaskUpdateNotifies: TDotNetObjectList;
static function TTaskUpdate.TaskUpdateNotifies : TDotNetObjectList;
begin
if (FTaskUpdateNotifies = nil) then
FTaskUpdateNotifies := TDotNetObjectList.Create;
begin
Result := FTaskUpdateNotifies;
exit
end
end;
static procedure TTaskUpdate.TaskUpdateNotify(name: string);
var
i:integer;
obj:Object;
item:TTaskUpdateDelegate;
begin
if TaskUpdateNotifies=nil then exit;
for i:=0 to TaskUpdateNotifies.Count-1 do
begin
obj:=TaskUpdateNotifies.Items;
if (obj is TTaskUpdateDelegate) then
begin
item:=obj as TTaskUpdateDelegate;
item.Invoke(name);
end;
end;
end;