6 Windows, SysUtils, Classes, ExtCtrls,
7 BoardGroup, GikoSystem;
11 \brief Samba24
\91Î
\8dô
\83^
\83C
\83}
\81[
\83N
\83\89\83X
13 TSambaTimer = class(TTimer)
16 FWriteDeta : TDateTime;
17 FSambaInterval : Integer;
18 procedure ReadSambaTime;
19 procedure ReadSettingTime(Board: TBoard);
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;
35 \brief
\83T
\83\93\83o
\83^
\83C
\83}
\81[
\94Â
\8fî
\95ñ
\90Ý
\92è
36 \param Board
\83\8c\83X
\83G
\83f
\83B
\83^
\82Ì
\94Â
37 \return Samba
\82Ì
\90Ý
\92è
\92l
39 function TSambaTimer.SetBoard(Board : TBoard): Integer;
43 if (GikoSys.Setting.UseSamba) and (Board <> nil) then begin
44 //
\94Â
\82ª2ch
\82É
\91®
\82µ
\82Ä
\82¢
\82é
\8fê
\8d\87\81C
\83^
\83C
\83}
\81[
\82ð
\97L
\8cø
\82É
\82·
\82é
45 if (Board.Is2ch) then begin
46 ReadSettingTime(Board);
49 Result := FSambaInterval;
54 \brief Samba
\82Ì
\8bK
\92è
\92l
\82ð
\93Ç
\82Ý
\8d\9e\82Þ
56 procedure TSambaTimer.ReadSettingTime(Board: TBoard);
59 Protocol, Host, Path, Document, Port, Bookmark : string;
61 Enabled := false; //
\8co
\89ß
\95b
\90\94\95\
\8e¦Timer
\82ðOff
\82É
\82·
\82é
62 ini := TMemIniFile.Create(GikoSys.GetSambaFileName);
64 if (Board <> nil) then begin
65 //
\82Ü
\82¸BBSID
\82Å
\8cÂ
\95Ê
\82É
\90Ý
\92è
\82³
\82ê
\82Ä
\82¢
\82È
\82¢
\82©
\8am
\94F
\82·
\82é
66 FKey := '@' + Board.BBSID;
67 FSambaInterval := ini.ReadInteger('Setting', FKey, -1);
68 if (FSambaInterval = -1) then begin
69 //
\90Ý
\92è
\82³
\82ê
\82Ä
\82¢
\82È
\82¢
\82Ì
\82Å
\83z
\83X
\83g
\96¼
\82Ì
\90Ý
\92è
\82ð
\8eæ
\82Á
\82Ä
\82
\82é
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 //
\90Ý
\92è
\82³
\82ê
\82Ä
\82¢
\82È
\82¢
\82Æ
\82«
\82Í
\81A
\83t
\83@
\83C
\83\8b\82É
\8f\91\82«
\82½
\82·
\81B
74 if FSambaInterval = -1 then begin
76 ini.WriteInteger('Setting', FKey, 0);
81 FSambaInterval := ini.ReadInteger('Setting', FKey, -1);
86 Enabled := true; //
\8co
\89ß
\95b
\90\94\95\
\8e¦Timer
\82ðOn
\82É
\82·
\82é
90 \brief Samba.ini
\82Ì
\8f\91\82«
\8d\9e\82Ý
\8e\9e\8aÔ
\82ð
\93Ç
\82Ý
\8d\9e\82Þ
92 procedure TSambaTimer.ReadSambaTime;
96 Enabled := false; //
\8co
\89ß
\95b
\90\94\95\
\8e¦Timer
\82ðOff
\82É
\82·
\82é
97 ini := TMemIniFile.Create(GikoSys.GetSambaFileName);
99 //
\95¶
\8e\9a\97ñ
\82Å
\93Ç
\82Ý
\8eæ
\82Á
\82Ä
\81A
\95Ï
\8a·
\8aÖ
\90\94\82ÅTDateTime
\82Ö
100 FWriteDeta := ConvertDateTimeString(
101 ini.ReadString('Send', FKey, ''));
105 Enabled := true; //
\8co
\89ß
\95b
\90\94\95\
\8e¦Timer
\82ðOn
\82É
\82·
\82é
108 \brief Samba.ini
\82É
\8dÅ
\8fI
\8f\91\82«
\8d\9e\82Ý
\8e\9e\8aÔ
\82ð
\8f\91\82«
\8d\9e\82Þ
110 procedure TSambaTimer.WriteSambaTime(ATime: TDateTime);
114 ini := TMemIniFile.Create(GikoSys.GetSambaFileName);
116 ini.WriteDateTime('Send', FKey, ATime);
124 \brief
\8dÅ
\8fI
\8f\91\82«
\8d\9e\82Ý
\8e\9e\8aÔ
\82Æ
\8c»
\8dÝ
\8e\9e\82ð
\94ä
\8ar
\82·
\82é
125 \return
\90^
\81F
\8bK
\92è
\92l
\88È
\8fã
\81@
\8bU
\81F
\8bK
\92è
\92l
\96¢
\96\9e
127 function TSambaTimer.CheckSambaTime(ATime: TDateTime): Boolean;
131 pastsec := SecondSpan(ATime, FWriteDeta);
132 Result := (pastsec > FSambaInterval);
135 \breif
\83^
\83C
\83}
\81[
\8fî
\95ñ
\8dX
\90V
137 function TSambaTimer.Update : TDateTime;
139 ReadSettingTime( nil );
144 \biref Samba
\90Ý
\92è
\92l
\8dX
\90V
145 \param Interval
\90Ý
\92è
\92l
147 procedure TSambaTimer.UpdateSambaSetting(Interval : Integer);
151 Enabled := false; //
\8co
\89ß
\95b
\90\94\95\
\8e¦Timer
\82ðOff
\82É
\82·
\82é
152 ini := TMemIniFile.Create(GikoSys.GetSambaFileName);
154 FSambaInterval := Interval;
155 ini.WriteInteger('Setting', FKey, FSambaInterval);
160 Enabled := true; //
\8co
\89ß
\95b
\90\94\95\
\8e¦Timer
\82ðOn
\82É
\82·
\82é