Develop and Download Open Source Software

Browse CVS Repository

Annotation of /gikonavigoeson/gikonavi/Setting.pas

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


Revision 1.12 - (hide annotations) (download) (as text)
Wed Oct 8 13:14:34 2003 UTC (20 years, 6 months ago) by h677
Branch: MAIN
Changes since 1.11: +1 -1 lines
File MIME type: text/x-pascal
セッション名が間違ってたから修正 (FPopUpAbon)

1 hi_ 1.1 unit Setting;
2    
3     interface
4    
5     uses
6     SysUtils, Classes, Graphics, Forms, Math, IniFiles, UCryptAuto, UBase64,
7     ComCtrls;
8    
9     const
10     MAIN_COOLBAND_COUNT = 4; //?<?ゃ??oolBand????/span>
11     LIST_COOLBAND_COUNT = 2; //??oolBand????/span>
12     BROWSER_COOLBAND_COUNT = 3; //????????oolBand????/span>
13    
14     type
15     TGikoTabPosition = (gtpTop, gtpBottom); // ?帥??篏?臀?/span>
16     TGikoTabAppend = (gtaFirst, gtpLast); // ?帥??菴遵??篏?臀?/span>
17     TGikoTabStyle = (gtsTab, gtsButton, gtsFlat); // ?帥???鴻?帥?ゃ??/span>
18     TGikoListOrientation = (gloHorizontal, gloVertical); // ???鴻?????眼?紙梓綛?/span>
19     TGikoListState = (glsMax, glsNormal, glsMin); // ???鴻???泣?ゃ?榊?倶??
20     // ???????≪????茵?ず篏?臀?/span>
21     TGikoPopupPosition = (gppRightTop, gppTop, gppLeftTop,
22     gppRight, gppCenter, gppLeft,
23     gppRightBottom, gppBottom, gppLeftBottom);
24     //???????ャ?若?泣?ゃ??/span>
25     TGikoPreviewSize = (gpsXLarge, gpsLarge, gpsMedium, gpsSmall, gpsXSmall);
26    
27     //CoolBar荐?????潟?若??
28     TCoolSet = record
29     FCoolID: Integer;
30     FCoolWidth: Integer;
31     FCoolBreak: Boolean;
32     end;
33    
34     TSetting = class(TObject)
35     private
36     //??篆<???????<?泣?ゃ??/span>
37     FRecvBufferSize: Integer;
38     //HTTP1.1篏睡??/span>
39     FProtocol: Boolean;
40     //???????傑・膓?HTTP1.1篏睡??/span>
41     FProxyProtocol: Boolean;
42    
43     //???????件?茯?昭???
44     FReadProxy: Boolean;
45     FReadProxyAddress: string;
46     FReadProxyPort: Integer;
47     FReadProxyUserID: string;
48     FReadProxyPassword: string;
49    
50     //???????件??梧昭???
51     FWriteProxy: Boolean;
52     FWriteProxyAddress: string;
53     FWriteProxyPort: Integer;
54     FWriteProxyUserID: string;
55     FWriteProxyPassword: string;
56    
57     //???c????????
58     FCabinetFontName: string;
59     FCabinetFontSize: Integer;
60     FCabinetFontBold: Boolean;
61     FCabinetFontItalic: Boolean;
62     FCabinetFontColor: TColor;
63     FCabinetBackColor: TColor;
64    
65     //???鴻??
66     FListFontName: string;
67     FListFontSize: Integer;
68     FListFontBold: Boolean;
69     FListFontItalic: Boolean;
70     FListFontColor: TColor;
71     FListBackColor: TColor;
72    
73     //????????/span>
74 yoffy 1.6 FBrowserFontName: string; // ''...default
75     FBrowserFontSize: Integer; // 0...default
76     FBrowserFontBold: Integer; // 0...default, -1...False, 1...True
77     FBrowserFontItalic: Integer; // 筝???????
78     FBrowserFontColor: Integer; // -1...default
79     FBrowserBackColor: Integer; // 筝???????
80 hi_ 1.1
81     //?????c??/span>
82     FEditorFontName: string;
83     FEditorFontSize: Integer;
84     FEditorFontBold: Boolean;
85     FEditorFontItalic: Boolean;
86     FEditorFontColor: TColor;
87     FEditorBackColor: TColor;
88    
89     //?帥???????潟??
90     FBrowserTabFontName: string;
91     FBrowserTabFontSize: Integer;
92     FBrowserTabFontBold: Boolean;
93     FBrowserTabFontItalic: Boolean;
94    
95     //???潟?????c?潟????/span>
96     FHintFontName: string;
97     FHintFontSize: Integer;
98     //FHintFontBold: Boolean;
99     //FHintFontItalic: Boolean;
100     FHintFontColor: TColor;
101     FHintBackColor: TColor;
102    
103 yoffy 1.6
104 hi_ 1.1 //???c?潟?????泣?ゃ??/span>
105     FWindowTop: Integer;
106     FWindowLeft: Integer;
107     FWindowHeight: Integer;
108     FWindowWidth: Integer;
109     FWindowMax: Boolean;
110     //???鴻?????ャ?若?鴻?帥?ゃ??/span>
111     FListStyle: TViewStyle;
112    
113     //???若?????取;腓?/span>
114     FStdToolBarVisible: Boolean;
115     FAddressBarVisible: Boolean;
116     FLinkBarVisible: Boolean;
117     FListToolBarVisible: Boolean;
118     FListNameBarVisible: Boolean;
119     FBrowserToolBarVisible: Boolean;
120     FBrowserNameBarVisible: Boolean;
121    
122     //???????吟?帥??
123     FBrowserTabVisible: Boolean;
124     FBrowserTabPosition: TGikoTabPosition;
125     FBrowserTabAppend: TGikoTabAppend;
126     FBrowserTabStyle: TGikoTabStyle;
127    
128     //?<???祉?若?吾????/span>
129     FMessageBarVisible: Boolean;
130     FMessegeBarHeight: Integer;
131    
132     //?鴻???若?帥?鴻????/span>
133     FStatusBarVisible: Boolean;
134    
135     //???c????????????祉?泣?ゃ??/span>
136     FCabinetVisible: Boolean;
137     FCabinetWidth: Integer;
138    
139     //???鴻???祉???????吟?泣?ゃ??/span>
140     FListOrientation: TGikoListOrientation;
141     FListHeight: Integer;
142     FListHeightState: TGikoListState;
143     FListWidth: Integer;
144     FListWidthState: TGikoListState;
145     // FListHeightMax: Boolean;
146     // FListWidthMax: Boolean;
147    
148     //??篆∞???????祉?<?若??/span>
149     FNameList: TStringList;
150     FMailList: TStringList;
151    
152     //?????c?帥?若???c?潟?????泣?ゃ??/span>
153     FEditWindowTop: Integer;
154     FEditWindowLeft: Integer;
155     FEditWindowHeight: Integer;
156     FEditWindowWidth: Integer;
157     FEditWindowMax: Boolean;
158    
159     //???鴻????埈;腓?/span>
160     FListViewNo: Boolean;
161     //CSS茵?ず
162     FUseCSS: Boolean;
163     //CSS???<?ゃ????
164     FCSSFileName: string;
165     //mail罨?茵?ず
166     FShowMail: Boolean;
167 h677 1.10 //莎桁????????00???壕;腓?/span>
168     FOnlyAHundredRes : Boolean;
169 yoffy 1.2 //???≪?????c???????鴻???????≪????茵?ず
170 hi_ 1.1 FUnActivePopup: Boolean;
171 yoffy 1.2 //???鴻???????≪???????????若???若????
172     FResPopupHeaderBold: Boolean;
173 hi_ 1.1
174     //???違????????
175     FLogFolder: string;
176     FNewLogFolder: string;
177    
178     //???鴻???????????????若?泣?ゃ??/span>
179     FBBSColumnWidth: array[0..0] of Integer;
180     FCategoryColumnWidth: array[0..3] of Integer;
181     FBoardColumnWidth: array[0..6] of Integer;
182    
183     //腟?莨若?炊??絖???
184     FSelectTextList: TStringList;
185    
186     //?推?荀?RL
187 h677 1.11 //FBoardURL2ch: string;
188     FBoardURLs: TStringList;
189     FBoardURLSelected: Integer;
190 hi_ 1.1
191     //???若??D?祉???鴻???若??
192     FUserID: string;
193     FPassword: string;
194     FAutoLogin: Boolean;
195    
196     //URL??????????莎桁???≪????/span>
197     FURLApp: Boolean;
198     FURLAppFile: string;
199    
200     //mailto????????????篏?
201     FOpenMailer: Boolean;
202    
203     //???ょ∈茯?
204     FDeleteMsg: Boolean;
205    
206     //CoolBar鐚??<?ゃ?潟?紙?帥?祉???????駈?
207     FMainCoolBar: array[0..MAIN_COOLBAND_COUNT - 1] of TCoolSet;
208 yoffy 1.2 FListCoolBar: array[0..LIST_COOLBAND_COUNT - 1] of TCoolSet;
209 hi_ 1.1 FBrowserCoolBar: array[0..BROWSER_COOLBAND_COUNT - 1] of TCoolSet;
210    
211     //ToolBar Wrapable
212     FListToolBarWrapable: Boolean;
213     FBrowserToolBarWrapable: Boolean;
214    
215     //???????≪????篏?臀?/span>
216     FPopupPosition: TGikoPopupPosition;
217    
218     //?≪?????鴻????/span>
219     FURLDisplay: Boolean;
220     FAddressBarTabStop: Boolean;
221     FLinkAddAddressBar: Boolean;
222     FAddressHistoryCount: Integer;
223    
224     //?糸????????ャ??/span>
225     FPreviewVisible: Boolean;
226     FPreviewSize: TGikoPreviewSize;
227     FPreviewWait: Integer;
228    
229     //?鴻??????筝?荀ф?贋?違?≪?ゃ?潟?活;腓?/span>
230     FListIconVisible: Boolean;
231    
232     //?吾??莨若?炊?????激?恰????篏睡??┃絎?
233     FUseMachineTime: Boolean;
234     FTimeAdjustSec: Integer;
235     FTimeAdjust: Boolean;
236    
237 h677 1.11 //???若????
238     FAbonDeleterlo : Boolean; //&rlo;????????
239     FAbonReplaceul : Boolean; //<ul>?帥?違??<br>?帥?違??舟????????
240     FPopUpAbon : Boolean; //???鴻???????≪???????????若????????/span>
241     FShowNGLinesNum : Boolean; //荅峨?????鐚?磁???若?????<?ゃ??????違??茵?ず
242     FAddResAnchor : Boolean; //NG???鴻?吾?????鴻?≪?潟???若??菴遵??????
243 h677 1.3
244 h677 1.11 // ?鴻??????腟?莨若???c?若???????
245     FSelectComboBoxWidth : Integer;
246 yoffy 1.5
247 h677 1.11 // ??緇????御?????????????激?с?潟???ゃ?≪???違???帥??
248     FOptionDialogTabIndex: Integer;
249 yoffy 1.8
250 h677 1.11 // ??緇????御???????????c????????
251     FCabinetIndex: Integer;
252 yoffy 1.8
253 hi_ 1.1 function GetMainCoolSet(Index: Integer): TCoolSet;
254     function GetBoardCoolSet(Index: Integer): TCoolSet;
255     function GetBrowserCoolSet(Index: Integer): TCoolSet;
256     procedure SetMainCoolSet(Index: Integer; CoolSet: TCoolSet);
257     procedure SetBoardCoolSet(Index: Integer; CoolSet: TCoolSet);
258     procedure SetBrowserCoolSet(Index: Integer; CoolSet: TCoolSet);
259    
260     function GetBBSColumnWidth(index: Integer): Integer;
261     function GetCategoryColumnWidth(index: Integer): Integer;
262     function GetBoardColumnWidth(index: Integer): Integer;
263     procedure SetBBSColumnWidth(index: Integer; value: Integer);
264     procedure SetCategoryColumnWidth(index: Integer; value: Integer);
265     procedure SetBoardColumnWidth(index: Integer; value: Integer);
266    
267     function GetSoundName(Index: Integer): string;
268     function GetSoundViewName(Index: Integer): string;
269     function GetSoundFileName(Index: Integer): string;
270     procedure SetSoundFileName(Index: Integer; value: string);
271     function Encrypt(s: string): string;
272     function Decrypt(s: string): string;
273 h677 1.11
274     procedure MakeURLIniFile();
275 hi_ 1.1 protected
276    
277     public
278     constructor Create;
279     destructor Destroy; override;
280     function GetFileName: string;
281 h677 1.11 function GetBoardURLFileName: string;
282 hi_ 1.1 procedure ReadSettingFile;
283 h677 1.11 procedure ReadBoardURLsFile;
284 hi_ 1.1 procedure WriteSystemSettingFile;
285     procedure WriteWindowSettingFile;
286     procedure WriteNameMailSettingFile;
287     procedure WriteFolderSettingFile();
288 h677 1.11 procedure WriteBoardURLSettingFile;
289 hi_ 1.1 function GetSoundCount: Integer;
290     function FindSoundFileName(Name: string): string;
291    
292     //??篆<???????<?泣?ゃ??/span>
293     property RecvBufferSize: Integer read FRecvBufferSize write FRecvBufferSize;
294     //HTTP1.1篏睡??/span>
295     property Protocol: Boolean read FProtocol write FProtocol;
296     //???????傑・膓?HTTP1.1篏睡??/span>
297     property ProxyProtocol: Boolean read FProxyProtocol write FProxyProtocol;
298    
299     property ReadProxy: Boolean read FReadProxy write FReadProxy;
300     property ReadProxyAddress: string read FReadProxyAddress write FReadProxyAddress;
301     property ReadProxyPort: Integer read FReadProxyPort write FReadProxyPort;
302     property ReadProxyUserID: string read FReadProxyUserID write FReadProxyUserID;
303     property ReadProxyPassword: string read FReadProxyPassword write FReadProxyPassword;
304    
305     property WriteProxy: Boolean read FWriteProxy write FWriteProxy;
306     property WriteProxyAddress: string read FWriteProxyAddress write FWriteProxyAddress;
307     property WriteProxyPort: Integer read FWriteProxyPort write FWriteProxyPort;
308     property WriteProxyUserID: string read FWriteProxyUserID write FWriteProxyUserID;
309     property WriteProxyPassword: string read FWriteProxyPassword write FWriteProxyPassword;
310    
311     property CabinetFontName: string read FCabinetFontName write FCabinetFontName;
312     property CabinetFontSize: Integer read FCabinetFontSize write FCabinetFontSize;
313     property CabinetFontBold: Boolean read FCabinetFontBold write FCabinetFontBold;
314     property CabinetFontItalic: Boolean read FCabinetFontItalic write FCabinetFontItalic;
315     property CabinetFontColor: TColor read FCabinetFontColor write FCabinetFontColor;
316     property CabinetBackColor: TColor read FCabinetBackColor write FCabinetBackColor;
317    
318     property ListFontName: string read FListFontName write FListFontName;
319     property ListFontSize: Integer read FListFontSize write FListFontSize;
320     property ListFontBold: Boolean read FListFontBold write FListFontBold;
321     property ListFontItalic: Boolean read FListFontItalic write FListFontItalic;
322     property ListFontColor: TColor read FListFontColor write FListFontColor;
323     property ListBackColor: TColor read FListBackColor write FListBackColor;
324    
325 yoffy 1.6 property BrowserFontName: string read FBrowserFontName write FBrowserFontName;
326     property BrowserFontSize: Integer read FBrowserFontSize write FBrowserFontSize;
327     property BrowserFontBold: Integer read FBrowserFontBold write FBrowserFontBold;
328     property BrowserFontItalic: Integer read FBrowserFontItalic write FBrowserFontItalic;
329     property BrowserFontColor: Integer read FBrowserFontColor write FBrowserFontColor;
330     property BrowserBackColor: Integer read FBrowserBackColor write FBrowserBackColor;
331 hi_ 1.1
332     property EditorFontName: string read FEditorFontName write FEditorFontName;
333     property EditorFontSize: Integer read FEditorFontSize write FEditorFontSize;
334     property EditorFontBold: Boolean read FEditorFontBold write FEditorFontBold;
335     property EditorFontItalic: Boolean read FEditorFontItalic write FEditorFontItalic;
336     property EditorFontColor: TColor read FEditorFontColor write FEditorFontColor;
337     property EditorBackColor: TColor read FEditorBackColor write FEditorBackColor;
338    
339     property BrowserTabFontName: string read FBrowserTabFontName write FBrowserTabFontName;
340     property BrowserTabFontSize: Integer read FBrowserTabFontSize write FBrowserTabFontSize;
341     property BrowserTabFontBold: Boolean read FBrowserTabFontBold write FBrowserTabFontBold;
342     property BrowserTabFontItalic: Boolean read FBrowserTabFontItalic write FBrowserTabFontItalic;
343    
344     property HintFontName: string read FHintFontName write FHintFontName;
345     property HintFontSize: Integer read FHintFontSize write FHintFontSize;
346     //property HintFontBold: Boolean read FHintFontBold write FHintFontBold;
347     //property HintFontItalic: Boolean read FHintFontItalic write FHintFontItalic;
348     property HintFontColor: TColor read FHintFontColor write FHintFontColor;
349     property HintBackColor: TColor read FHintBackColor write FHintBackColor;
350    
351     property WindowTop: Integer read FWindowTop write FWindowTop;
352     property WindowLeft: Integer read FWindowLeft write FWindowLeft;
353     property WindowHeight: Integer read FWindowHeight write FWindowHeight;
354     property WindowWidth: Integer read FWindowWidth write FWindowWidth;
355     property WindowMax: Boolean read FWindowMax write FWindowMax;
356     property ListStyle: TViewStyle read FListStyle write FListStyle;
357    
358     property StdToolBarVisible: Boolean read FStdToolBarVisible write FStdToolBarVisible;
359     property AddressBarVisible: Boolean read FAddressBarVisible write FAddressBarVisible;
360     property LinkBarVisible: Boolean read FLinkBarVisible write FLinkBarVisible;
361     property ListToolBarVisible: Boolean read FListToolBarVisible write FListToolBarVisible;
362     property ListNameBarVisible: Boolean read FListNameBarVisible write FListNameBarVisible;
363     property BrowserToolBarVisible: Boolean read FBrowserToolBarVisible write FBrowserToolBarVisible;
364     property BrowserNameBarVisible: Boolean read FBrowserNameBarVisible write FBrowserNameBarVisible;
365    
366     property BrowserTabVisible: Boolean read FBrowserTabVisible write FBrowserTabVisible;
367     property BrowserTabPosition: TGikoTabPosition read FBrowserTabPosition write FBrowserTabPosition;
368     property BrowserTabAppend: TGikoTabAppend read FBrowserTabAppend write FBrowserTabAppend;
369     property BrowserTabStyle: TGikoTabStyle read FBrowserTabStyle write FBrowserTabStyle;
370    
371     property MessageBarVisible: Boolean read FMessageBarVisible write FMessageBarVisible;
372     property MessegeBarHeight: Integer read FMessegeBarHeight write FMessegeBarHeight;
373    
374     property StatusBarVisible: Boolean read FStatusBarVisible write FStatusBarVisible;
375    
376     property CabinetVisible: Boolean read FCabinetVisible write FCabinetVisible;
377     property CabinetWidth: Integer read FCabinetWidth write FCabinetWidth;
378    
379     property ListOrientation: TGikoListOrientation read FListOrientation write FListOrientation;
380     property ListHeight: Integer read FListHeight write FListHeight;
381     property ListHeightState: TGikoListState read FListHeightState write FListHeightState;
382     property ListWidth: Integer read FListWidth write FListWidth;
383     property ListWidthState: TGikoListState read FListWidthState write FListWidthState;
384     // property ListHeightMax: Boolean read FListHeightMax write FListHeightMax;
385     // property ListWidthMax: Boolean read FListWidthMax write FListWidthMax;
386    
387     property NameList: TStringList read FNameList write FNameList;
388     property MailList: TStringList read FMailList write FMailList;
389     property SelectTextList: TStringList read FSelectTextList write FSelectTextList;
390    
391     property EditWindowTop: Integer read FEditWindowTop write FEditWindowTop;
392     property EditWindowLeft: Integer read FEditWindowLeft write FEditWindowLeft;
393     property EditWindowHeight: Integer read FEditWindowHeight write FEditWindowHeight;
394     property EditWindowWidth: Integer read FEditWindowWidth write FEditWindowWidth;
395     property EditWindowMax: Boolean read FEditWindowMax write FEditWindowMax;
396    
397     property ListViewNo: Boolean read FListViewNo write FListViewNo;
398     property UseCSS: Boolean read FUseCSS write FUseCSS;
399     property CSSFileName: string read FCSSFileName write FCSSFileName;
400    
401     property ShowMail: Boolean read FShowMail write FShowMail;
402 h677 1.10 property OnlyAHundredRes : Boolean read FOnlyAHundredRes write FOnlyAHundredRes;
403 hi_ 1.1 property UnActivePopup: Boolean read FUnActivePopup write FUnActivePopup;
404 yoffy 1.2 property ResPopupHeaderBold: Boolean read FResPopupHeaderBold write FResPopupHeaderBold;
405 hi_ 1.1
406     property LogFolder: string read FLogFolder write FLogFolder;
407     property NewLogFolder: string read FNewLogFolder write FNewLogFolder;
408    
409     property BBSColumnWidth[index: Integer]: Integer read GetBBSColumnWidth write SetBBSColumnWidth;
410     property CategoryColumnWidth[index: Integer]: Integer read GetCategoryColumnWidth write SetCategoryColumnWidth;
411     property BoardColumnWidth[index: Integer]: Integer read GetBoardColumnWidth write SetBoardColumnWidth;
412    
413     property SoundName[index: Integer]: string read GetSoundName;
414     property SoundViewName[index: Integer]: string read GetSoundViewName;
415     property SoundFileName[index: Integer]: string read GetSoundFileName write SetSoundFileName;
416    
417 h677 1.11 //property BoardURL2ch: string read FBoardURL2ch write FBoardURL2ch;
418     property BoardURLs: TStringList read FBoardURLs write FBoardURLs;
419     property BoardURLSelected: Integer read FBoardURLSelected write FBoardURLSelected;
420 hi_ 1.1 property UserID: string read FUserID write FUserID;
421     property Password: string read FPassword write FPassword;
422     property AutoLogin: Boolean read FAutoLogin write FAutoLogin;
423    
424     property URLApp: Boolean read FURLApp write FURLApp;
425     property URLAppFile: string read FURLAppFile write FURLAppFile;
426    
427     property OpenMailer: Boolean read FOpenMailer write FOpenMailer;
428    
429     property DeleteMsg: Boolean read FDeleteMsg write FDeleteMsg;
430    
431     property MainCoolSet[Index: Integer]: TCoolSet read GetMainCoolSet write SetMainCoolSet;
432     property ListCoolSet[Index: Integer]: TCoolSet read GetBoardCoolSet write SetBoardCoolSet;
433     property BrowserCoolSet[Index: Integer]: TCoolSet read GetBrowserCoolSet write SetBrowserCoolSet;
434    
435     property ListToolBarWrapable: Boolean read FListToolBarWrapable write FListToolBarWrapable;
436     property BrowserToolBarWrapable: Boolean read FBrowserToolBarWrapable write FBrowserToolBarWrapable;
437    
438     property PopupPosition: TGikoPopupPosition read FPopupPosition write FPopupPosition;
439    
440     property URLDisplay: Boolean read FURLDisplay write FURLDisplay;
441     property AddressBarTabStop: Boolean read FAddressBarTabStop write FAddressBarTabStop;
442     property LinkAddAddressBar: Boolean read FLinkAddAddressBar write FLinkAddAddressBar;
443     property AddressHistoryCount: Integer read FAddressHistoryCount write FAddressHistoryCount;
444    
445     property PreviewVisible: Boolean read FPreviewVisible write FPreviewVisible;
446     property PreviewSize: TGikoPreviewSize read FPreviewSize write FPreviewSize;
447     property PreviewWait: Integer read FPreviewWait write FPreviewWait;
448    
449     property ListIconVisible: Boolean read FListIconVisible write FListIconVisible;
450    
451     property UseMachineTime: Boolean read FUseMachineTime write FUseMachineTime;
452     property TimeAdjustSec: Integer read FTimeAdjustSec write FTimeAdjustSec;
453     property TimeAdjust: Boolean read FTimeAdjust write FTimeAdjust;
454 h677 1.3
455 yoffy 1.6 //???若????
456     property AbonDeleterlo : Boolean read FAbonDeleterlo write FAbonDeleterlo;
457     property AbonReplaceul : Boolean read FAbonReplaceul write FAbonReplaceul;
458     property PopUpAbon : Boolean read FPopUpAbon write FPopUpAbon;
459 h677 1.9 property ShowNGLinesNum : Boolean read FShowNGLinesNum write FShowNGLinesNum;
460     property AddResAnchor : Boolean read FAddResAnchor write FAddResAnchor;
461 h677 1.3
462 yoffy 1.5 // ?鴻??????腟?莨若???c?若???????
463     property SelectComboBoxWidth : Integer read FSelectComboBoxWidth write FSelectComboBoxWidth;
464    
465 yoffy 1.8 // ??緇????御?????????????激?с?潟???ゃ?≪???違???帥??
466     property OptionDialogTabIndex : Integer read FOptionDialogTabIndex write FOptionDialogTabIndex;
467    
468     // ??緇????御???????????c????????
469     property CabinetIndex : Integer read FCabinetIndex write FCabinetIndex;
470    
471 hi_ 1.1 end;
472    
473    
474 h677 1.3
475 hi_ 1.1 implementation
476    
477     type
478     TSoundName = record
479     Name: string;
480     ViewName: string;
481     FileName: string;
482     end;
483    
484     const
485     INI_FILE_NAME: string = 'gikoNavi.ini';
486 h677 1.11 BOARD_URL_INI_FILE_NAME: string = 'url.ini';
487 hi_ 1.1 DEFAULT_FONT_NAME: string = '鐚?竺 鐚違?眼?激????#39;;
488     DEFAULT_FONT_SIZE: Integer = 9;
489     DEFAULT_FONT_COLOR: string = 'clWindowText';
490     DEFAULT_WINDOW_COLOR: string = 'clWindow';
491     DEFAULT_TAB_FONT_NAME: string = '鐚?竺 鐚違?眼?激????#39;;
492     DEFAULT_TAB_FONT_SIZE: Integer = 9;
493 h677 1.11 DEFAULT_2CH_BOARD_URL1: string = 'http://www6.ocn.ne.jp/~mirv/2chmenu.html';
494     DEFAULT_2CH_BOARD_URL2: string = 'http://www.ff.iij4u.or.jp/~ch2/bbstable.html';
495 hi_ 1.1 //'http://www.2ch.net/newbbsmenu.html';
496     GIKO_ENCRYPT_TEXT: string = 'gikoNaviEncryptText';
497    
498     var
499     SOUND_NAME: array[0..4] of TSoundName = (
500     (Name: 'New'; ViewName: '??緇?????'; FileName: ''),
501     (Name: 'NewDiff'; ViewName: '??緇?????(綏???)'; FileName: ''),
502     (Name: 'NoChange'; ViewName: '???贋??#39;; FileName: ''),
503     // (Name: 'RoundEnd'; ViewName: '綏≦??腟?篋?(??緇?????)'; FileName: ''),
504     // (Name: 'RoundNone'; ViewName: '綏≦??腟?篋?(??緇?????)'; FileName: ''),
505     (Name: 'ResEnd'; ViewName: '???拷??篆≦?篋?'; FileName: ''),
506     (Name: 'Error'; ViewName: '??????#39;; FileName: ''));
507    
508     //?潟?潟?鴻????????/span>
509     constructor TSetting.Create();
510     begin
511     FNameList := TStringList.Create;
512     FMailList := TStringList.Create;
513     FSelectTextList := TStringList.Create;
514 h677 1.11 FBoardURLs := TStringList.Create;
515 hi_ 1.1 FNameList.Duplicates := dupIgnore;
516     FMailList.Duplicates := dupIgnore;
517 h677 1.11 FBoardURLs.Duplicates := dupIgnore;
518 hi_ 1.1 FSelectTextList.Duplicates := dupIgnore;
519     ReadSettingFile();
520 h677 1.11 ReadBoardURLsFile();
521 hi_ 1.1 end;
522    
523     //???鴻????????/span>
524     destructor TSetting.Destroy();
525     begin
526     inherited;
527     FSelectTextList.Free;
528 h677 1.11 FBoardURLs.Free;
529 hi_ 1.1 FMailList.Free;
530     FNameList.Free;
531     end;
532    
533     //?????????<?ゃ??????緇?鐚????刻????<?ゃ????鐚?
534     function TSetting.GetFileName(): string;
535     begin
536     Result := ExtractFilePath(Application.ExeName) + INI_FILE_NAME;
537     end;
538    
539 h677 1.11 //?炊?贋?亥??RL荐?????<?ゃ????鐚????刻????<?ゃ????鐚?
540     function TSetting.GetBoardURLFileName(): string;
541     begin
542     Result := ExtractFilePath(Application.ExeName) + BOARD_URL_INI_FILE_NAME;
543     end;
544    
545 hi_ 1.1 //荐?????<?ゃ???莨?/span>
546     procedure TSetting.ReadSettingFile();
547     const
548     DEFAULT_BBS_WIDTH: array[0..0] of Integer = (140);
549     DEFAULT_CATEGORY_WIDTH: array[0..2] of Integer = (150, 80, 130);
550     DEFAULT_BOARD_WIDTH: array[0..6] of Integer = (350, 60, 60, 60, 60, 80, 130);
551     var
552     ini: TMemIniFile;
553     i: Integer;
554     wkList: TStringList;
555     wkStr: string;
556     Exists: Boolean;
557     s: string;
558     // id: Integer;
559     CoolSet: TCoolSet;
560     begin
561     Exists := FileExists(GetFileName);
562     ini := TMemIniFile.Create(GetFileName);
563     try
564     //??篆<???????<?泣?ゃ??/span>
565     FRecvBufferSize := ini.ReadInteger('HTTP', 'RecvBufferSize', 4096);
566     //HTTP1.1篏睡??/span>
567     FProtocol := ini.ReadBool('HTTP', 'Protocol', True);
568     //???????傑・膓?HTTP1.1篏睡??/span>
569     FProxyProtocol := ini.ReadBool('HTTP', 'ProxyProtocol', False);
570    
571     FReadProxy := ini.ReadBool('ReadProxy', 'Proxy', false);
572     FReadProxyAddress := ini.ReadString('ReadProxy', 'Address', '');
573     FReadProxyPort := ini.ReadInteger('ReadProxy', 'Port', 0);
574     FReadProxyUserID := ini.ReadString('ReadProxy', 'UserID', '');
575     FReadProxyPassword := ini.ReadString('ReadProxy', 'Password', '');
576    
577     FWriteProxy := ini.ReadBool('WriteProxy', 'Proxy', false);
578     FWriteProxyAddress := ini.ReadString('WriteProxy', 'Address', '');
579     FWriteProxyPort := ini.ReadInteger('WriteProxy', 'Port', 0);
580     FWriteProxyUserID := ini.ReadString('WriteProxy', 'UserID', '');
581     FWriteProxyPassword := ini.ReadString('WriteProxy', 'Password', '');
582    
583 yoffy 1.6 FBrowserFontName := ini.ReadString('Window', 'BrowserFontName', '');
584     FBrowserFontSize := ini.ReadInteger('Window', 'BrowserFontSize', 0);
585     FBrowserFontBold := ini.ReadInteger('Window', 'BrowserFontBold', 0);
586     FBrowserFontItalic := ini.ReadInteger('Window', 'BrowserFontItalic', 0);
587     FBrowserFontColor := ini.ReadInteger('Window', 'BrowserFontColor', -1);
588     FBrowserBackColor := ini.ReadInteger('Window', 'BrowserBackColor', -1);
589    
590 hi_ 1.1 FCabinetFontName := ini.ReadString('Window', 'CabinetFontName', DEFAULT_FONT_NAME);
591     FCabinetFontSize := ini.ReadInteger('Window', 'CabinetFontSize', DEFAULT_FONT_SIZE);
592     FCabinetFontBold := ini.ReadBool('Window', 'CabinetFontBold', False);
593     FCabinetFontItalic := ini.ReadBool('Window', 'CabinetFontItalic', False);
594     FCabinetFontColor := StringToColor(ini.ReadString('Window', 'CabinetFontColor', DEFAULT_FONT_COLOR));
595     FCabinetBackColor := StringToColor(ini.ReadString('Window', 'CabinetBackColor', DEFAULT_WINDOW_COLOR));
596    
597     FListFontName := ini.ReadString('Window', 'ListFontName', DEFAULT_FONT_NAME);
598     FListFontSize := ini.ReadInteger('Window', 'ListFontSize', DEFAULT_FONT_SIZE);
599     FListFontBold := ini.ReadBool('Window', 'ListFontBold', False);
600     FListFontItalic := ini.ReadBool('Window', 'ListFontItalic', False);
601     FListFontColor := StringToColor(ini.ReadString('Window', 'ListFontColor', DEFAULT_FONT_COLOR));
602     FListBackColor := StringToColor(ini.ReadString('Window', 'ListBackColor', DEFAULT_WINDOW_COLOR));
603    
604     FEditorFontName := ini.ReadString('Window', 'EditorFontName', DEFAULT_FONT_NAME);
605     FEditorFontSize := ini.ReadInteger('Window', 'EditorFontSize', DEFAULT_FONT_SIZE);
606     FEditorFontBold := ini.ReadBool('Window', 'EditorFontBold', False);
607     FEditorFontItalic := ini.ReadBool('Window', 'EditorFontItalic', False);
608     FEditorFontColor := StringToColor(ini.ReadString('Window', 'EditorFontColor', DEFAULT_FONT_COLOR));
609     FEditorBackColor := StringToColor(ini.ReadString('Window', 'EditorBackColor', DEFAULT_WINDOW_COLOR));
610    
611     FBrowserTabFontName := ini.ReadString('Window', 'BrowserTabFontName', DEFAULT_TAB_FONT_NAME);
612     FBrowserTabFontSize := ini.ReadInteger('Window', 'BrowserTabFontSize', DEFAULT_TAB_FONT_SIZE);
613     FBrowserTabFontBold := ini.ReadBool('Window', 'BrowserTabFontBold', False);
614     FBrowserTabFontItalic := ini.ReadBool('Window', 'BrowserTabFontItalic', False);
615    
616     FHintFontName := ini.ReadString('Window', 'HintFontName', Screen.HintFont.Name);
617     FHintFontSize := ini.ReadInteger('Window', 'HintFontSize', Screen.HintFont.Size);
618     //FHintFontBold := ini.ReadBool('Window', 'HintFontBold', False);
619     //FHintFontItalic := ini.ReadBool('Window', 'HintFontItalic', False);
620     FHintFontColor := StringToColor(ini.ReadString('Window', 'HintFontColor', DEFAULT_FONT_COLOR));
621     FHintBackColor := StringToColor(ini.ReadString('Window', 'HintBackColor', 'clInfoBk'));
622    
623     FWindowTop := ini.ReadInteger('WindowSize', 'Top', -1);
624     FWindowLeft := ini.ReadInteger('WindowSize', 'Left', -1);
625     FWindowHeight := ini.ReadInteger('WindowSize', 'Height', -1);
626     FWindowWidth := ini.ReadInteger('WindowSize', 'Width', -1);
627     FWindowMax := ini.ReadBool('WindowSize', 'Max', false);
628    
629     if FWindowHeight <= 0 then FWindowHeight := 400;
630     if FWindowWidth <= 0 then FWindowWidth := 600;
631    
632     FListStyle := TViewStyle(ini.ReadInteger('ViewStyle', 'ListView', Ord(vsReport)));
633    
634     FEditWindowTop := ini.ReadInteger('EditorWindowSize', 'Top', -1);
635     FEditWindowLeft := ini.ReadInteger('EditorWindowSize', 'Left', -1);
636     FEditWindowHeight := ini.ReadInteger('EditorWindowSize', 'Height', -1);
637     FEditWindowWidth := ini.ReadInteger('EditorWindowSize', 'Width', -1);
638     FEditWindowMax := ini.ReadBool('EditorWindowSize', 'Max', False);
639    
640 yoffy 1.8 FOptionDialogTabIndex := ini.ReadInteger('OptionDialog', 'TabIndex', 0);
641    
642 hi_ 1.1 //???若??????/span>
643     FStdToolBarVisible := ini.ReadBool('ToolBar', 'StdVisible', True);
644     FAddressBarVisible := ini.ReadBool('ToolBar', 'AddressVisible', True);
645     FLinkBarVisible := ini.ReadBool('ToolBar', 'LinkVisible', True);
646     FListToolBarVisible := ini.ReadBool('ToolBar', 'ListVisible', True);
647     FListNameBarVisible := ini.ReadBool('ToolBar', 'ListNameVisible', True);
648     FBrowserToolBarVisible := ini.ReadBool('ToolBar', 'BrowserVisible', True);
649     FBrowserNameBarVisible := ini.ReadBool('ToolBar', 'BrowserNameVisible', True);
650     //???若??????rapable
651     FListToolBarWrapable := ini.ReadBool('ToolBar', 'ListWrapable', False);
652     FBrowserToolBarWrapable := ini.ReadBool('ToolBar', 'BrowserWrapable', False);
653    
654     FBrowserTabVisible := ini.ReadBool('Tab', 'BrowserTabVisible', True);
655     FBrowserTabPosition := TGikoTabPosition(ini.ReadInteger('Tab', 'BrowserTabPosition', Ord(gtpTop)));
656     FBrowserTabAppend := TGikoTabAppend(ini.ReadInteger('Tab', 'BrowserTabAppend', Ord(gtaFirst)));
657     FBrowserTabStyle := TGikoTabStyle(ini.ReadInteger('Tab', 'BrowserTabStyle', Ord(gtsFlat)));
658    
659     FMessageBarVisible := ini.ReadBool('MessageBar', 'Visible', True);
660     FMessegeBarHeight := ini.ReadInteger('MessageBar', 'Height', 30);
661    
662     FStatusBarVisible := ini.ReadBool('StatusBar', 'Visible', True);
663    
664     FCabinetVisible := ini.ReadBool('Cabinet', 'Visible', True);
665     FCabinetWidth := ini.ReadInteger('Cabinet', 'Width', 200);
666 yoffy 1.8 FCabinetIndex := ini.ReadInteger('Cabinet', 'Index', 0);
667 hi_ 1.1
668     FListOrientation := TGikoListOrientation(ini.ReadInteger('List', 'Orientation', Ord(gloHorizontal)));
669     FListHeight := ini.ReadInteger('List', 'Height', 180);
670     FListHeightState := TGikoListState(ini.ReadInteger('List', 'HeightState', Ord(glsNormal)));
671     FListWidth := ini.ReadInteger('List', 'Width', 180);
672     FListWidthState := TGikoListState(ini.ReadInteger('List', 'WidthState', Ord(glsNormal)));
673     // FListHeightMax := ini.ReadBool('List', 'HeightMax', False);
674     // FListWidthMax := ini.ReadBool('List', 'WidthMax', False);
675    
676     wkList := TStringList.Create;
677     try
678     ini.ReadSection('Name', wkList);
679     for i := 0 to wkList.Count - 1 do begin
680     wkStr := ini.ReadString('Name', wkList[i], '');
681     if (wkStr <> '') and (FNameList.IndexOf(wkStr) = -1) then
682     FNameList.Add(wkStr);
683     end;
684     ini.ReadSection('Mail', wkList);
685     for i := 0 to wkList.Count - 1 do begin
686     wkStr := ini.ReadString('Mail', wkList[i], '');
687     if (wkStr <> '') and (FMailList.IndexOf(wkStr) = -1) then
688     FMailList.Add(wkStr);
689     end;
690     ini.ReadSection('SelectText', wkList);
691     for i := 0 to wkList.Count - 1 do begin
692     wkStr := ini.ReadString('SelectText', wkList[i], '');
693     if (wkStr <> '') and (FSelectTextList.IndexOf(wkStr) = -1) then
694     FSelectTextList.Add(wkStr);
695     end;
696     finally
697     wkList.Free;
698     end;
699    
700     //???鴻????????
701     wkList := TStringList.Create;
702     try
703     ini.ReadSection('BBSColumnWidth', wkList);
704     if Length(FBBSColumnWidth) <> wkList.Count then begin
705     ini.EraseSection('BBSColumnWidth');
706     end;
707     for i := 0 to Length(FBBSColumnWidth) - 1 do begin
708     BBSColumnWidth[i] := ini.ReadInteger('BBSColumnWidth', 'ID' + IntToStr(i), DEFAULT_BBS_WIDTH[i]);
709     end;
710     ini.ReadSection('CategoryColumnWidth', wkList);
711     if Length(FCategoryColumnWidth) <> wkList.Count then begin
712     ini.EraseSection('CategoryColumnWidth');
713     end;
714     for i := 0 to Length(FCategoryColumnWidth) - 1 do begin
715     CategoryColumnWidth[i] := ini.ReadInteger('CategoryColumnWidth', 'ID' + IntToStr(i), DEFAULT_CATEGORY_WIDTH[i]);
716     end;
717     ini.ReadSection('BoardColumnWidth', wkList);
718     if Length(FBoardColumnWidth) <> wkList.Count then begin
719     ini.EraseSection('BoardColumnWidth');
720     end;
721     for i := 0 to Length(FBoardColumnWidth) - 1 do begin
722     BoardColumnWidth[i] := ini.ReadInteger('BoardColumnWidth', 'ID' + IntToStr(i), DEFAULT_BOARD_WIDTH[i]);
723     end;
724     finally
725     wkList.Free;
726     end;
727    
728    
729     //???鴻?????/span>
730     FListViewNo := ini.ReadBool('Function', 'ListViewNo', True);
731     //CSS
732     FUseCSS := ini.ReadBool('CSS', 'UseCSS', True);
733     //CSS???<?ゃ????
734     FCSSFileName := ini.ReadString('CSS', 'FileName', 'default.css');
735    
736     //Mail罨?茵?ず
737     FShowMail := ini.ReadBool('Thread', 'ShowMail', True);
738 h677 1.10 //????00???壕;腓?/span>
739     FOnlyAHundredRes := ini.ReadBool('Thread', 'OnlyAHundredRes',false);
740 yoffy 1.2 //???≪?????c???????鴻???????≪????茵?ず
741 hi_ 1.1 FUnActivePopup := ini.ReadBool('Thread', 'UnActivePopup', False);
742 yoffy 1.2 //???鴻???????≪???????????若???若????
743     FResPopupHeaderBold := ini.ReadBool('Thread', 'ResPopupHeaderBold', True);
744 hi_ 1.1
745     //???ょ∈茯?
746     FDeleteMsg := ini.ReadBool('Function', 'LogDeleteMessage', True);
747    
748     //???違????????
749     FLogFolder := ini.ReadString('Folder', 'LogFolder', ExtractFilePath(Application.ExeName) + 'Log');
750     NewLogFolder := '';
751    
752     //??RL
753 h677 1.11 //茲??亥?脂?蚊?с??????????????BoardURLs????????2003/10/05
754     //FBoardURL2ch := ini.ReadString('BoardURL', '2ch', DEFAULT_2CH_BOARD_URL);
755 hi_ 1.1
756     //茯?荐主?????若??D?祉???鴻???若??
757     FUserID := ini.ReadString('Attestation', 'UserID', '');
758     FPassword := Decrypt(ini.ReadString('Attestation', 'Password', ''));
759     FAutoLogin := ini.ReadBool('Attestation', 'AutoLogin', False);
760    
761     //URL??????????莎桁???≪????/span>
762     FURLApp := ini.ReadBool('URLApp', 'Select', False);
763     FURLAppFile := ini.ReadString('URLApp', 'File', '');
764    
765     //mailto????????????篏?
766     FOpenMailer := ini.ReadBool('Mailto', 'Open', True);
767    
768     //???????≪????篏?臀?/span>
769     FPopupPosition := TGikoPopupPosition(ini.ReadInteger('Browser', 'PopupPosition', Ord(gppLeftBottom)));
770    
771     //?≪?????鴻????/span>
772     FURLDisplay := ini.ReadBool('AddressBar', 'URLDisplay', False);
773     FAddressBarTabStop := ini.ReadBool('AddressBar', 'TabStop', True);
774     FLinkAddAddressBar := ini.ReadBool('AddressBar', 'LinkAdd', False);
775     FAddressHistoryCount := ini.ReadInteger('AddressBar', 'HistoryCount', 100);
776    
777     //?糸????????ャ??/span>
778     FPreviewVisible := ini.ReadBool('Browser', 'PreviewVisible', True);
779     FPreviewSize := TGikoPreviewSize(ini.ReadInteger('Browser', 'PreviewSize', Ord(gpsMedium)));
780     FPreviewWait := ini.ReadInteger('Browser', 'PreviewWait', 500);
781    
782     //?鴻??????筝?荀ф?贋?違?≪?ゃ?潟??/span>
783     FListIconVisible := ini.ReadBool('ThreadList', 'StateIconVisible', True);
784    
785     //?吾??莨若?炊?????激?恰???私戎??┃絎?
786     FUseMachineTime := ini.ReadBool('PostTime', 'UseMachineTime', False);
787     FTimeAdjustSec := ini.ReadInteger('PostTime', 'TimeAdjustSec', 0);
788     FTimeAdjust := ini.ReadBool('PostTime', 'TimeAdjust', True);
789    
790     //?泣???潟??
791     if Exists then begin
792     for i := 0 to GetSoundCount - 1 do begin
793     SoundFileName[i] := ini.ReadString('Sound', SoundName[i], '');
794     if not FileExists(SoundFileName[i]) then
795     SoundFileName[i] := '';
796     end;
797     end else begin
798     s := ExtractFileDir(Application.ExeName) + '\sound\';
799     SoundFileName[0] := s + '??緇?????.wav';
800     SoundFileName[1] := s + '??緇?????(綏???).wav';
801     SoundFileName[2] := s + '???贋??wav';
802     SoundFileName[3] := '';
803     SoundFileName[4] := s + '??????wav';
804     end;
805    
806     //???若??????/span>
807     for i := 0 to MAIN_COOLBAND_COUNT - 1 do begin
808     CoolSet.FCoolID := ini.ReadInteger('MainCoolBar', 'ID' + IntToStr(i), -1);
809     CoolSet.FCoolWidth := ini.ReadInteger('MainCoolBar', 'Width' + IntToStr(i), -1);
810     CoolSet.FCoolBreak := ini.ReadBool('MainCoolBar', 'Break' + IntToStr(i), False);
811     MainCoolSet[i] := CoolSet;
812     end;
813 yoffy 1.5 FSelectComboBoxWidth := ini.ReadInteger( 'ListCoolBar', 'SelectWidth', 127 );
814 hi_ 1.1 for i := 0 to LIST_COOLBAND_COUNT - 1 do begin
815     CoolSet.FCoolID := ini.ReadInteger('ListCoolBar', 'ID' + IntToStr(i), -1);
816     CoolSet.FCoolWidth := ini.ReadInteger('ListCoolBar', 'Width' + IntToStr(i), -1);
817     CoolSet.FCoolBreak := ini.ReadBool('ListCoolBar', 'Break' + IntToStr(i), False);
818 yoffy 1.2 ListCoolSet[i] := CoolSet;
819 hi_ 1.1 end;
820     for i := 0 to BROWSER_COOLBAND_COUNT - 1 do begin
821     CoolSet.FCoolID := ini.ReadInteger('BrowserCoolBar', 'ID' + IntToStr(i), -1);
822     CoolSet.FCoolWidth := ini.ReadInteger('BrowserCoolBar', 'Width' + IntToStr(i), -1);
823     CoolSet.FCoolBreak := ini.ReadBool('BrowserCoolBar', 'Break' + IntToStr(i), False);
824     BrowserCoolSet[i] := CoolSet;
825     end;
826 h677 1.3
827 yoffy 1.8 //???若????
828     FAbonDeleterlo := ini.ReadBool('Abon','Deleterlo',false);
829     FAbonReplaceul := ini.ReadBool('Abon','Replaceul',false);
830 h677 1.9 FPopUpAbon := ini.ReadBool('Abon','Popup',false);
831     FShowNGLinesNum := ini.ReadBool('Abon','ShowNGLines',false);
832     FAddResAnchor := ini.ReadBool('Abon','AddResAnchor',false);
833    
834 hi_ 1.1 finally
835     ini.Free;
836     end;
837     end;
838 h677 1.11 //?炊?贋?亥??RL茯??粋昭??/span>
839     procedure TSetting.ReadBoardURLsFile();
840     var
841     ini: TMemIniFile;
842     urlNum: Integer;
843     i : Integer;
844     begin
845     if not FileExists(GetBoardURLFileName()) then
846     MakeURLIniFile();
847     ini := TMemIniFile.Create(GetBoardURLFileName());
848     try
849     urlNum := ini.ReadInteger('URL','count',0);
850     BoardURLSelected := ini.ReadInteger('URL','selected',0);
851     for i := 0 to urlNum - 1 do begin
852     FBoardURLs.Append(ini.ReadString('URL',IntToStr(i+1),''));
853     end;
854     finally
855     ini.Free;
856     end;
857 hi_ 1.1
858 h677 1.11 end;
859 hi_ 1.1 //荐?????<?ゃ???絖?(system)
860     procedure TSetting.WriteSystemSettingFile();
861     var
862     ini: TMemIniFile;
863     begin
864     ini := TMemIniFile.Create(GetFileName());
865     try
866     //??篆<???????<?泣?ゃ??/span>
867     ini.WriteInteger('HTTP', 'RecvBufferSize', FRecvBufferSize);
868     //HTTP1.1篏睡??/span>
869     ini.WriteBool('HTTP', 'Protocol', FProtocol);
870     //???????傑・膓?HTTP1.1篏睡??/span>
871     ini.WriteBool('HTTP', 'ProxyProtocol', FProxyProtocol);
872    
873     ini.WriteBool('ReadProxy', 'Proxy', FReadProxy);
874     ini.WriteString('ReadProxy', 'Address', FReadProxyAddress);
875     ini.WriteInteger('ReadProxy', 'Port', FReadProxyPort);
876     ini.WriteString('ReadProxy', 'UserID', FReadProxyUserID);
877     ini.WriteString('ReadProxy', 'Password', FReadProxyPassword);
878    
879     ini.WriteBool('WriteProxy', 'Proxy', FWriteProxy);
880     ini.WriteString('WriteProxy', 'Address', FWriteProxyAddress);
881     ini.WriteInteger('WriteProxy', 'Port', FWriteProxyPort);
882     ini.WriteString('WriteProxy', 'UserID', FWriteProxyUserID);
883     ini.WriteString('WriteProxy', 'Password', FWriteProxyPassword);
884    
885 yoffy 1.6 ini.WriteString('Window', 'BrowserFontName', FBrowserFontName);
886     ini.WriteInteger('Window', 'BrowserFontSize', FBrowserFontSize);
887     ini.WriteInteger('Window', 'BrowserFontSize', FBrowserFontSize);
888     ini.WriteInteger('Window', 'BrowserFontBold', FBrowserFontBold);
889     ini.WriteInteger('Window', 'BrowserFontItalic', FBrowserFontItalic);
890     ini.WriteInteger('Window', 'BrowserFontColor', FBrowserFontColor);
891     ini.WriteInteger('Window', 'BrowserBackColor', FBrowserBackColor);
892    
893 hi_ 1.1 ini.WriteString('Window', 'CabinetFontName', FCabinetFontName);
894     ini.WriteInteger('Window', 'CabinetFontSize', FCabinetFontSize);
895     ini.WriteString('Window', 'CabinetFontColor', ColorToString(FCabinetFontColor));
896     ini.WriteString('Window', 'CabinetBackColor', ColorToString(FCabinetBackColor));
897    
898     ini.WriteString('Window', 'ListFontName', FListFontName);
899     ini.WriteInteger('Window', 'ListFontSize', FListFontSize);
900     ini.WriteString('Window', 'ListFontColor', ColorToString(FListFontColor));
901     ini.WriteString('Window', 'ListBackColor', ColorToString(FListBackColor));
902    
903     ini.WriteString('Window', 'EditorFontName', FEditorFontName);
904     ini.WriteInteger('Window', 'EditorFontSize', FEditorFontSize);
905     ini.WriteString('Window', 'EditorFontColor', ColorToString(FEditorFontColor));
906     ini.WriteString('Window', 'EditorBackColor', ColorToString(FEditorBackColor));
907    
908     ini.WriteString('Window', 'BrowserTabFontName', FBrowserTabFontName);
909     ini.WriteInteger('Window', 'BrowserTabFontSize', FBrowserTabFontSize);
910     ini.WriteBool('Window', 'BrowserTabFontBold', FBrowserTabFontBold);
911     ini.WriteBool('Window', 'BrowserTabFontItalic', FBrowserTabFontItalic);
912    
913     ini.WriteString('Window', 'HintFontName', FHintFontName);
914     ini.WriteInteger('Window', 'HintFontSize', FHintFontSize);
915     ini.WriteString('Window', 'HintFontColor', ColorToString(FHintFontColor));
916     ini.WriteString('Window', 'HintBackColor', ColorToString(FHintBackColor));
917    
918     ini.UpdateFile;
919     finally
920     ini.Free;
921     end;
922     end;
923    
924     //荐?????<?ゃ???絖?(window)
925     procedure TSetting.WriteWindowSettingFile();
926     var
927     i: Integer;
928     ini: TMemIniFile;
929     CoolSet: TCoolSet;
930     begin
931     ini := TMemIniFile.Create(GetFileName());
932     try
933     ini.WriteInteger('WindowSize', 'Top', WindowTop);
934     ini.WriteInteger('WindowSize', 'Left', WindowLeft);
935     ini.WriteInteger('WindowSize', 'Height', WindowHeight);
936     ini.WriteInteger('WindowSize', 'Width', WindowWidth);
937     ini.WriteBool('WindowSize', 'Max', WindowMax);
938    
939     ini.WriteInteger('ViewStyle', 'ListView', Ord(ListStyle));
940    
941     ini.WriteInteger('EditorWindowSize', 'Top', EditWindowTop);
942     ini.WriteInteger('EditorWindowSize', 'Left', EditWindowLeft);
943     ini.WriteInteger('EditorWindowSize', 'Height', EditWindowHeight);
944     ini.WriteInteger('EditorWindowSize', 'Width', EditWindowWidth);
945     ini.WriteBool('EditorWindowSize', 'Max', EditWindowMax);
946    
947 yoffy 1.8 ini.WriteInteger('OptionDialog', 'TabIndex', FOptionDialogTabIndex);
948    
949 hi_ 1.1 //???若??????/span>
950     ini.WriteBool('ToolBar', 'StdVisible', FStdToolBarVisible);
951     ini.WriteBool('ToolBar', 'AddressVisible', FAddressBarVisible);
952     ini.WriteBool('ToolBar', 'LinkVisible', FLinkBarVisible);
953     ini.WriteBool('ToolBar', 'ListVisible', FListToolBarVisible);
954     ini.WriteBool('ToolBar', 'ListNameVisible', FListNameBarVisible);
955     ini.WriteBool('ToolBar', 'BrowserVisible', FBrowserToolBarVisible);
956     ini.WriteBool('ToolBar', 'BrowserNameVisible', FBrowserNameBarVisible);
957     //???若??????rapable
958     ini.WriteBool('ToolBar', 'ListWrapable', FListToolBarWrapable);
959     ini.WriteBool('ToolBar', 'BrowserWrapable', FBrowserToolBarWrapable);
960    
961     //?帥??
962     ini.WriteBool('Tab', 'BrowserTabVisible', FBrowserTabVisible);
963     ini.WriteInteger('Tab', 'BrowserTabPosition', Ord(FBrowserTabPosition));
964     ini.WriteInteger('Tab', 'BrowserTabAppend', Ord(FBrowserTabAppend));
965     ini.WriteInteger('Tab', 'BrowserTabStyle', Ord(FBrowserTabStyle));
966    
967     //?<???祉?若?吾????/span>
968     ini.WriteBool('MessageBar', 'Visible', FMessageBarVisible);
969     ini.WriteInteger('MessageBar', 'Height', FMessegeBarHeight);
970    
971     //?鴻???若?帥?鴻????/span>
972     ini.WriteBool('StatusBar', 'Visible', FStatusBarVisible);
973    
974     //???c????????
975     ini.WriteBool('Cabinet', 'Visible', FCabinetVisible);
976     ini.WriteInteger('Cabinet', 'Width', FCabinetWidth);
977 yoffy 1.8 ini.WriteInteger('Cabinet', 'Index', FCabinetIndex);
978 hi_ 1.1
979     //???鴻?????泣?ゃ?冴?????贋梓綛?/span>
980     ini.WriteInteger('List', 'Orientation', Ord(FListOrientation));
981     ini.WriteInteger('List', 'Height', FListHeight);
982     ini.WriteInteger('List', 'HeightState', Ord(FListHeightState));
983     ini.WriteInteger('List', 'Width', FListWidth);
984     ini.WriteInteger('List', 'WidthState', Ord(FListWidthState));
985     // ini.WriteBool('List', 'HeightMax', FListHeightMax);
986     // ini.WriteBool('List', 'WidthMax', FListWidthMax);
987    
988    
989     // ini.WriteInteger('Window', 'BrowserFontSize', BrowserFontSize);
990    
991     //???鴻????埈;腓?/span>
992     ini.WriteBool('Function', 'ListViewNo', FListViewNo);
993     //CSS篏睡??/span>
994     ini.WriteBool('CSS', 'UseCSS', FUseCSS);
995     //CSS???<?ゃ????
996     ini.WriteString('CSS', 'FileName', FCSSFileName);
997     //Mail罨?茵?ず
998     ini.WriteBool('Thread', 'ShowMail', FShowMail);
999 h677 1.10 //????00???壕;腓?/span>
1000     ini.WriteBool('Thread', 'OnlyAHundredRes', FOnlyAHundredRes);
1001 hi_ 1.1 //???医???ょ∈茯?
1002     ini.WriteBool('Function', 'LogDeleteMessage', FDeleteMsg);
1003     //???≪?????c???????????≪????茵?ず
1004     ini.WriteBool('Thread', 'UnActivePopup', FUnActivePopup);
1005 yoffy 1.2 //???鴻???????≪???????????若???若????
1006     ini.WriteBool('Thread', 'ResPopupHeaderBold', FResPopupHeaderBold);
1007 hi_ 1.1
1008 h677 1.11 //ini.WriteString('BoardURL', '2ch', FBoardURL2ch);
1009 hi_ 1.1
1010     //茯?荐主?????若??D?祉???鴻???若??
1011     ini.WriteString('Attestation', 'UserID', FUserID);
1012     ini.WriteString('Attestation', 'Password', Encrypt(FPassword));
1013     ini.WriteBool('Attestation', 'AutoLogin', FAutoLogin);
1014    
1015     //URL??????????莎桁???≪????/span>
1016     ini.WriteBool('URLApp', 'Select', FURLApp);
1017     ini.WriteString('URLApp', 'File', FURLAppFile);
1018    
1019     //mailto????????????篏?
1020     ini.WriteBool('Mailto', 'Open', FOpenMailer);
1021    
1022     //???????≪????篏?臀?/span>
1023     ini.WriteInteger('Browser', 'PopupPosition', Ord(FPopupPosition));
1024    
1025     //?≪?????鴻????/span>
1026     ini.WriteBool('AddressBar', 'URLDisplay', FURLDisplay);
1027     ini.WriteBool('AddressBar', 'TabStop', FAddressBarTabStop);
1028     ini.WriteBool('AddressBar', 'LinkAdd', FLinkAddAddressBar);
1029     ini.WriteInteger('AddressBar', 'HistoryCount', FAddressHistoryCount);
1030    
1031     //?糸????????ャ??/span>
1032     ini.WriteBool('Browser', 'PreviewVisible', FPreviewVisible);
1033     ini.WriteInteger('Browser', 'PreviewSize', Ord(FPreviewSize));
1034     ini.WriteInteger('Browser', 'PreviewWait', FPreviewWait);
1035    
1036     //?鴻??????筝?荀ф?贋?違?≪?ゃ?潟??/span>
1037     ini.WriteBool('ThreadList', 'StateIconVisible', FListIconVisible);
1038    
1039     //?吾??莨若?炊?????激?恰???私戎??┃絎?
1040     ini.WriteBool('PostTime', 'UseMachineTime', FUseMachineTime);
1041     ini.WriteInteger('PostTime', 'TimeAdjustSec', FTimeAdjustSec);
1042     ini.WriteBool('PostTime', 'TimeAdjust', FTimeAdjust);
1043    
1044     //???鴻????????
1045     for i := 0 to Length(FBBSColumnWidth) - 1 do begin
1046     ini.WriteInteger('BBSColumnWidth', 'ID' + IntToStr(i), FBBSColumnWidth[i]);
1047     end;
1048     for i := 0 to Length(FCategoryColumnWidth) - 1 do begin
1049     ini.WriteInteger('CategoryColumnWidth', 'ID' + IntToStr(i), FCategoryColumnWidth[i]);
1050     end;
1051     for i := 0 to Length(FBoardColumnWidth) - 1 do begin
1052     ini.WriteInteger('BoardColumnWidth', 'ID' + IntToStr(i), FBoardColumnWidth[i]);
1053     end;
1054    
1055     //?泣???潟??
1056     for i := 0 to GetSoundCount - 1 do begin
1057     if not FileExists(SoundFileName[i]) then
1058     SoundFileName[i] := '';
1059     ini.WriteString('Sound', SoundName[i], SoundFileName[i]);
1060     end;
1061    
1062     //CoolBar
1063     ini.EraseSection('MainCoolBar');
1064     for i := 0 to MAIN_COOLBAND_COUNT - 1 do begin
1065     CoolSet := MainCoolSet[i];
1066     ini.WriteInteger('MainCoolBar', 'ID' + IntToStr(i), CoolSet.FCoolID);
1067     ini.WriteInteger('MainCoolBar', 'Width' + IntToStr(i), CoolSet.FCoolWidth);
1068     ini.WriteBool('MainCoolBar', 'Break' + IntToStr(i), CoolSet.FCoolBreak);
1069     end;
1070 yoffy 1.2 ini.EraseSection('ListCoolBar');
1071 yoffy 1.5 ini.WriteInteger( 'ListCoolBar', 'SelectWidth', FSelectComboBoxWidth );
1072 hi_ 1.1 for i := 0 to LIST_COOLBAND_COUNT - 1 do begin
1073     CoolSet := ListCoolSet[i];
1074     ini.WriteInteger('ListCoolBar', 'ID' + IntToStr(i), CoolSet.FCoolID);
1075     ini.WriteInteger('ListCoolBar', 'Width' + IntToStr(i), CoolSet.FCoolWidth);
1076     ini.WriteBool('ListCoolBar', 'Break' + IntToStr(i), CoolSet.FCoolBreak);
1077     end;
1078     ini.EraseSection('BrowserCoolBar');
1079     for i := 0 to BROWSER_COOLBAND_COUNT - 1 do begin
1080     CoolSet := BrowserCoolSet[i];
1081     ini.WriteInteger('BrowserCoolBar', 'ID' + IntToStr(i), CoolSet.FCoolID);
1082     ini.WriteInteger('BrowserCoolBar', 'Width' + IntToStr(i), CoolSet.FCoolWidth);
1083     ini.WriteBool('BrowserCoolBar', 'Break' + IntToStr(i), CoolSet.FCoolBreak);
1084     end;
1085 h677 1.3
1086 h677 1.9 //???若????
1087     ini.WriteBool('Abon','Deleterlo',FAbonDeleterlo);
1088     ini.WriteBool('Abon','Replaceul',FAbonReplaceul);
1089 h677 1.12 ini.WriteBool('Abon','Popup',FPopUpAbon);
1090 h677 1.9 ini.WriteBool('Abon','ShowNGLines',FShowNGLinesNum);
1091     ini.WriteBool('Abon','AddResAnchor',FAddResAnchor);
1092 hi_ 1.1
1093     ini.UpdateFile;
1094     finally
1095     ini.Free;
1096     end;
1097     end;
1098    
1099     //荐?????<?ゃ???絖?(name & mail)
1100     procedure TSetting.WriteNameMailSettingFile();
1101     var
1102     i: Integer;
1103     ini: TMemIniFile;
1104     begin
1105     ini := TMemIniFile.Create(GetFileName());
1106     try
1107     ini.EraseSection('Name');
1108     ini.EraseSection('Mail');
1109     ini.EraseSection('SelectText');
1110     for i := 0 to FNameList.Count - 1 do begin
1111     ini.WriteString('Name', Format('%.2d', [i + 1]), FNameList[i]);
1112     if i >= 39 then
1113     Break;
1114     end;
1115     for i := 0 to FMailList.Count - 1 do begin
1116     ini.WriteString('Mail', Format('%.2d', [i + 1]), FMailList[i]);
1117     if i >= 39 then
1118     Break;
1119     end;
1120     for i := 0 to FSelectTextList.Count - 1 do begin
1121     ini.WriteString('SelectText', Format('%.2d', [i + 1]), FSelectTextList[i]);
1122     if i >= 39 then
1123     Break;
1124     end;
1125     ini.UpdateFile;
1126     finally
1127     ini.Free;
1128     end;
1129     end;
1130    
1131     procedure TSetting.WriteFolderSettingFile();
1132     var
1133     ini: TMemIniFile;
1134     begin
1135     ini := TMemIniFile.Create(GetFileName());
1136     try
1137     if ExtractFilePath(Application.ExeName) + 'Log' = NewLogFolder then
1138     ini.DeleteKey('Folder', 'LogFolder')
1139     else
1140     ini.WriteString('Folder', 'LogFolder', NewLogFolder);
1141     ini.UpdateFile;
1142     finally
1143     ini.Free;
1144     end;
1145     end;
1146 h677 1.11 //?炊?贋?亥??oardURL??篆?絖?
1147     procedure TSetting.WriteBoardURLSettingFile();
1148     var
1149     ini: TMemIniFile;
1150     i : Integer;
1151     oldcount : Integer;
1152     begin
1153     ini := TMemIniFile.Create(GetBoardURLFileName());
1154     try
1155     oldcount := ini.ReadInteger('URL','count',FBoardURLs.Count);
1156     ini.WriteInteger('URL','count',FBoardURLs.Count);
1157     ini.WriteInteger('URL','selected',BoardURLSelected);
1158     for i := 0 to FBoardURLs.Count -1 do begin
1159     ini.WriteString('URL',IntToStr(i+1),FBoardURLs.Strings[i]);
1160     end;
1161     if oldcount > FBoardURLs.Count then begin
1162     for i := FBoardURLs.Count to oldcount do begin
1163     ini.DeleteKey('URL',IntToStr(i+1));
1164     end;
1165     end;
1166     ini.UpdateFile;
1167     finally
1168     ini.Free;
1169     end;
1170     end;
1171 hi_ 1.1
1172     //???鴻????????????????/span>
1173     function TSetting.GetBBSColumnWidth(index: Integer): Integer;
1174     begin
1175     Result := IfThen(index in [0..Length(FBBSColumnWidth) - 1], FBBSColumnWidth[index], 0);
1176     end;
1177    
1178     function TSetting.GetCategoryColumnWidth(index: Integer): Integer;
1179     begin
1180     Result := IfThen(index in [0..Length(FCategoryColumnWidth) - 1], FCategoryColumnWidth[index], 0);
1181     end;
1182    
1183     function TSetting.GetBoardColumnWidth(index: Integer): Integer;
1184     begin
1185     Result := IfThen(index in [0..Length(FBoardColumnWidth) - 1], FBoardColumnWidth[index], 0);
1186     end;
1187    
1188     procedure TSetting.SetBBSColumnWidth(index: Integer; value: Integer);
1189     begin
1190     if index in [0..Length(FBBSColumnWidth) - 1] then
1191     FBBSColumnWidth[index] := value;
1192     end;
1193    
1194     procedure TSetting.SetCategoryColumnWidth(index: Integer; value: Integer);
1195     begin
1196     if index in [0..Length(FCategoryColumnWidth) - 1] then
1197     FCategoryColumnWidth[index] := value;
1198     end;
1199    
1200     procedure TSetting.SetBoardColumnWidth(index: Integer; value: Integer);
1201     begin
1202     if index in [0..Length(FBoardColumnWidth) - 1] then
1203     FBoardColumnWidth[index] := value;
1204     end;
1205    
1206     function TSetting.GetSoundCount: Integer;
1207     begin
1208     Result := Length(SOUND_NAME);
1209     end;
1210    
1211     function TSetting.GetSoundName(Index: Integer): string;
1212     begin
1213     if (Index < GetSoundCount) and (Index >= 0) then
1214     Result := SOUND_NAME[Index].Name
1215     else
1216     Result := '';
1217     end;
1218    
1219     function TSetting.GetSoundViewName(Index: Integer): string;
1220     begin
1221     if (Index < GetSoundCount) and (Index >= 0) then
1222     Result := SOUND_NAME[Index].ViewName
1223     else
1224     Result := '';
1225     end;
1226    
1227     function TSetting.GetSoundFileName(Index: Integer): string;
1228     begin
1229     if (Index < GetSoundCount) and (Index >= 0) then
1230     Result := SOUND_NAME[Index].FileName
1231     else
1232     Result := '';
1233     end;
1234    
1235     procedure TSetting.SetSoundFileName(Index: Integer; value: string);
1236     begin
1237     if (Index < GetSoundCount) and (Index >= 0) then
1238     SOUND_NAME[Index].FileName := value;
1239     end;
1240    
1241     function TSetting.FindSoundFileName(Name: string): string;
1242     var
1243     i: Integer;
1244     begin
1245     for i := 0 to GetSoundCount - 1 do begin
1246     if SoundName[i] = Name then begin
1247     Result := SoundFileName[i];
1248     Exit;
1249     end;
1250     end;
1251     Result := '';
1252     end;
1253    
1254     function TSetting.Encrypt(s: string): string;
1255     var
1256     cryptObj: THogeCryptAuto;
1257     inputStream, outputStream: TStringStream;
1258     begin
1259     inputStream := TStringStream.Create(s);
1260     outputStream := TStringStream.Create('');
1261     cryptObj := THogeCryptAuto.Create;
1262     try
1263     // ???桁??
1264     cryptObj.Encrypt(inputStream, GIKO_ENCRYPT_TEXT, outputStream);
1265    
1266     // ???ゃ?????????у?荀?????????????鴻???????
1267     Result := HogeBase64Encode(outputStream.DataString);
1268     finally
1269     cryptObj.Free;
1270     outputStream.Free;
1271     inputStream.Free;
1272     end;
1273     end;
1274    
1275     function TSetting.Decrypt(s: string): string;
1276     var
1277     cryptObj: THogeCryptAuto;
1278     inputStream, outputStream: TStringStream;
1279     begin
1280     try
1281     inputStream := TStringStream.Create(HogeBase64Decode(s));
1282     except
1283     Result := '';
1284     Exit;
1285     end;
1286     outputStream := TStringStream.Create('');
1287     cryptObj := THogeCryptAuto.Create;
1288     try
1289     // 緇??/span>
1290     cryptObj.Decrypt(inputStream, GIKO_ENCRYPT_TEXT, outputStream);
1291     Result := outputStream.DataString;
1292     finally
1293     cryptObj.Free;
1294     outputStream.Free;
1295     inputStream.Free;
1296     end;
1297     end;
1298    
1299     function TSetting.GetMainCoolSet(Index: Integer): TCoolSet;
1300     begin
1301     if Index in [0..MAIN_COOLBAND_COUNT - 1] then
1302     Result := FMainCoolBar[Index]
1303     else begin
1304     Result.FCoolID := -1;
1305     Result.FCoolWidth := -1;
1306     Result.FCoolBreak := False;
1307     end;
1308     end;
1309    
1310     function TSetting.GetBoardCoolSet(Index: Integer): TCoolSet;
1311     begin
1312     if Index in [0..LIST_COOLBAND_COUNT - 1] then
1313     Result := FListCoolBar[Index]
1314     else begin
1315     Result.FCoolID := -1;
1316     Result.FCoolWidth := -1;
1317     Result.FCoolBreak := False;
1318     end;
1319     end;
1320    
1321     function TSetting.GetBrowserCoolSet(Index: Integer): TCoolSet;
1322     begin
1323     if Index in [0..BROWSER_COOLBAND_COUNT - 1] then
1324     Result := FBrowserCoolBar[Index]
1325     else begin
1326     Result.FCoolID := -1;
1327     Result.FCoolWidth := -1;
1328     Result.FCoolBreak := False;
1329     end;
1330     end;
1331    
1332     procedure TSetting.SetMainCoolSet(Index: Integer; CoolSet: TCoolSet);
1333     begin
1334     if Index in [0..MAIN_COOLBAND_COUNT - 1] then
1335     FMainCoolBar[Index] := CoolSet;
1336     end;
1337    
1338     procedure TSetting.SetBoardCoolSet(Index: Integer; CoolSet: TCoolSet);
1339     begin
1340     if Index in [0..LIST_COOLBAND_COUNT - 1] then
1341     FListCoolBar[Index] := CoolSet;
1342     end;
1343    
1344     procedure TSetting.SetBrowserCoolSet(Index: Integer; CoolSet: TCoolSet);
1345     begin
1346     if Index in [0..BROWSER_COOLBAND_COUNT - 1] then
1347     FBrowserCoolBar[Index] := CoolSet;
1348     end;
1349    
1350 h677 1.11 //url.ini????????????????????
1351     procedure TSetting.MakeURLIniFile();
1352     var
1353     ini: TMemIniFile;
1354     begin
1355     ini := TMemIniFile.Create(GetBoardURLFileName());
1356     try
1357     ini.WriteInteger('URL','count',2);
1358     ini.WriteInteger('URL','selected',2);
1359     ini.WriteString('URL','1',DEFAULT_2CH_BOARD_URL1);
1360     ini.WriteString('URL','2',DEFAULT_2CH_BOARD_URL2);
1361     ini.UpdateFile;
1362     finally
1363     ini.Free;
1364     end;
1365     end;
1366 hi_ 1.1
1367     end.
1368    

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