TSppImplementation = class(TObject)
private
FOwner: TSppPlugin;
+ FLoaded: Boolean;
public
constructor Create(Owner: TSppPlugin); virtual;
- procedure Load; virtual; abstract;
+ destructor Destroy; override;
+ procedure Load; virtual;
function GetImage(const Ghost: String;
Surface: integer; Scope: TScope): TSppImage; virtual; abstract;
- procedure Unload; virtual; abstract;
+ procedure Unload; virtual;
property Owner: TSppPlugin read FOwner;
procedure Configure; virtual; abstract;
end;
FOwner := Owner;
end;
+destructor TSppImplementation.Destroy;
+begin
+ if FLoaded then
+ Unload;
+ inherited;
+end;
+
+procedure TSppImplementation.Load;
+begin
+ FLoaded := true;
+end;
+
+procedure TSppImplementation.Unload;
+begin
+ FLoaded := false;
+end;
+
{ TSppImage }
constructor TSppImage.Create;
procedure TSppImplementation1.Load;
begin
- inherited;
FSppLoad(PChar(ExtractFilePath(Owner.ModuleName)));
+ inherited Load;
end;
procedure TSppImplementation1.Unload;
begin
- inherited;
FSppUnload;
+ inherited Unload;
end;
end.