OSDN Git Service

ネットワークがオフラインの時に、送信で例外が発生する不具合の修正
[gikonavigoeson/gikonavi.git] / SambaTimer.pas
index 29734db..713ac36 100644 (file)
@@ -12,12 +12,11 @@ type
     }
     TSambaTimer = class(TTimer)
     private
-        FBoard : TBoard;
         FKey : string;
         FWriteDeta : TDateTime;
         FSambaInterval : Integer;
         procedure ReadSambaTime;
-        procedure ReadSettingTime();
+        procedure ReadSettingTime(Board: TBoard);
     public
         function SetBoard(Board : TBoard): integer;
         function CheckSambaTime(ATime: TDateTime): Boolean;
@@ -39,13 +38,12 @@ uses
 }
 function TSambaTimer.SetBoard(Board : TBoard): Integer;
 begin
-    Result := 0;
+    Result := -1;
     Enabled := False;
-    if (Board <> nil) then begin
-        FBoard := Board;
+    if (GikoSys.Setting.UseSamba) and (Board <> nil) then begin
         // \94Â\82ª2ch\82É\91®\82µ\82Ä\82¢\82é\8fê\8d\87\81C\83^\83C\83}\81[\82ð\97L\8cø\82É\82·\82é
-        if (FBoard.Is2ch) then begin
-            ReadSettingTime;
+        if (Board.Is2ch) then begin
+            ReadSettingTime(Board);
             ReadSambaTime;
             Interval := 500;
             Result := FSambaInterval;
@@ -55,7 +53,7 @@ end;
 {
 \brief Samba\82Ì\8bK\92è\92l\82ð\93Ç\82Ý\8d\9e\82Þ
 }
-procedure TSambaTimer.ReadSettingTime();
+procedure TSambaTimer.ReadSettingTime(Board: TBoard);
 var
        ini :TMemIniFile;
        Protocol, Host, Path, Document, Port, Bookmark : string;
@@ -63,20 +61,24 @@ begin
        Enabled := false; //\8co\89ß\95b\90\94\95\\8e¦Timer\82ðOff\82É\82·\82é
        ini := TMemIniFile.Create(GikoSys.GetSambaFileName);
        try
-        // \82Ü\82¸BBSID\82Å\8cÂ\95Ê\82É\90Ý\92è\82³\82ê\82Ä\82¢\82È\82¢\82©\8am\94F\82·\82é
-        FKey := '@' + FBoard.BBSID;
-        FSambaInterval := ini.ReadInteger('Setting', FKey, -1);
-        if (FSambaInterval = -1) then begin
-            // \90Ý\92è\82³\82ê\82Ä\82¢\82È\82¢\82Ì\82Å\83z\83X\83g\96¼\82Ì\90Ý\92è\82ð\8eæ\82Á\82Ä\82­\82é
-            GikoSys.ParseURI( FBoard.URL, Protocol, Host, Path, Document, Port, Bookmark );
-            FKey := Copy(Host, 1, AnsiPos('.', Host) - 1);
+        if (Board <> nil) then begin
+            // \82Ü\82¸BBSID\82Å\8cÂ\95Ê\82É\90Ý\92è\82³\82ê\82Ä\82¢\82È\82¢\82©\8am\94F\82·\82é
+            FKey := '@' + Board.BBSID;
+            FSambaInterval := ini.ReadInteger('Setting', FKey, -1);
+            if (FSambaInterval = -1) then begin
+                // \90Ý\92è\82³\82ê\82Ä\82¢\82È\82¢\82Ì\82Å\83z\83X\83g\96¼\82Ì\90Ý\92è\82ð\8eæ\82Á\82Ä\82­\82é
+                GikoSys.ParseURI( Board.URL, Protocol, Host, Path, Document, Port, Bookmark );
+                FKey := Copy(Host, 1, AnsiPos('.', Host) - 1);
+                FSambaInterval := ini.ReadInteger('Setting', FKey, -1);
+                       //\90Ý\92è\82³\82ê\82Ä\82¢\82È\82¢\82Æ\82«\82Í\81A\83t\83@\83C\83\8b\82É\8f\91\82«\82½\82·\81B
+                       if FSambaInterval = -1 then begin
+                    FSambaInterval := 0;
+                           ini.WriteInteger('Setting', FKey, 0);
+                           ini.UpdateFile;
+                       end;
+            end;
+        end else begin
             FSambaInterval := ini.ReadInteger('Setting', FKey, -1);
-                   //\90Ý\92è\82³\82ê\82Ä\82¢\82È\82¢\82Æ\82«\82Í\81A\83t\83@\83C\83\8b\82É\8f\91\82«\82½\82·\81B
-                   if FSambaInterval = -1 then begin
-                FSambaInterval := 0;
-                           ini.WriteInteger('Setting', FKey, 0);
-                           ini.UpdateFile;
-                   end;
         end;
        finally
                ini.Free;
@@ -134,7 +136,7 @@ end;
 }
 function TSambaTimer.Update : TDateTime;
 begin
-    ReadSettingTime;
+    ReadSettingTime( nil );
     ReadSambaTime;
     Result := Now();
 end;