Develop and Download Open Source Software

Browse CVS Repository

Contents of /gikonavigoeson/gikonavi/SambaTimer.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (show annotations) (download) (as text)
Mon Aug 14 14:52:20 2006 UTC (17 years, 8 months ago) by h677
Branch: MAIN
Changes since 1.1: +23 -21 lines
File MIME type: text/x-pascal
Samba用のTimerクラスに委譲したメソッドの削除など

1 unit SambaTimer;
2
3 interface
4
5 uses
6 Windows, SysUtils, Classes, ExtCtrls,
7 BoardGroup, GikoSystem;
8
9 type
10 {
11 \brief Samba24絲丞??帥?ゃ???若??????/span>
12 }
13 TSambaTimer = class(TTimer)
14 private
15 FKey : string;
16 FWriteDeta : TDateTime;
17 FSambaInterval : Integer;
18 procedure ReadSambaTime;
19 procedure ReadSettingTime(Board: TBoard);
20 public
21 function SetBoard(Board : TBoard): integer;
22 function CheckSambaTime(ATime: TDateTime): Boolean;
23 procedure WriteSambaTime(ATime: TDateTime);
24 procedure UpdateSambaSetting(Interval : Integer);
25 function Update : TDateTime;
26 property WriteDeta : TDateTime read FWriteDeta;
27 property SambaInterval : Integer read FSambaInterval;
28 end;
29
30 implementation
31
32 uses
33 IniFiles, DateUtils;
34 {
35 \brief ?泣?潟???帥?ゃ???惹?炊???沿┃絎?
36 \param Board ???鴻?????c?帥????/span>
37 \return Samba??┃絎???/span>
38 }
39 function TSambaTimer.SetBoard(Board : TBoard): Integer;
40 begin
41 Result := -1;
42 Enabled := False;
43 if (Board <> nil) then begin
44 // ?帥??2ch????????????翫??鐚??帥?ゃ???若?????鴻??????
45 if (Board.Is2ch) then begin
46 ReadSettingTime(Board);
47 ReadSambaTime;
48 Interval := 500;
49 Result := FSambaInterval;
50 end;
51 end;
52 end;
53 {
54 \brief Samba???絎??ゃ??茯??粋昭??
55 }
56 procedure TSambaTimer.ReadSettingTime(Board: TBoard);
57 var
58 ini :TMemIniFile;
59 Protocol, Host, Path, Document, Port, Bookmark : string;
60 begin
61 Enabled := false; //腟?????域;腓?imer??Off??????
62 ini := TMemIniFile.Create(GikoSys.GetSambaFileName);
63 try
64 if (Board <> nil) then begin
65 // ?障??BBSID?у???ャ??┃絎???????????????腆肴?????
66 FKey := '@' + Board.BBSID;
67 FSambaInterval := ini.ReadInteger('Setting', FKey, -1);
68 if (FSambaInterval = -1) then begin
69 // 荐?????????????????с???鴻??????┃絎??????c?????
70 GikoSys.ParseURI( Board.URL, Protocol, Host, Path, Document, Port, Bookmark );
71 FKey := Copy(Host, 1, AnsiPos('.', Host) - 1);
72 FSambaInterval := ini.ReadInteger('Setting', FKey, -1);
73 //荐?????????????????????????<?ゃ?????吾????????
74 if FSambaInterval = -1 then begin
75 FSambaInterval := 0;
76 ini.WriteInteger('Setting', FKey, 0);
77 ini.UpdateFile;
78 end;
79 end;
80 end else begin
81 FSambaInterval := ini.ReadInteger('Setting', FKey, -1);
82 end;
83 finally
84 ini.Free;
85 end;
86 Enabled := true; //腟?????域;腓?imer??On??????
87 end;
88
89 {
90 \brief Samba.ini???吾??莨若?炊??????茯??粋昭??
91 }
92 procedure TSambaTimer.ReadSambaTime;
93 var
94 ini :TMemIniFile;
95 begin
96 Enabled := false; //腟?????域;腓?imer??Off??????
97 ini := TMemIniFile.Create(GikoSys.GetSambaFileName);
98 try
99 //??絖????ц??水??c????紊????∽?違??DateTime??/span>
100 FWriteDeta := ConvertDateTimeString(
101 ini.ReadString('Send', FKey, ''));
102 finally
103 ini.Free;
104 end;
105 Enabled := true; //腟?????域;腓?imer??On??????
106 end;
107 {
108 \brief Samba.ini????腟??吾??莨若?炊???????吾??莨若??
109 }
110 procedure TSambaTimer.WriteSambaTime(ATime: TDateTime);
111 var
112 ini :TMemIniFile;
113 begin
114 ini := TMemIniFile.Create(GikoSys.GetSambaFileName);
115 try
116 ini.WriteDateTime('Send', FKey, ATime);
117 ini.UpdateFile;
118 finally
119 ini.Free;
120 end;
121 end;
122
123 {
124 \brief ??腟??吾??莨若?炊??????憜??????罸?莠?????
125 \return ??鐚?荀鎘??や札筝????緒?荀鎘??ゆ???
126 }
127 function TSambaTimer.CheckSambaTime(ATime: TDateTime): Boolean;
128 var
129 pastsec: double;
130 begin
131 pastsec := SecondSpan(ATime, FWriteDeta);
132 Result := (pastsec > FSambaInterval);
133 end;
134 {
135 \breif ?帥?ゃ???惹???掩?贋??/span>
136 }
137 function TSambaTimer.Update : TDateTime;
138 begin
139 ReadSettingTime( nil );
140 ReadSambaTime;
141 Result := Now();
142 end;
143 {
144 \biref Samba荐???ゆ?贋??/span>
145 \param Interval 荐????/span>
146 }
147 procedure TSambaTimer.UpdateSambaSetting(Interval : Integer);
148 var
149 ini :TMemIniFile;
150 begin
151 Enabled := false; //腟?????域;腓?imer??Off??????
152 ini := TMemIniFile.Create(GikoSys.GetSambaFileName);
153 try
154 FSambaInterval := Interval;
155 ini.WriteInteger('Setting', FKey, FSambaInterval);
156 ini.UpdateFile;
157 finally
158 ini.Free;
159 end;
160 Enabled := true; //腟?????域;腓?imer??On??????
161 end;
162
163 end.

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26