IDEIntf: added TAbstractIDEOptions handler destroy

git-svn-id: trunk@44332 -
This commit is contained in:
mattias 2014-03-03 09:47:13 +00:00
parent bc1ecef605
commit 45e9bd0b9c

View File

@ -49,7 +49,8 @@ type
iohBeforeRead, iohBeforeRead,
iohAfterRead, iohAfterRead,
iohBeforeWrite, iohBeforeWrite,
iohAfterWrite iohAfterWrite,
iohDestroy
); );
TIDEOptionsHandlers = set of TIDEOptionsHandler; TIDEOptionsHandlers = set of TIDEOptionsHandler;
@ -72,6 +73,7 @@ type
public public
constructor Create; constructor Create;
destructor Destroy; override; destructor Destroy; override;
procedure BeforeDestruction; override;
class function GetGroupCaption: string; virtual; abstract; class function GetGroupCaption: string; virtual; abstract;
class function GetInstance: TAbstractIDEOptions; virtual; abstract; class function GetInstance: TAbstractIDEOptions; virtual; abstract;
@ -89,6 +91,8 @@ type
procedure RemoveHandlerBeforeWrite(const Handler: TIDEOptionsWriteEvent); procedure RemoveHandlerBeforeWrite(const Handler: TIDEOptionsWriteEvent);
procedure AddHandlerAfterWrite(const Handler: TIDEOptionsWriteEvent; const AsFirst: boolean = true); // AsFirst means: first to call procedure AddHandlerAfterWrite(const Handler: TIDEOptionsWriteEvent; const AsFirst: boolean = true); // AsFirst means: first to call
procedure RemoveHandlerAfterWrite(const Handler: TIDEOptionsWriteEvent); procedure RemoveHandlerAfterWrite(const Handler: TIDEOptionsWriteEvent);
procedure AddHandlerDestroy(const Handler: TNotifyEvent; const AsFirst: boolean = true); // AsFirst means: first to call
procedure RemoveHandlerDestroy(const Handler: TNotifyEvent);
property OnBeforeRead: TNotifyEvent read FOnBeforeRead write FOnBeforeRead; property OnBeforeRead: TNotifyEvent read FOnBeforeRead write FOnBeforeRead;
property OnAfterRead: TNotifyEvent read FOnAfterRead write FOnAfterRead; property OnAfterRead: TNotifyEvent read FOnAfterRead write FOnAfterRead;
@ -765,6 +769,12 @@ begin
inherited Destroy; inherited Destroy;
end; end;
procedure TAbstractIDEOptions.BeforeDestruction;
begin
inherited BeforeDestruction;
fHandlers[iohDestroy].CallNotifyEvents(Self);
end;
procedure TAbstractIDEOptions.DoBeforeRead; procedure TAbstractIDEOptions.DoBeforeRead;
begin begin
if Assigned(FOnBeforeRead) then if Assigned(FOnBeforeRead) then
@ -847,6 +857,17 @@ begin
fHandlers[iohAfterWrite].Remove(TMethod(Handler)); fHandlers[iohAfterWrite].Remove(TMethod(Handler));
end; end;
procedure TAbstractIDEOptions.AddHandlerDestroy(const Handler: TNotifyEvent;
const AsFirst: boolean);
begin
fHandlers[iohDestroy].Add(TMethod(Handler),AsFirst);
end;
procedure TAbstractIDEOptions.RemoveHandlerDestroy(const Handler: TNotifyEvent);
begin
fHandlers[iohDestroy].Remove(TMethod(Handler));
end;
initialization initialization
FIDEEditorGroups := nil; FIDEEditorGroups := nil;