OSDN Git Service

・将来の拡張のため、TBoardPlugIn にデストラクタを設けた。
authoryoffy <yoffy>
Wed, 3 Dec 2003 18:05:11 +0000 (18:05 +0000)
committeryoffy <yoffy>
Wed, 3 Dec 2003 18:05:11 +0000 (18:05 +0000)
 これによりプラグインをプログラマブルに開放できるが、
 プラグインの解放前に、プラグインに関連した TBoard および TThreadItem の開放を忘れないこと。

ExternalBoardManager.pas

index 9fbe0f7..eb95992 100644 (file)
@@ -44,6 +44,8 @@ type
                constructor     CreateFromName( inName : string );
                // \83\82\83W\83\85\81[\83\8b\83n\83\93\83h\83\8b\82ð\8ew\92è\82µ\82Ä\8dì\90¬
                constructor     CreateFromModule( inModule : HMODULE );
+               // \83f\83X\83g\83\89\83N\83^
+               destructor      Destroy; override;
 
                // \83v\83\89\83O\83C\83\93\82Ì\83p\83X\82ð\8ew\92è\82µ\82Ä\83\8d\81[\83h
                procedure       LoadFromPath( inPath : string );
@@ -213,6 +215,18 @@ begin
 end;
 
 // *************************************************************************
+// \83f\83X\83g\83\89\83N\83^
+// *************************************************************************
+destructor     TBoardPlugIn.Destroy;
+begin
+
+       FreeLibrary( FModule );
+
+       inherited;
+
+end;
+
+// *************************************************************************
 // \83v\83\89\83O\83C\83\93\82Ì\83p\83X\82ð\8ew\92è\82µ\82Ä\83\8d\81[\83h
 // *************************************************************************
 procedure TBoardPlugIn.LoadFromPath(
@@ -371,12 +385,12 @@ var
 begin
 
        if Assigned( FGetRes ) then begin
-        try
+                               try
                        tmp                     := FGetRes( threadItem, inNo );
                        Result  := string( tmp );
-        finally
+                               finally
                        DisposeResultString( tmp );
-        end;
+                               end;
        end;
 
 end;
@@ -393,12 +407,12 @@ var
 begin
 
        if Assigned( FGetHeader ) then begin
-        try
+               try
                        tmp                     := FGetHeader( threadItem, PChar( inOptionalHeader ) );
                        Result  := string( tmp );
-        finally
+               finally
                        DisposeResultString( tmp );
-        end;
+               end;
        end;
 
 end;