Develop and Download Open Source Software

Browse CVS Repository

Annotation of /gikonavigoeson/gikonavi/Option.pas

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


Revision 1.70 - (hide annotations) (download) (as text)
Mon Jan 10 15:41:04 2005 UTC (19 years, 3 months ago) by yoffy
Branch: MAIN
Changes since 1.69: +5 -1 lines
File MIME type: text/x-pascal
- スパムフィルタを排除。SPAM_FILTER_ENABLED を定義する事で復帰可能。

1 hi_ 1.1 unit Option;
2    
3     interface
4    
5     uses
6     Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
7     ComCtrls, StdCtrls, ExtCtrls, Dialogs, FileCtrl, MMSystem,
8 yoffy 1.8 GikoSystem, GikoUtil, Buttons, UrlMon, Menus, ImgList, OleCtrls,
9 h677 1.59 {$IF Defined(DELPRO) }
10     SHDocVw,
11     MSHTML,
12     {$ELSE}
13     SHDocVw_TLB,
14     MSHTML_TLB,
15     {$IFEND}
16     BoardGroup;
17 hi_ 1.1
18     type
19     TOptionDialog = class(TForm)
20     CancelBotton: TButton;
21 yoffy 1.22 ApplyButton: TButton;
22 hi_ 1.1 FontDialog: TFontDialog;
23     ColorDialog: TColorDialog;
24 yoffy 1.22 OpenDialog: TOpenDialog;
25 genyakun 1.57 Label26: TLabel;
26     CroutOption: TButton;
27     OptionTab: TPageControl;
28     ConnectSheet: TTabSheet;
29     ReadProxyGroupBox: TGroupBox;
30     ReadAddressLabel: TLabel;
31     ReadPortLabel: TLabel;
32     ReadUserIDLabel: TLabel;
33     ReadPasswordLabel: TLabel;
34     ReadProxyCheck: TCheckBox;
35     ReadProxyAddressEdit: TEdit;
36     ReadPortEdit: TEdit;
37     ReadProxyUserIDEdit: TEdit;
38     ReadProxyPasswordEdit: TEdit;
39     WriteProxyGroupBox: TGroupBox;
40     WriteAddressLabel: TLabel;
41     WritePortLabel: TLabel;
42     WriteUserIDLabel: TLabel;
43     WritePasswordLabel: TLabel;
44     WriteProxyCheck: TCheckBox;
45     WriteProxyAddressEdit: TEdit;
46     WritePortEdit: TEdit;
47     WriteProxyUserIDEdit: TEdit;
48     WriteProxyPasswordEdit: TEdit;
49     Font1Sheet: TTabSheet;
50     Bevel1: TBevel;
51     Bevel2: TBevel;
52     Label19: TLabel;
53     Bevel5: TBevel;
54     Label20: TLabel;
55     Label21: TLabel;
56     Label22: TLabel;
57     Label23: TLabel;
58     lblSFont: TLabel;
59     CabinetFontBotton: TButton;
60     CabinetColorBotton: TButton;
61     CabinetDefaultButton: TButton;
62     CabinetMemo: TMemo;
63     ListMemo: TMemo;
64     ListFontBotton: TButton;
65     ListColorBotton: TButton;
66     ListDefaultBotton: TButton;
67     HintFontButton: TButton;
68     HintBackButton: TButton;
69     HintDefaultButton: TButton;
70     HintMemo: TMemo;
71     EditorMemo: TMemo;
72     EditorFontBotton: TButton;
73     EditorColorBotton: TButton;
74     EditorDefaultBotton: TButton;
75     BrowserTabMemo: TMemo;
76     BruwserTabFontButton: TButton;
77     BrowserTabDefaultButton: TButton;
78 h677 1.23 OddResNumCheckBox: TCheckBox;
79     OddResNumColorBox: TColorBox;
80 genyakun 1.57 CSSTabSheet: TTabSheet;
81     GroupBox12: TGroupBox;
82     CSSListLabel: TLabel;
83     CSSCheckBox: TCheckBox;
84     CSSListView: TListView;
85     CSSBrowser: TWebBrowser;
86     CSSFontCheckBox: TCheckBox;
87     CSSBackColorCheckBox: TCheckBox;
88     CSSFontButton: TButton;
89     CSSBackColorButton: TButton;
90     TabSheet3: TTabSheet;
91     GroupBox9: TGroupBox;
92     ThreadListIconCheckBox: TCheckBox;
93 h677 1.28 GroupBox16: TGroupBox;
94     CreationTimeLogsCheckBox: TCheckBox;
95     FutureThreadCheckBox: TCheckBox;
96 yoffy 1.35 GroupBox5: TGroupBox;
97 yoffy 1.36 BrowserMaxLabel: TLabel;
98 yoffy 1.35 BrowserMaxCombo: TComboBox;
99 h677 1.41 GroupBox17: TGroupBox;
100     SelectIntervalLabel: TLabel;
101     Label4: TLabel;
102     Label6: TLabel;
103 genyakun 1.57 SelectIntervalEdit: TEdit;
104     GroupBox18: TGroupBox;
105     DatOchiSortCombo: TComboBox;
106     ThreadSheet: TTabSheet;
107     GroupBox1: TGroupBox;
108     ShowMailCheckBox: TCheckBox;
109     ResRangeHoldCheckBox: TCheckBox;
110     ResRangeHoldComboBox: TComboBox;
111     GroupBox2: TGroupBox;
112     AppFolderLabel: TLabel;
113     URLAppCheckBox: TCheckBox;
114     AppFolderEdit: TEdit;
115     AppFolderButton: TButton;
116     OpenMailerCheckBox: TCheckBox;
117     GroupBox6: TGroupBox;
118     LogDeleteMessageCheckBox: TCheckBox;
119     ResAnchorGroupBox: TGroupBox;
120     ResAnchorCheckBox: TCheckBox;
121     TabSheet1: TTabSheet;
122     PopupPositionRadioGroup: TRadioGroup;
123 h677 1.60 TabAddRadioGroup: TRadioGroup;
124 genyakun 1.57 GroupBox8: TGroupBox;
125     Label14: TLabel;
126     Label15: TLabel;
127     Label16: TLabel;
128     PreviewVisibleCheckBox: TCheckBox;
129     PreviewSizeComboBox: TComboBox;
130     PreviewWaitEdit: TEdit;
131     GroupBox10: TGroupBox;
132     UnActivePopupCheckBox: TCheckBox;
133     ResPopupBoldCheckBox: TCheckBox;
134     TabSheet2: TTabSheet;
135     GroupBox7: TGroupBox;
136     Label3: TLabel;
137     Label11: TLabel;
138     URLDisplayCheckBox: TCheckBox;
139     AddressHistoryCountEdit: TEdit;
140     TabStopAddressBarCheckBox: TCheckBox;
141     LinkAddCheckBox: TCheckBox;
142     GroupBox15: TGroupBox;
143     ShowDialogForEndCheckBox: TCheckBox;
144     AllTabCloseCheckBox: TCheckBox;
145     SambaGroupBox: TGroupBox;
146     UseSambaCheckBox: TCheckBox;
147 genyakun 1.46 TabAutoSaveLoad: TGroupBox;
148 genyakun 1.55 TabLoadSave: TCheckBox;
149 genyakun 1.57 SoundSheet: TTabSheet;
150     SoundEventGroupBox: TGroupBox;
151     SoundListView: TListView;
152     SoundReferButton: TButton;
153     SoundFileEdit: TEdit;
154     SoundPlayButton: TBitBtn;
155     FolderSheet: TTabSheet;
156     FolderGroupBox: TGroupBox;
157     Label1: TLabel;
158     Label2: TLabel;
159     Label5: TLabel;
160     LogFolderEdit: TEdit;
161     LogFolderButton: TButton;
162     NGwordSheet: TTabSheet;
163     GroupBox14: TGroupBox;
164     RloCheckBox: TCheckBox;
165     ReplaceulCheckBox: TCheckBox;
166     PopUpAbonCheckBox: TCheckBox;
167     ShowNGLineCheckBox: TCheckBox;
168     AddResAnchorCheckBox: TCheckBox;
169     DeleteSyriaCheckBox: TCheckBox;
170     UserIDSheet: TTabSheet;
171     Tora3URLLabel: TLabel;
172     Label12: TLabel;
173     GroupBox3: TGroupBox;
174     Label9: TLabel;
175     Label10: TLabel;
176     ForcedLoginLabel: TLabel;
177     UserIDEdit: TEdit;
178     PasswordEdit: TEdit;
179     AutoLoginCheckBox: TCheckBox;
180     ForcedLoginCheckBox: TCheckBox;
181     GroupBox4: TGroupBox;
182     Label13: TLabel;
183     BoardURLComboBox: TComboBox;
184     AddURLButton: TButton;
185     RemoveURLButton: TButton;
186     OkBotton: TButton;
187 yoffy 1.70 SpamFilterGroupBox: TGroupBox;
188 yoffy 1.67 SpamFilterAlgorithmComboBox: TComboBox;
189 h677 1.69 TabSheet4: TTabSheet;
190     GroupBox13: TGroupBox;
191     UseUndecidedCheckBox: TCheckBox;
192 hi_ 1.1 procedure FormCreate(Sender: TObject);
193     procedure FormDestroy(Sender: TObject);
194     procedure ApplyButtonClick(Sender: TObject);
195     procedure CabinetFontBottonClick(Sender: TObject);
196     procedure CabinetColorBottonClick(Sender: TObject);
197     procedure EditorFontBottonClick(Sender: TObject);
198     procedure OkBottonClick(Sender: TObject);
199     procedure ReadProxyCheckClick(Sender: TObject);
200     procedure ListFontBottonClick(Sender: TObject);
201     procedure ListColorBottonClick(Sender: TObject);
202     procedure EditorColorBottonClick(Sender: TObject);
203     procedure CabinetDefaultButtonClick(Sender: TObject);
204     procedure ReadPortEditExit(Sender: TObject);
205     procedure ListDefaultBottonClick(Sender: TObject);
206     procedure EditorDefaultBottonClick(Sender: TObject);
207     procedure HintFontButtonClick(Sender: TObject);
208     procedure HintBackButtonClick(Sender: TObject);
209     procedure HintDefaultButtonClick(Sender: TObject);
210     procedure LogFolderButtonClick(Sender: TObject);
211     procedure FormClose(Sender: TObject; var Action: TCloseAction);
212     procedure SoundReferButtonClick(Sender: TObject);
213     procedure SoundPlayButtonClick(Sender: TObject);
214     procedure SoundListViewChanging(Sender: TObject; Item: TListItem;
215 yoffy 1.22 Change: TItemChange; var AllowChange: Boolean);
216 hi_ 1.1 procedure SoundFileEditChange(Sender: TObject);
217     procedure OptionTabChange(Sender: TObject);
218     procedure AppFolderButtonClick(Sender: TObject);
219     procedure WriteProxyCheckClick(Sender: TObject);
220     procedure WritePortEditExit(Sender: TObject);
221     procedure Tora3URLLabelClick(Sender: TObject);
222     procedure HotKeyEnter(Sender: TObject);
223     procedure HotKeyExit(Sender: TObject);
224     procedure URLAppCheckBoxClick(Sender: TObject);
225     procedure BruwserTabFontButtonClick(Sender: TObject);
226     procedure BrowserTabDefaultButtonClick(Sender: TObject);
227 yoffy 1.22 procedure AddressHistoryCountEditExit(Sender: TObject);
228     procedure PreviewWaitEditExit(Sender: TObject);
229 genyakun 1.57 procedure CSSCheckBoxClick(Sender: TObject); procedure CSSFontButtonClick(Sender: TObject);
230 yoffy 1.22 procedure CSSBackColorButtonClick(Sender: TObject);
231     procedure CSSFontCheckBoxClick(Sender: TObject);
232     procedure CSSBackColorCheckBoxClick(Sender: TObject);
233     procedure CSSListViewChange(Sender: TObject; Item: TListItem;
234     Change: TItemChange);
235     procedure AddURLButtonClick(Sender: TObject);
236     procedure RemoveURLButtonClick(Sender: TObject);
237 h677 1.23 procedure OddResNumCheckBoxClick(Sender: TObject);
238 yoffy 1.49 procedure ResRangeHoldCheckBoxClick(Sender: TObject);
239 genyakun 1.58 procedure CroutOptionClick(Sender: TObject);
240 hi_ 1.1 private
241     { Private 鐃緒申鐃緒申 }
242     FClose: Boolean;
243 q9_ 1.54 FRepaintList: Boolean;
244 h677 1.32 FRepaintThread: Boolean;
245 yoffy 1.22 FCSSFont: TFont;
246     FCSSBackColor: TColor;
247 h677 1.31 FCSSStrings: TStringList;
248 hi_ 1.1 function GetMemoText(font: TFont; text: string): string;
249     // function GetFontText(Font: TFont; Text: string): string;
250     procedure SetValue;
251 h677 1.60 procedure SaveSetting;
252 hi_ 1.1 procedure SettingApply;
253     function CheckFolder: Boolean;
254 yoffy 1.9 procedure SetAbonpropertys;
255     procedure CSSSetContent(Content: string);
256 yoffy 1.22 procedure CSSPreview;
257 hi_ 1.1 public
258     { Public 鐃緒申鐃緒申 }
259     end;
260    
261     var
262     OptionDialog: TOptionDialog;
263    
264     implementation
265    
266     uses
267 genyakun 1.58 Giko, Editor, Setting, ActnList, KuroutSetting;
268 hi_ 1.1
269     const
270     FONT_TEXT: string = '%s %d pt';
271     MEMO_CABINET: string = '鐃?鐃緒申鐃?鐃?鐃?鐃?';
272     MEMO_THREAD: string = '鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?';
273     MEMO_BROWSERPOPUP: string = '鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?';
274     MEMO_BROWSERTAB: string = '鐃?鐃緒申鐃?鐃?鐃?鐃?';
275     MEMO_EDITOR: string = '鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?';
276     DEFAULT_FONT_NAME: string = '鐃?鐃? 鐃?鐃?鐃?鐃?鐃?';
277     DEFAULT_FONT_SIZE: Integer = 9;
278     DEFAULT_TABFONT_NAME: string = '鐃?鐃? 鐃?鐃?鐃?鐃?鐃?';
279     DEFAULT_TABFONT_SIZE: Integer = 9;
280     URL_TORA3: WideString = 'http://2ch.tora3.net/';
281    
282     {$R *.DFM}
283    
284     procedure TOptionDialog.FormCreate(Sender: TObject);
285     begin
286 yoffy 1.14
287     CSSBrowser.Navigate('about:blank');
288 hi_ 1.1 FClose := True;
289    
290     OptionTab.ActivePage := ConnectSheet;
291     SetValue;
292    
293     CabinetMemo.Text := GetMemoText(CabinetMemo.Font, MEMO_CABINET);
294     ListMemo.Text := GetMemoText(ListMemo.Font, MEMO_THREAD);
295     HintMemo.Text := GetMemoText(HintMemo.Font, MEMO_BROWSERPOPUP);
296     BrowserTabMemo.Text := GetMemoText(BrowserTabMemo.Font, MEMO_BROWSERTAB);
297     EditorMemo.Text := GetMemoText(EditorMemo.Font, MEMO_EDITOR);
298    
299     Tora3URLLabel.Cursor := 5;
300     lblSFont.Caption := '鐃緒申鐃?鐃?鐃緒申'#13#10#13#10
301     + '鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?'#13#10
302 yoffy 1.9 + '鐃?CSS 鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申';
303 h677 1.23
304 deux 1.27 ForcedLoginLabel.Caption := '- 鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?' + #13#10
305 h677 1.26 + '鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?';
306 h677 1.23 CSSCheckBoxClick(Sender);
307 yoffy 1.35 BrowserMaxLabel.Caption :=
308     '鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?'#13#10 +
309     '鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?';
310 yoffy 1.9
311 yoffy 1.22 if OptionTab.PageCount > GikoSys.Setting.OptionDialogTabIndex then begin
312     OptionTab.ActivePageIndex := GikoSys.Setting.OptionDialogTabIndex;
313 yoffy 1.16 OptionTabChange( nil );
314 yoffy 1.22 end;
315    
316 hi_ 1.1 end;
317    
318     procedure TOptionDialog.FormDestroy(Sender: TObject);
319     begin
320 h677 1.31 CSSListView.OnChange := nil;
321     if FCSSStrings <> nil then
322     FCSSStrings.Free;
323     if FCSSFont <> nil then
324     FCSSFont.Free;
325 hi_ 1.1 sndPlaySound(nil, SND_ASYNC);
326 h677 1.31
327 hi_ 1.1 end;
328    
329     procedure TOptionDialog.OkBottonClick(Sender: TObject);
330     begin
331     FClose := True;
332     ReadPortEditExit(Sender);
333     WritePortEditExit(Sender);
334     AddressHistoryCountEditExit(Sender);
335     PreviewWaitEditExit(Sender);
336    
337     if not CheckFolder then begin
338     FClose := False;
339     Exit;
340     end;
341 h677 1.24 SetAbonpropertys;
342 hi_ 1.1 SaveSetting;
343     SettingApply;
344 h677 1.24
345 hi_ 1.1 end;
346    
347     procedure TOptionDialog.ApplyButtonClick(Sender: TObject);
348     begin
349     ReadPortEditExit(Sender);
350     WritePortEditExit(Sender);
351     AddressHistoryCountEditExit(Sender);
352     PreviewWaitEditExit(Sender);
353    
354     if not CheckFolder then begin
355     FClose := False;
356     Exit;
357     end;
358 h677 1.24 SetAbonpropertys;
359 hi_ 1.1 SaveSetting;
360     SettingApply;
361     FClose := False;
362     end;
363    
364     //function TOptionDialog.GetFontText(Font: TFont; Text: string): string;
365     //begin
366     // result := Format(Text, [Font.Name, Font.Size]);
367     //end;
368    
369     function TOptionDialog.GetMemoText(font: TFont; text: string): string;
370     var
371     s: string;
372     begin
373     s := '';
374     if font <> nil then
375     s := Format(FONT_TEXT, [Font.Name, Font.Size]) + #13#10;
376     Result := s + text;
377     end;
378    
379     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
380     procedure TOptionDialog.CabinetFontBottonClick(Sender: TObject);
381     begin
382     FontDialog.Options := [fdAnsiOnly, fdEffects];
383     FontDialog.Font.Assign(CabinetMemo.Font);
384     if FontDialog.Execute then begin
385     FontDialog.Font.Style := FontDialog.Font.Style - [fsUnderline] - [fsStrikeout];
386     CabinetMemo.Font.Assign(FontDialog.Font);
387     CabinetMemo.Text := GetMemoText(CabinetMemo.Font, MEMO_CABINET);
388     CabinetMemo.Font.Charset := SHIFTJIS_CHARSET;
389     end;
390     end;
391    
392     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申
393     procedure TOptionDialog.CabinetColorBottonClick(Sender: TObject);
394     begin
395     ColorDialog.Color := CabinetMemo.Color;
396     if ColorDialog.Execute then begin
397     CabinetMemo.Color := ColorDialog.Color;
398     end;
399     end;
400    
401     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
402     procedure TOptionDialog.CabinetDefaultButtonClick(Sender: TObject);
403     begin
404     CabinetMemo.Font.Name := DEFAULT_FONT_NAME;
405     CabinetMemo.Font.Size := DEFAULT_FONT_SIZE;
406     CabinetMemo.Font.Color := clWindowText;
407     CabinetMemo.Font.Style := [];
408     CabinetMemo.Color := clWindow;
409     CabinetMemo.Text := GetMemoText(CabinetMemo.Font, MEMO_CABINET);
410     end;
411    
412     //鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
413     procedure TOptionDialog.ListFontBottonClick(Sender: TObject);
414     begin
415     FontDialog.Options := [fdAnsiOnly, fdEffects];
416     FontDialog.Font.Assign(ListMemo.Font);
417     if FontDialog.Execute then begin
418     ListMemo.Font.Assign(FontDialog.Font);
419     ListMemo.Text := GetMemoText(ListMemo.Font, MEMO_THREAD);
420     ListMemo.Font.Charset := SHIFTJIS_CHARSET;
421     end;
422     end;
423    
424     //鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申
425     procedure TOptionDialog.ListColorBottonClick(Sender: TObject);
426     begin
427     ColorDialog.Color := ListMemo.Color;
428     if ColorDialog.Execute then begin
429     ListMemo.Color := ColorDialog.Color;
430     end;
431     end;
432    
433     //鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
434     procedure TOptionDialog.ListDefaultBottonClick(Sender: TObject);
435     begin
436     ListMemo.Font.Name := DEFAULT_FONT_NAME;
437     ListMemo.Font.Size := DEFAULT_FONT_SIZE;
438     ListMemo.Font.Color := clWindowText;
439     ListMemo.Font.Style := [];
440     ListMemo.Color := clWindow;
441     ListMemo.Text := GetMemoText(ListMemo.Font, MEMO_THREAD);
442     end;
443    
444     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
445     procedure TOptionDialog.HintFontButtonClick(Sender: TObject);
446     begin
447     FontDialog.Options := [fdAnsiOnly, fdEffects];
448     FontDialog.Font.Assign(HintMemo.Font);
449     if FontDialog.Execute then begin
450     HintMemo.Font.Assign(FontDialog.Font);
451     HintMemo.Text := GetMemoText(HintMemo.Font, MEMO_BROWSERPOPUP);
452     HintMemo.Font.Charset := SHIFTJIS_CHARSET;
453     end;
454     end;
455    
456     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申
457     procedure TOptionDialog.HintBackButtonClick(Sender: TObject);
458     begin
459     ColorDialog.Color := HintMemo.Color;
460     if ColorDialog.Execute then begin
461     HintMemo.Color := ColorDialog.Color;
462     end;
463     end;
464    
465     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
466     procedure TOptionDialog.HintDefaultButtonClick(Sender: TObject);
467     begin
468     HintMemo.Font.Name := DEFAULT_FONT_NAME;
469     HintMemo.Font.Size := DEFAULT_FONT_SIZE;
470     HintMemo.Font.Color := clWindowText;
471     HintMemo.Font.Style := [];
472     HintMemo.Color := clInfoBk;
473     HintMemo.Text := GetMemoText(HintMemo.Font, MEMO_BROWSERPOPUP);
474     end;
475    
476     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
477     procedure TOptionDialog.BruwserTabFontButtonClick(Sender: TObject);
478     begin
479     FontDialog.Options := [fdAnsiOnly];
480     FontDialog.Font.Assign(BrowserTabMemo.Font);
481     if FontDialog.Execute then begin
482     BrowserTabMemo.Font.Assign(FontDialog.Font);
483     BrowserTabMemo.Text := GetMemoText(FontDialog.Font, MEMO_BROWSERTAB);
484     BrowserTabMemo.Font.Charset := SHIFTJIS_CHARSET;
485     end;
486     end;
487    
488     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
489     procedure TOptionDialog.BrowserTabDefaultButtonClick(Sender: TObject);
490     begin
491     BrowserTabMemo.Font.Name := DEFAULT_TABFONT_NAME;
492     BrowserTabMemo.Font.Size := DEFAULT_TABFONT_SIZE;
493     BrowserTabMemo.Font.Color := clWindowText;
494     BrowserTabMemo.Font.Style := [];
495     BrowserTabMemo.Color := clBtnFace;
496     BrowserTabMemo.Text := GetMemoText(BrowserTabMemo.Font, MEMO_BROWSERTAB);
497     end;
498    
499     //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
500     procedure TOptionDialog.EditorFontBottonClick(Sender: TObject);
501     begin
502     FontDialog.Options := [fdAnsiOnly, fdEffects];
503     FontDialog.Font.Assign(EditorMemo.Font);
504     if FontDialog.Execute then begin
505     EditorMemo.Font.Assign(FontDialog.Font);
506     EditorMemo.Text := GetMemoText(EditorMemo.Font, MEMO_EDITOR);
507     EditorMemo.Font.Charset := SHIFTJIS_CHARSET;
508     end;
509     end;
510    
511     //鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申
512     procedure TOptionDialog.EditorColorBottonClick(Sender: TObject);
513     begin
514     ColorDialog.Color := EditorMemo.Font.Color;
515     if ColorDialog.Execute then begin
516     EditorMemo.Color := ColorDialog.Color;
517     end;
518     end;
519    
520     //鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
521     procedure TOptionDialog.EditorDefaultBottonClick(Sender: TObject);
522     begin
523     EditorMemo.Font.Name := DEFAULT_FONT_NAME;
524     EditorMemo.Font.Size := DEFAULT_FONT_SIZE;
525     EditorMemo.Font.Color := clWindowText;
526     EditorMemo.Font.Style := [];
527     EditorMemo.Color := clWindow;
528     EditorMemo.Text := GetMemoText(EditorMemo.Font, MEMO_EDITOR);
529     end;
530    
531     procedure TOptionDialog.SetValue;
532     var
533     i: Integer;
534     Item: TListItem;
535 h677 1.5 // s: string;
536 yoffy 1.2 idx: Integer;
537 hi_ 1.1 FileList: TStringList;
538     begin
539    
540     //鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?
541     ReadProxyCheck.Checked := GikoSys.Setting.ReadProxy;
542     ReadProxyCheckClick(nil);
543     ReadProxyAddressEdit.Text := GikoSys.Setting.ReadProxyAddress;
544     ReadPortEdit.Text := IntToStr(GikoSys.Setting.ReadProxyPort);
545     ReadProxyUserIDEdit.Text := GikoSys.Setting.ReadProxyUserID;
546     ReadProxyPasswordEdit.Text := GikoSys.Setting.ReadProxyPassword;
547     //鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?
548     WriteProxyCheck.Checked := GikoSys.Setting.WriteProxy;
549     WriteProxyCheckClick(nil);
550     WriteProxyAddressEdit.Text := GikoSys.Setting.WriteProxyAddress;
551     WritePortEdit.Text := IntToStr(GikoSys.Setting.WriteProxyPort);
552     WriteProxyUserIDEdit.Text := GikoSys.Setting.WriteProxyUserID;
553     WriteProxyPasswordEdit.Text := GikoSys.Setting.WriteProxyPassword;
554     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?
555     CabinetMemo.Font.Name := GikoSys.Setting.CabinetFontName;
556     CabinetMemo.Font.Size := GikoSys.Setting.CabinetFontSize;
557     CabinetMemo.Font.Color := GikoSys.Setting.CabinetFontColor;
558 h677 1.66 CabinetMemo.Font.Style := [];
559     if GikoSys.Setting.CabinetFontBold then
560     CabinetMemo.Font.Style := [fsBold];
561     if GikoSys.Setting.CabinetFontItalic then
562     CabinetMemo.Font.Style := CabinetMemo.Font.Style + [fsItalic];
563 hi_ 1.1 CabinetMemo.Color := GikoSys.Setting.CabinetBackColor;
564 h677 1.66
565 hi_ 1.1 //鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃?
566     ListMemo.Font.Name := GikoSys.Setting.ListFontName;
567     ListMemo.Font.Size := GikoSys.Setting.ListFontSize;
568     ListMemo.Font.Color := GikoSys.Setting.ListFontColor;
569 h677 1.66 ListMemo.Font.Style := [];
570     if GikoSys.Setting.ListFontBold then
571     ListMemo.Font.Style := ListMemo.Font.Style + [fsBold];
572     if GikoSys.Setting.ListFontItalic then
573     ListMemo.Font.Style := ListMemo.Font.Style + [fsItalic];
574    
575 hi_ 1.1 ListMemo.Color := GikoSys.Setting.ListBackColor;
576 h677 1.32 //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃?
577     OddResNumCheckBox.Checked := GikoSys.Setting.UseOddColorOddResNum;
578     OddResNumColorBox.Selected := GikoSys.Setting.OddColor;
579     OddResNumColorBox.Enabled := OddResNumCheckBox.Checked;
580    
581 hi_ 1.1 //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?
582     HintMemo.Font.Name := GikoSys.Setting.HintFontName;
583     HintMemo.Font.Size := GikoSys.Setting.HintFontSize;
584     HintMemo.Font.Color := GikoSys.Setting.HintFontColor;
585     HintMemo.Color := GikoSys.Setting.HintBackColor;
586     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?
587     BrowserTabMemo.Font.Name := GikoSys.Setting.BrowserTabFontName;
588     BrowserTabMemo.Font.Size := GikoSys.Setting.BrowserTabFontSize;
589     BrowserTabMemo.Font.Style := [];
590     if GikoSys.Setting.BrowserTabFontBold then
591     BrowserTabMemo.Font.Style := BrowserTabMemo.Font.Style + [fsBold];
592     if GikoSys.Setting.BrowserTabFontItalic then
593     BrowserTabMemo.Font.Style := BrowserTabMemo.Font.Style + [fsItalic];
594     //鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?
595     EditorMemo.Font.Name := GikoSys.Setting.EditorFontName;
596     EditorMemo.Font.Size := GikoSys.Setting.EditorFontSize;
597     EditorMemo.Font.Color := GikoSys.Setting.EditorFontColor;
598     EditorMemo.Color := GikoSys.Setting.EditorBackColor;
599     //CSS鐃?鐃緒申
600     CSSCheckBox.Checked := GikoSys.Setting.UseCSS;
601 h677 1.31 if FCSSFont <> nil then
602     FCSSFont.Free;
603 yoffy 1.22 FCSSFont := TFont.Create;
604     if (GikoSys.Setting.BrowserFontName <> '') or
605     (GikoSys.Setting.BrowserFontSize <> 0) or
606     (GikoSys.Setting.BrowserFontBold <> 0) or
607     (GikoSys.Setting.BrowserFontItalic <> 0) or
608     (GikoSys.Setting.BrowserFontColor <> -1 ) then begin
609     CSSFontCheckBox.Checked := True;
610 h677 1.32 FCSSFont.Name := GikoSys.Setting.BrowserFontName;
611 yoffy 1.22 FCSSFont.Size := GikoSys.Setting.BrowserFontSize;
612     FCSSFont.Style := [];
613     if GikoSys.Setting.BrowserFontBold = 1 then
614     FCSSFont.Style := FCSSFont.Style + [fsBold];
615     if GikoSys.Setting.BrowserFontItalic = 1 then
616     FCSSFont.Style := FCSSFont.Style + [fsItalic];
617     i := GikoSys.Setting.BrowserFontColor;
618     i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16);
619     FCSSFont.Color := i;
620     end;
621     if GikoSys.Setting.BrowserBackColor <> -1 then begin
622     CSSBackColorCheckBox.Checked := True;
623    
624     i := GikoSys.Setting.BrowserBackColor;
625     i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16);
626     FCSSBackColor := i;
627     end;
628 hi_ 1.1 //
629     //鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申
630     FileList := TStringList.Create;
631     try
632 yoffy 1.2 GikoSys.GetFileList(GikoSys.GetStyleSheetDir, '*.css', FileList, True, True);
633    
634     Idx := Length(GikoSys.GetStyleSheetDir);
635     for i := 0 to FileList.Count - 1 do
636     FileList[i] := Copy(FileList[i], Idx + 1, Length(FileList[i]));
637 hi_ 1.1 FileList.Sort;
638     for i := 0 to FileList.Count - 1 do begin
639 yoffy 1.2 //s := ExtractFileName(FileList[i]);
640     if LowerCase(FileList[i]) = 'default.css' then
641 hi_ 1.1 Item := CSSListView.Items.Insert(0)
642     else
643     Item := CSSListView.Items.Add;
644 yoffy 1.2 Item.Caption := ChangeFileExt(FileList[i], '');
645     if LowerCase(FileList[i]) = LowerCase(GikoSys.Setting.CSSFileName) then
646 hi_ 1.1 Item.Selected := True;
647     end;
648     finally
649     FileList.Free;
650     end;
651 yoffy 1.6 //鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申
652 h677 1.31 //FileList := TStringList.Create;
653     if FCSSStrings <> nil then
654     FCSSStrings.Clear;
655     FCSSStrings := TStringList.Create;
656 yoffy 1.6 try
657 h677 1.31 //GikoSys.GetDirectoryList(GikoSys.GetSkinDir, '*', FileList, False);
658     GikoSys.GetDirectoryList(GikoSys.GetSkinDir, '*', FCSSStrings, False);
659 yoffy 1.6
660 yoffy 1.22 Idx := Length(GikoSys.GetSkinDir);
661 h677 1.31 //FileList.Sort;
662     FCSSStrings.Sort;
663     //for i := 0 to FileList.Count - 1 do begin
664     for i := 0 to FCSSStrings.Count - 1 do begin
665 yoffy 1.6 //s := ExtractFileName(FileList[i]);
666     Item := CSSListView.Items.Add;
667 h677 1.31 {Item.Data := PChar( FileList[i] );
668 yoffy 1.6 Item.Caption := Copy( FileList[i], Idx + 1, Length(FileList[i]) );
669     if LowerCase(FileList[i]) = LowerCase(GikoSys.Setting.CSSFileName) then
670     Item.Selected := True;
671 h677 1.31 }
672     Item.Data := PChar( FCSSStrings[i] );
673     Item.Caption := Copy( FCSSStrings[i], Idx + 1, Length(FCSSStrings[i]) );
674     if LowerCase(FCSSStrings[i]) = LowerCase(GikoSys.Setting.CSSFileName) then
675     Item.Selected := True;
676 yoffy 1.6 end;
677     finally
678 yoffy 1.22 // Item.Data 鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?
679 yoffy 1.6 //FileList.Free;
680     end;
681    
682 hi_ 1.1 if (CSSListView.ItemIndex = -1) and (CSSListView.Items.Count > 0) then
683 h677 1.31 CSSListView.Items[0].Selected := True;
684 hi_ 1.1
685 q9_ 1.53 //Mail鐃緒申鐃?鐃緒申
686     ShowMailCheckBox.Checked := GikoSys.Setting.ShowMail;
687    
688 yoffy 1.49 // 鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
689     ResRangeHoldCheckBox.Checked := GikoSys.Setting.ResRangeHold;
690     case GikoSys.Setting.ResRange of
691     Ord( grrAll ): ResRangeHoldComboBox.ItemIndex := 0;
692     Ord( grrKoko ): ResRangeHoldComboBox.ItemIndex := 2;
693     Ord( grrNew ): ResRangeHoldComboBox.ItemIndex := 3;
694     100: ResRangeHoldComboBox.ItemIndex := 1;
695     end;
696     ResRangeHoldComboBox.Enabled := GikoSys.Setting.ResRangeHold;
697 hi_ 1.1 //鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?
698     TabAddRadioGroup.ItemIndex := Ord(GikoSys.Setting.BrowserTabAppend);
699     //鐃緒申鐃?鐃?URL
700 h677 1.19 //BoardURL2chEdit.Text := GikoSys.Setting.BoardURL2ch;
701 yoffy 1.22 BoardURLComboBox.Clear;
702     BoardURLComboBox.Items.AddStrings(GikoSys.Setting.BoardURLs);
703     try
704     BoardURLComboBox.ItemIndex := GikoSys.Setting.BoardURLSelected - 1;
705     except
706     BoardURLComboBox.ItemIndex := 0;
707     end;
708 hi_ 1.1 //鐃?鐃緒申
709     UserIDEdit.Text := GikoSys.Setting.UserID;
710     PasswordEdit.Text := GikoSys.Setting.Password;
711     AutoLoginCheckBox.Checked := GikoSys.Setting.AutoLogin;
712 h677 1.32 ForcedLoginCheckBox.Checked := GikoSys.Setting.ForcedLogin;
713 hi_ 1.1 //鐃緒申鐃?鐃?鐃?鐃緒申鐃?
714     if GikoSys.Setting.NewLogFolder = '' then
715     LogFolderEdit.Text := GikoSys.Setting.LogFolder
716     else
717     LogFolderEdit.Text := GikoSys.Setting.NewLogFolder;
718     //鐃?鐃?鐃緒申鐃?
719     for i := 0 to GikoSys.Setting.GetSoundCount - 1 do begin
720     Item := SoundListView.Items.Add;
721     Item.Caption := GikoSys.Setting.SoundViewName[i];
722     if FileExists(GikoSys.Setting.SoundFileName[i]) then
723     Item.SubItems.Add(GikoSys.Setting.SoundFileName[i])
724     else
725     Item.SubItems.Add('');
726     end;
727     //URL鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申
728     URLAppCheckBox.Checked := GikoSys.Setting.URLApp;
729     URLAppCheckBoxClick(nil);
730     AppFolderEdit.Text := GikoSys.Setting.URLAppFile;
731    
732     //mailto鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申
733     OpenMailerCheckBox.Checked := GikoSys.Setting.OpenMailer;
734    
735     //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?
736     LogDeleteMessageCheckBox.Checked := GikoSys.Setting.DeleteMsg;
737 h677 1.32
738 yoffy 1.22 //鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?
739     ShowDialogForEndCheckBox.Checked := GikoSys.Setting.ShowDialogForEnd;
740 h677 1.34 //AllTabClose
741     AllTabCloseCheckBox.Checked := GikoSys.Setting.ShowDialogForAllTabClose;
742 h677 1.32 //Samba
743     UseSambaCheckBox.Checked := GikoSys.Setting.UseSamba;
744 h677 1.34 ResAnchorCheckBox.Checked := GikoSys.Setting.ResAnchorJamp;
745 yoffy 1.35 // 鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申
746     BrowserMaxCombo.ItemIndex := Ord( GikoSys.Setting.BrowserAutoMaximize );
747 hi_ 1.1 //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?
748     case GikoSys.Setting.PopupPosition of
749     gppRightTop: PopupPositionRadioGroup.ItemIndex := 0;
750     gppRight: PopupPositionRadioGroup.ItemIndex := 1;
751     gppRightBottom: PopupPositionRadioGroup.ItemIndex := 2;
752     gppTop: PopupPositionRadioGroup.ItemIndex := 3;
753     gppCenter: PopupPositionRadioGroup.ItemIndex := 4;
754     gppBottom: PopupPositionRadioGroup.ItemIndex := 5;
755     gppLeftTop: PopupPositionRadioGroup.ItemIndex := 6;
756     gppLeft: PopupPositionRadioGroup.ItemIndex := 7;
757     gppLeftBottom: PopupPositionRadioGroup.ItemIndex := 8;
758     end;
759    
760     //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申
761     UnActivePopupCheckBox.Checked := GikoSys.Setting.UnActivePopup;
762 yoffy 1.2 //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申
763     ResPopupBoldCheckBox.Checked := GikoSys.Setting.ResPopupHeaderBold;
764 hi_ 1.1
765     //鐃?鐃?鐃緒申鐃?鐃?鐃?
766     URLDisplayCheckBox.Checked := GikoSys.Setting.URLDisplay;
767     TabStopAddressBarCheckBox.Checked := GikoSys.Setting.AddressBarTabStop;
768     LinkAddCheckBox.Checked := GikoSys.Setting.LinkAddAddressBar;
769     AddressHistoryCountEdit.Text := IntToStr(GikoSys.Setting.AddressHistoryCount);
770    
771     //HTML鐃?鐃緒申鐃?鐃緒申鐃?
772     PreviewVisibleCheckBox.Checked := GikoSys.Setting.PreviewVisible;
773     PreviewWaitEdit.Text := IntToStr(GikoSys.Setting.PreviewWait);
774     PreviewSizeComboBox.ItemIndex := 2;
775     case GikoSys.Setting.PreviewSize of
776     gpsXLarge: PreviewSizeComboBox.ItemIndex := 4;
777     gpsLarge: PreviewSizeComboBox.ItemIndex := 3;
778     gpsMedium: PreviewSizeComboBox.ItemIndex := 2;
779     gpsSmall: PreviewSizeComboBox.ItemIndex := 1;
780     gpsXSmall: PreviewSizeComboBox.ItemIndex := 0;
781     end;
782    
783     //鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申
784     ThreadListIconCheckBox.Checked := GikoSys.Setting.ListIconVisible;
785 h677 1.32 CreationTimeLogsCheckBox.Checked := GikoSys.Setting.CreationTimeLogs;
786     FutureThreadCheckBox.Checked := GikoSys.Setting.FutureThread;
787 h677 1.41 SelectIntervalEdit.Text := IntToStr(GikoSys.Setting.SelectInterval);
788 q9_ 1.51
789     //dat鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申
790 yoffy 1.61 case TGikoBoardColumnID( GikoSys.Setting.DatOchiSortIndex ) of
791     gbcTitle:
792 q9_ 1.51 if GikoSys.Setting.DatOchiSortOrder then
793     DatOchiSortCombo.ItemIndex := 1
794     else
795     DatOchiSortCombo.ItemIndex := 2;
796 h677 1.62 gbcRoundDate://gbcLastModified:
797 q9_ 1.51 if GikoSys.Setting.DatOchiSortOrder then
798     DatOchiSortCombo.ItemIndex := 3
799     else
800     DatOchiSortCombo.ItemIndex := 4;
801 yoffy 1.61 gbcCreated:
802 q9_ 1.52 if GikoSys.Setting.DatOchiSortOrder then
803     DatOchiSortCombo.ItemIndex := 5
804     else
805     DatOchiSortCombo.ItemIndex := 6;
806 h677 1.63 gbcLastModified:
807     if GikoSys.Setting.DatOchiSortOrder then
808     DatOchiSortCombo.ItemIndex := 7
809     else
810     DatOchiSortCombo.ItemIndex := 8;
811 q9_ 1.51 else
812     DatOchiSortCombo.ItemIndex := 0;
813     end;
814 hi_ 1.1
815 genyakun 1.50 //鐃緒申鐃緒申鐃?鐃緒申
816     RloCheckBox.Checked := GikoSys.Setting.AbonDeleterlo;
817     ReplaceulCheckBox.Checked := GikoSys.Setting.AbonReplaceul;
818 yoffy 1.68 PopUpAbonCheckBox.Checked := GikoSys.Setting.PopUpAbon;
819     ShowNGLineCheckBox.Checked := GikoSys.Setting.ShowNGLinesNum;
820 yoffy 1.67 AddResAnchorCheckBox.Checked := GikoSys.Setting.AddResAnchor;
821 yoffy 1.38 DeleteSyriaCheckBox.Checked := GikoSys.Setting.DeleteSyria;
822 yoffy 1.70 {$IFDEF SPAM_FILTER_ENABLED}
823     // 鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申
824     SpamFilterGroupBox.Visible := True;
825     {$ENDIF}
826 yoffy 1.67 // 鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?
827 yoffy 1.68 {$IFDEF DEBUG}
828     SpamFilterAlgorithmComboBox.Clear;
829     SpamFilterAlgorithmComboBox.AddItem( '鐃?鐃?鐃緒申鐃緒申鐃緒申', nil );
830     SpamFilterAlgorithmComboBox.AddItem( 'Paul Graham 鐃?', nil );
831     SpamFilterAlgorithmComboBox.AddItem( 'Gary Robinson 鐃?', nil );
832     SpamFilterAlgorithmComboBox.AddItem( 'Gary Robinson-Fisher 鐃?', nil );
833     {$ENDIF}
834 yoffy 1.67 SpamFilterAlgorithmComboBox.ItemIndex :=
835     Ord( GikoSys.Setting.SpamFilterAlgorithm );
836 yoffy 1.38
837 h677 1.69 //TabAutoLoad
838     TabLoadSave.Checked := Gikosys.Setting.TabAutoLoadSave;
839     UseUndecidedCheckBox.Checked := GikoSys.Setting.UseUndecided;
840 hi_ 1.1 end;
841    
842     procedure TOptionDialog.SaveSetting;
843     var
844     i: Integer;
845 h677 1.32 tmp: string;
846 hi_ 1.1 // Item: TListItem;
847     begin
848 yoffy 1.22 GikoSys.Setting.OptionDialogTabIndex := OptionTab.TabIndex;
849 yoffy 1.16
850 hi_ 1.1 GikoSys.Setting.ReadProxy := ReadProxyCheck.Checked;
851     GikoSys.Setting.ReadProxyAddress := ReadProxyAddressEdit.Text;
852     GikoSys.Setting.ReadProxyPort := StrToInt(ReadPortEdit.Text);
853     GikoSys.Setting.ReadProxyUserID := ReadProxyUserIDEdit.Text;
854     GikoSys.Setting.ReadProxyPassword := ReadProxyPasswordEdit.Text;
855    
856     GikoSys.Setting.WriteProxy := WriteProxyCheck.Checked;
857     GikoSys.Setting.WriteProxyAddress := WriteProxyAddressEdit.Text;
858     GikoSys.Setting.WriteProxyPort := StrToInt(WritePortEdit.Text);
859     GikoSys.Setting.WriteProxyUserID := WriteProxyUserIDEdit.Text;
860     GikoSys.Setting.WriteProxyPassword := WriteProxyPasswordEdit.Text;
861    
862     GikoSys.Setting.CabinetFontName := CabinetMemo.Font.Name;
863     GikoSys.Setting.CabinetFontSize := CabinetMemo.Font.Size;
864     GikoSys.Setting.CabinetFontColor := CabinetMemo.Font.Color;
865 h677 1.66 GikoSys.Setting.CabinetFontBold := fsBold in CabinetMemo.Font.Style;
866     GikoSys.Setting.CabinetFontItalic:= fsItalic in CabinetMemo.Font.Style;
867 hi_ 1.1 GikoSys.Setting.CabinetBackColor := CabinetMemo.Color;
868    
869 h677 1.66 GikoSys.Setting.ListFontName := ListMemo.Font.Name;
870     GikoSys.Setting.ListFontSize := ListMemo.Font.Size;
871     GikoSys.Setting.ListFontColor := ListMemo.Font.Color;
872     GikoSys.Setting.ListFontBold := fsBold in ListMemo.Font.Style;
873     GikoSys.Setting.ListFontItalic := fsItalic in ListMemo.Font.Style;
874 hi_ 1.1 GikoSys.Setting.ListBackColor := ListMemo.Color;
875 h677 1.32 GikoSys.Setting.UseOddColorOddResNum := OddResNumCheckBox.Checked;
876     GikoSys.Setting.OddColor := OddResNumColorBox.Selected;
877 hi_ 1.1
878     GikoSys.Setting.HintFontName := HintMemo.Font.Name;
879     GikoSys.Setting.HintFontSize := HintMemo.Font.Size;
880     GikoSys.Setting.HintFontColor := HintMemo.Font.Color;
881     GikoSys.Setting.HintBackColor := HintMemo.Color;
882    
883     GikoSys.Setting.BrowserTabFontName := BrowserTabMemo.Font.Name;
884     GikoSys.Setting.BrowserTabFontSize := BrowserTabMemo.Font.Size;
885 h677 1.66 GikoSys.Setting.BrowserTabFontBold := fsBold in BrowserTabMemo.Font.Style;
886     GikoSys.Setting.BrowserTabFontItalic := fsItalic in BrowserTabMemo.Font.Style;
887 hi_ 1.1 GikoSys.Setting.EditorFontName := EditorMemo.Font.Name;
888     GikoSys.Setting.EditorFontSize := EditorMemo.Font.Size;
889     GikoSys.Setting.EditorFontColor := EditorMemo.Font.Color;
890     GikoSys.Setting.EditorBackColor := EditorMemo.Color;
891 h677 1.32 {FRepaintThread : 鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申
892     鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?true鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申
893     鐃?鐃緒申鐃?鐃?鐃緒申Repaint鐃緒申true鐃緒申鐃緒申鐃緒申
894     }
895 hi_ 1.1 //CSS鐃?鐃緒申
896 h677 1.32 if GikoSys.Setting.UseCSS <> CSSCheckBox.Checked then FRepaintThread := true;
897 hi_ 1.1 GikoSys.Setting.UseCSS := CSSCheckBox.Checked;
898     //CSS鐃?鐃?鐃?鐃緒申鐃緒申
899 h677 1.32 tmp := GikoSys.Setting.CSSFileName;
900 hi_ 1.1 GikoSys.Setting.CSSFileName := 'default.css';
901     if CSSListView.Items.Count > 0 then begin
902     try
903 yoffy 1.22 if CSSListView.Items[CSSListView.ItemIndex].Data <> nil then
904 yoffy 1.6 GikoSys.Setting.CSSFileName := string( CSSListView.Items[CSSListView.ItemIndex].data )
905 yoffy 1.22 else
906 yoffy 1.6 GikoSys.Setting.CSSFileName := CSSListView.Items[CSSListView.ItemIndex].Caption + '.css';
907 hi_ 1.1 except
908     end;
909     end;
910 h677 1.32 if tmp <> GikoSys.Setting.CSSFileName then FRepaintThread := true;
911 yoffy 1.22 // CSS 鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申
912     if CSSFontCheckBox.Checked then begin
913 h677 1.32 if GikoSys.Setting.BrowserFontName <> FCSSFont.Name then FRepaintThread := true;
914 yoffy 1.22 GikoSys.Setting.BrowserFontName := FCSSFont.Name;
915 h677 1.32 if GikoSys.Setting.BrowserFontSize <> FCSSFont.Size then FRepaintThread := true;
916 yoffy 1.22 GikoSys.Setting.BrowserFontSize := FCSSFont.Size;
917 h677 1.32 if fsBold in FCSSFont.Style then begin
918     if GikoSys.Setting.BrowserFontBold <> 1 then FRepaintThread := true;
919     GikoSys.Setting.BrowserFontBold := 1;
920     end else begin
921     if GikoSys.Setting.BrowserFontBold <> -1 then FRepaintThread := true;
922 yoffy 1.22 GikoSys.Setting.BrowserFontBold := -1;
923 h677 1.32 end;
924     if fsItalic in FCSSFont.Style then begin
925     if GikoSys.Setting.BrowserFontItalic <> 1 then FRepaintThread := true;
926     GikoSys.Setting.BrowserFontItalic := 1;
927     end else begin
928     if GikoSys.Setting.BrowserFontItalic <> -1 then FRepaintThread := true;
929 yoffy 1.22 GikoSys.Setting.BrowserFontItalic := -1;
930 h677 1.32 end;
931 yoffy 1.22 i := ColorToRGB( FCSSFont.Color );
932 h677 1.32 if (GikoSys.Setting.BrowserFontColor <> (i shr 16) or (i and $ff00) or ((i and $ff) shl 16)) then
933     FRepaintThread := true;
934 yoffy 1.22 GikoSys.Setting.BrowserFontColor := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16);
935     end else begin
936 h677 1.32 if GikoSys.Setting.BrowserFontName <> '' then FRepaintThread := true;
937 yoffy 1.22 GikoSys.Setting.BrowserFontName := '';
938 h677 1.32 if GikoSys.Setting.BrowserFontSize <> 0 then FRepaintThread := true;
939 yoffy 1.22 GikoSys.Setting.BrowserFontSize := 0;
940 h677 1.32 if GikoSys.Setting.BrowserFontBold <> 0 then FRepaintThread := true;
941 yoffy 1.22 GikoSys.Setting.BrowserFontBold := 0;
942 h677 1.32 if GikoSys.Setting.BrowserFontItalic <> 0 then FRepaintThread := true;
943 yoffy 1.22 GikoSys.Setting.BrowserFontItalic := 0;
944 h677 1.32 if GikoSys.Setting.BrowserFontColor <> -1 then FRepaintThread := true;
945 yoffy 1.22 GikoSys.Setting.BrowserFontColor := -1;
946     end;
947     if CSSBackColorCheckBox.Checked then begin
948     i := ColorToRGB( FCSSBackColor );
949 h677 1.32 if(GikoSys.Setting.BrowserBackColor <> (i shr 16) or (i and $ff00) or ((i and $ff) shl 16)) then
950     FRepaintThread := true;
951 yoffy 1.22 GikoSys.Setting.BrowserBackColor := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16);
952     end else begin
953 h677 1.32 if GikoSys.Setting.BrowserBackColor <> -1 then FRepaintThread := true;
954 yoffy 1.22 GikoSys.Setting.BrowserBackColor := -1;
955     end;
956 hi_ 1.1
957     //Mail鐃緒申鐃?鐃緒申
958 h677 1.32 if GikoSys.Setting.ShowMail <> ShowMailCheckBox.Checked then FRepaintThread := true;
959 hi_ 1.1 GikoSys.Setting.ShowMail := ShowMailCheckBox.Checked;
960 yoffy 1.49 // 鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
961     GikoSys.Setting.ResRangeHold := ResRangeHoldCheckBox.Checked;
962     case ResRangeHoldComboBox.ItemIndex of
963     0: GikoSys.Setting.ResRange := Ord( grrAll );
964     1: GikoSys.Setting.ResRange := 100;
965     2: GikoSys.Setting.ResRange := Ord( grrKoko );
966     3: GikoSys.Setting.ResRange := Ord( grrNew );
967     end;
968 hi_ 1.1
969     GikoSys.Setting.BrowserTabAppend := TGikoTabAppend(TabAddRadioGroup.ItemIndex);
970    
971 h677 1.19 // GikoSys.Setting.BoardURL2ch := BoardURL2chEdit.Text;
972 yoffy 1.22 GikoSys.Setting.BoardURLs.Clear;
973     GikoSys.Setting.BoardURLs.AddStrings(BoardURLComboBox.Items);
974     GikoSys.Setting.BoardURLSelected := BoardURLComboBox.ItemIndex + 1;
975 hi_ 1.1 GikoSys.Setting.UserID := UserIDEdit.Text;
976     GikoSys.Setting.Password := PasswordEdit.Text;
977     GikoSys.Setting.AutoLogin := AutoLoginCheckBox.Checked;
978 h677 1.32 GikoSys.Setting.ForcedLogin := ForcedLoginCheckBox.Checked;
979 hi_ 1.1 GikoSys.Setting.URLApp := URLAppCheckBox.Checked;
980     GikoSys.Setting.URLAppFile := AppFolderEdit.Text;
981    
982     GikoSys.Setting.OpenMailer := OpenMailerCheckBox.Checked;
983     GikoSys.Setting.DeleteMsg := LogDeleteMessageCheckBox.Checked;
984 yoffy 1.22 //鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?
985     GikoSys.Setting.ShowDialogForEnd := ShowDialogForEndCheckBox.Checked;
986 h677 1.34 //AllTabClose
987     GikoSys.Setting.ShowDialogForAllTabClose := AllTabCloseCheckBox.Checked;
988 h677 1.30 //Samba
989 h677 1.34 GikoSys.Setting.UseSamba := UseSambaCheckBox.Checked;
990     GikoSys.Setting.ResAnchorJamp := ResAnchorCheckBox.Checked;
991 yoffy 1.35 // 鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申
992     GikoSys.Setting.BrowserAutoMaximize := TGikoBrowserAutoMaximize( BrowserMaxCombo.ItemIndex );
993 hi_ 1.1 //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?
994     case PopupPositionRadioGroup.ItemIndex of
995     0: GikoSys.Setting.PopupPosition := gppRightTop;
996     1: GikoSys.Setting.PopupPosition := gppRight;
997     2: GikoSys.Setting.PopupPosition := gppRightBottom;
998     3: GikoSys.Setting.PopupPosition := gppTop;
999     4: GikoSys.Setting.PopupPosition := gppCenter;
1000     5: GikoSys.Setting.PopupPosition := gppBottom;
1001     6: GikoSys.Setting.PopupPosition := gppLeftTop;
1002     7: GikoSys.Setting.PopupPosition := gppLeft;
1003     8: GikoSys.Setting.PopupPosition := gppLeftBottom;
1004     end;
1005    
1006     //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申
1007     GikoSys.Setting.UnActivePopup := UnActivePopupCheckBox.Checked;
1008 yoffy 1.2 //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申
1009     GikoSys.Setting.ResPopupHeaderBold := ResPopupBoldCheckBox.Checked;
1010 hi_ 1.1
1011     //鐃?鐃?鐃緒申鐃?鐃?鐃?
1012     GikoSys.Setting.URLDisplay := URLDisplayCheckBox.Checked;
1013     GikoSys.Setting.AddressBarTabStop := TabStopAddressBarCheckBox.Checked;
1014     GikoSys.Setting.LinkAddAddressBar := LinkAddCheckBox.Checked;
1015     if GikoSys.IsNumeric(AddressHistoryCountEdit.Text) then
1016     GikoSys.Setting.AddressHistoryCount := StrToInt(AddressHistoryCountEdit.Text)
1017     else
1018     GikoSys.Setting.AddressHistoryCount := 100;
1019    
1020     //HTML鐃?鐃緒申鐃?鐃緒申鐃?
1021     GikoSys.Setting.PreviewVisible := PreviewVisibleCheckBox.Checked;
1022     if GikoSys.IsNumeric(PreviewWaitEdit.Text) then
1023     GikoSys.Setting.PreviewWait := StrToInt(PreviewWaitEdit.Text)
1024     else
1025     GikoSys.Setting.PreviewWait := 500;
1026     case PreviewSizeComboBox.ItemIndex of
1027     0: GikoSys.Setting.PreviewSize := gpsXSmall;
1028     1: GikoSys.Setting.PreviewSize := gpsSmall;
1029     2: GikoSys.Setting.PreviewSize := gpsMedium;
1030     3: GikoSys.Setting.PreviewSize := gpsLarge;
1031     4: GikoSys.Setting.PreviewSize := gpsXLarge;
1032     end;
1033    
1034     //鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申
1035     GikoSys.Setting.ListIconVisible := ThreadListIconCheckBox.Checked;
1036 q9_ 1.54
1037     GikoSys.Setting.CreationTimeLogs := CreationTimeLogsCheckBox.Checked;
1038 h677 1.41 GikoSys.Setting.FutureThread := FutureThreadCheckBox.Checked;
1039     if StrToIntDef(SelectIntervalEdit.Text, 110) > 55 then
1040     GikoSys.Setting.SelectInterval := StrToIntDef(SelectIntervalEdit.Text, 110)
1041     else
1042     GikoSys.Setting.SelectInterval := 55;
1043 q9_ 1.51
1044     //dat鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1045     case DatOchiSortCombo.ItemIndex of
1046     0: GikoSys.Setting.DatOchiSortIndex := -1; //鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1047 q9_ 1.52 1: begin //鐃?鐃緒申鐃緒申鐃緒申(鐃緒申鐃緒申)
1048     GikoSys.Setting.DatOchiSortOrder := true;
1049 yoffy 1.61 GikoSys.Setting.DatOchiSortIndex := Ord( gbcTitle );
1050 q9_ 1.52 end;
1051     2: begin //鐃?鐃緒申鐃緒申鐃緒申(鐃?鐃緒申)
1052     GikoSys.Setting.DatOchiSortOrder := false;
1053 yoffy 1.61 GikoSys.Setting.DatOchiSortIndex := Ord( gbcTitle );
1054 q9_ 1.52 end;
1055     3: begin //鐃緒申鐃緒申鐃緒申鐃緒申(鐃緒申鐃緒申)
1056 q9_ 1.51 GikoSys.Setting.DatOchiSortOrder := true;
1057 h677 1.62 GikoSys.Setting.DatOchiSortIndex := Ord( gbcRoundDate );{gbcLastModified}
1058 q9_ 1.51 end;
1059 q9_ 1.52 4: begin //鐃緒申鐃緒申鐃緒申鐃緒申(鐃?鐃緒申)
1060 q9_ 1.51 GikoSys.Setting.DatOchiSortOrder := false;
1061 h677 1.62 GikoSys.Setting.DatOchiSortIndex := Ord( gbcRoundDate );{gbcLastModified}
1062 q9_ 1.51 end;
1063 q9_ 1.52 5: begin //鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申(鐃緒申鐃緒申)
1064 q9_ 1.51 GikoSys.Setting.DatOchiSortOrder := true;
1065 yoffy 1.61 GikoSys.Setting.DatOchiSortIndex := Ord( gbcCreated );
1066 q9_ 1.51 end;
1067 q9_ 1.52 6: begin //鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申(鐃?鐃緒申)
1068 q9_ 1.51 GikoSys.Setting.DatOchiSortOrder := false;
1069 yoffy 1.61 GikoSys.Setting.DatOchiSortIndex := Ord( gbcCreated );
1070 q9_ 1.51 end;
1071 h677 1.63 7: begin //鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃?
1072     GikoSys.Setting.DatOchiSortOrder := true;
1073     GikoSys.Setting.DatOchiSortIndex := Ord( gbcLastModified );{gbcLastModified}
1074     end;
1075     8: begin //鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?
1076     GikoSys.Setting.DatOchiSortOrder := false;
1077     GikoSys.Setting.DatOchiSortIndex := Ord( gbcLastModified );{gbcLastModified}
1078     end;
1079 q9_ 1.51 end;
1080    
1081 hi_ 1.1 GikoSys.Setting.WriteSystemSettingFile;
1082 yoffy 1.22 GikoSys.Setting.WriteBoardURLSettingFile;
1083 hi_ 1.1 // GikoForm.SetBrowserTabState;
1084    
1085     if LogFolderEdit.Text <> '' then begin
1086     GikoSys.Setting.NewLogFolder := LogFolderEdit.Text;
1087     GikoSys.Setting.WriteFolderSettingFile;
1088     end;
1089    
1090     for i := 0 to SoundListView.Items.Count - 1 do begin
1091     if FileExists(SoundListView.Items[i].SubItems[0]) then
1092     GikoSys.Setting.SoundFileName[i] := SoundListView.Items[i].SubItems[0]
1093     else
1094     GikoSys.Setting.SoundFileName[i] := '';
1095     end;
1096 h677 1.3
1097 h677 1.17 //鐃緒申鐃緒申鐃?鐃緒申
1098     GikoSys.Setting.AbonDeleterlo := RloCheckBox.Checked;
1099     GikoSys.Setting.AbonReplaceul := ReplaceulCheckBox.Checked;
1100     GikoSys.Setting.PopUpAbon := PopUpAbonCheckBox.Checked;
1101     GikoSys.Setting.ShowNGLinesNum := ShowNGLineCheckBox.Checked;
1102 yoffy 1.22 GikoSys.Setting.AddResAnchor := AddResAnchorCheckBox.Checked;
1103 yoffy 1.67 GikoSys.Setting.DeleteSyria := DeleteSyriaCheckBox.Checked;
1104     // 鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?
1105     if GikoSys.Setting.SpamFilterAlgorithm <> TGikoSpamFilterAlgorithm(
1106     SpamFilterAlgorithmComboBox.ItemIndex ) then begin
1107     GikoSys.Setting.SpamFilterAlgorithm := TGikoSpamFilterAlgorithm(
1108     SpamFilterAlgorithmComboBox.ItemIndex );
1109     FRepaintThread := True;
1110     end;
1111 genyakun 1.46
1112 h677 1.69 //Tab鐃緒申鐃緒申鐃緒申鐃緒申
1113     GikoSys.Setting.TabAutoLoadSave := TabLoadSave.Checked;
1114     GikoSys.Setting.UseUndecided := UseUndecidedCheckBox.Checked;
1115 hi_ 1.1 end;
1116    
1117     procedure TOptionDialog.SettingApply;
1118     var
1119     i: Integer;
1120     begin
1121     GikoForm.TreeView.Items.BeginUpdate;
1122 yoffy 1.22 GikoForm.FavoriteTreeView.Items.BeginUpdate;
1123 hi_ 1.1 GikoForm.ListView.Items.BeginUpdate;
1124     try
1125     GikoForm.TreeView.Font.Name := GikoSys.Setting.CabinetFontName;
1126     GikoForm.TreeView.Font.Size := GikoSys.Setting.CabinetFontSize;
1127     GikoForm.TreeView.Font.Color := GikoSys.Setting.CabinetFontColor;
1128     GikoForm.TreeView.Color := GikoSys.Setting.CabinetBackColor;
1129    
1130 h677 1.66 {GikoForm.TreeView.Font.Style := [];
1131     if GikoSys.Setting.CabinetFontBold then
1132     GikoForm.TreeView.Font.Style := [fsBold];
1133     if GikoSys.Setting.CabinetFontItalic then
1134     GikoForm.TreeView.Font.Style := GikoForm.TreeView.Font.Style + [fsItalic];
1135     }
1136     {GikoForm.FavoriteTreeView.Font.Name := GikoSys.Setting.CabinetFontName;
1137 yoffy 1.16 GikoForm.FavoriteTreeView.Font.Size := GikoSys.Setting.CabinetFontSize;
1138     GikoForm.FavoriteTreeView.Font.Color := GikoSys.Setting.CabinetFontColor;
1139 h677 1.66 }
1140     GikoForm.FavoriteTreeView.Font.Assign(GikoForm.TreeView.Font);
1141 yoffy 1.16 GikoForm.FavoriteTreeView.Color := GikoSys.Setting.CabinetBackColor;
1142    
1143 hi_ 1.1 GikoForm.ListView.Font.Name := GikoSys.Setting.ListFontName;
1144     GikoForm.ListView.Font.Size := GikoSys.Setting.ListFontSize;
1145     GikoForm.ListView.Font.Color := GikoSys.Setting.ListFontColor;
1146 h677 1.66 GikoForm.ListView.Font.Style := [];
1147     if GikoSys.Setting.ListFontBold then
1148     GikoForm.ListView.Font.Style := [fsbold];
1149     if GikoSys.Setting.ListFontItalic then
1150     GikoForm.ListView.Font.Style := GikoForm.ListView.Font.Style + [fsitalic];
1151    
1152 h677 1.23 //GikoForm.ListView.Color := GikoSys.Setting.ListBackColor;
1153 h677 1.66 GikoForm.ListViewBackGroundColor := GikoSys.Setting.ListBackColor;
1154 h677 1.23 GikoForm.UseOddResOddColor := GikoSys.Setting.UseOddColorOddResNum;
1155     GikoForm.OddColor := GikoSys.Setting.OddColor;
1156 hi_ 1.1
1157     GikoForm.BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName;
1158     GikoForm.BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize;
1159 h677 1.66 GikoForm.BrowserTab.Font.Style := [];
1160     if GikoSys.Setting.BrowserTabFontBold then
1161     GikoForm.BrowserTab.Font.Style := [fsBold];
1162     if GikoSys.Setting.BrowserTabFontItalic then
1163     GikoForm.BrowserTab.Font.Style := GikoForm.BrowserTab.Font.Style + [fsItalic];
1164 hi_ 1.1 // GikoForm.BrowserTab.Height := (GikoSys.Setting.BrowserTabFontSize * 2) + 1;
1165     // GikoForm.BrowserBottomPanel.Height := GikoForm.BrowserTab.Height;
1166    
1167     for i := 0 to Screen.CustomFormCount - 1 do begin
1168     if TObject(Screen.CustomForms[i]) is TEditorForm then begin
1169     TEditorForm(Screen.CustomForms[i]).SetFont;
1170     end;
1171     end;
1172    
1173     finally
1174     GikoForm.TreeView.Items.EndUpdate;
1175 yoffy 1.22 GikoForm.FavoriteTreeView.Items.EndUpdate;
1176 hi_ 1.1 GikoForm.ListView.Items.EndUpdate;
1177     end;
1178    
1179     //鐃?鐃?鐃緒申鐃?鐃?鐃?
1180     for i := GikoForm.AddressComboBox.Items.Count - 1 downto 0 do begin
1181     if GikoSys.Setting.AddressHistoryCount >= GikoForm.AddressComboBox.Items.Count then
1182     Break;
1183     GikoForm.AddressComboBox.Items.Delete(i);
1184     end;
1185     GikoForm.AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;
1186 yoffy 1.15
1187 q9_ 1.54 //鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申
1188     if FRepaintList then begin
1189     // SetActiveList鐃緒申鐃緒申鐃?
1190     GikoForm.ActiveList := GikoForm.ActiveList;
1191     end;
1192    
1193 yoffy 1.22 // 鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申
1194 h677 1.32 if FRepaintThread then begin
1195     for i := GikoForm.BrowserTab.Tabs.Count - 1 downto 0 do begin
1196     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Repaint := true;
1197     end;
1198     GikoForm.BrowserTab.OnChange(nil);
1199     end;
1200 hi_ 1.1 end;
1201    
1202     procedure TOptionDialog.ReadProxyCheckClick(Sender: TObject);
1203     begin
1204     ReadProxyAddressEdit.Enabled := ReadProxyCheck.Checked;
1205     ReadPortEdit.Enabled := ReadProxyCheck.Checked;
1206     ReadProxyUserIDEdit.Enabled := ReadProxyCheck.Checked;
1207     ReadProxyPasswordEdit.Enabled := ReadProxyCheck.Checked;
1208    
1209     ReadAddressLabel.Enabled := ReadProxyCheck.Checked;
1210     ReadPortLabel.Enabled := ReadProxyCheck.Checked;
1211     ReadUserIDLabel.Enabled := ReadProxyCheck.Checked;
1212     ReadPasswordLabel.Enabled := ReadProxyCheck.Checked;
1213     end;
1214    
1215     procedure TOptionDialog.ReadPortEditExit(Sender: TObject);
1216     begin
1217     if not GikoSys.IsNumeric(ReadPortEdit.Text) then
1218     ReadPortEdit.Text := '0';
1219     end;
1220    
1221     procedure TOptionDialog.LogFolderButtonClick(Sender: TObject);
1222     var
1223     Root: WideString;
1224     Dir: string;
1225     begin
1226     Root := '';
1227     if SelectDirectory('鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申', Root, Dir) then begin
1228     LogFolderEdit.Text := Dir;
1229     end;
1230     end;
1231    
1232     function TOptionDialog.CheckFolder: Boolean;
1233     begin
1234     if Trim(LogFolderEdit.Text) = '' then
1235     LogFolderEdit.Text := ExtractFilePath(Application.ExeName) + 'Log';
1236    
1237     if DirectoryExists(LogFolderEdit.Text) then begin
1238     Result := True;
1239     end else begin
1240     if MsgBox(Handle, '鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?', '鐃?鐃?鐃?鐃?', MB_YESNO or MB_ICONQUESTION) = IDYES then begin
1241     //鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1242     try
1243     GikoSys.ForceDirectoriesEx(LogFolderEdit.Text);
1244     Result := True
1245     except
1246     MsgBox(Handle, '鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?', '鐃?鐃緒申鐃?', MB_OK or MB_ICONSTOP);
1247     OptionTab.ActivePage := FolderSheet;
1248     LogFolderEdit.SetFocus;
1249     Result := False;
1250     end;
1251     end else
1252     Result := False;
1253     end;
1254     end;
1255    
1256     procedure TOptionDialog.FormClose(Sender: TObject; var Action: TCloseAction);
1257     begin
1258     if not FClose then
1259     Action := caNone;
1260     FClose := True;
1261     end;
1262    
1263     procedure TOptionDialog.SoundReferButtonClick(Sender: TObject);
1264     begin
1265     OpenDialog.Filter := '鐃?鐃?鐃緒申鐃? (*.wav)|*.wav|鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申 (*.*)|*.*';
1266     sndPlaySound(nil, SND_ASYNC);
1267     if OpenDialog.Execute then begin
1268     SoundFileEdit.Text := OpenDialog.FileName;
1269     end;
1270     end;
1271    
1272     procedure TOptionDialog.SoundPlayButtonClick(Sender: TObject);
1273     begin
1274     if not FileExists(SoundFileEdit.Text) then begin
1275     MsgBox(Handle, '鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申', '鐃?鐃緒申鐃?', MB_ICONSTOP or MB_OK);
1276     SoundFileEdit.Text := '';
1277     Exit;
1278     end;
1279     if not sndPlaySound(PChar(SoundFileEdit.Text), SND_ASYNC or SND_NOSTOP) then begin
1280     sndPlaySound(nil, SND_ASYNC);
1281     end;
1282     end;
1283    
1284     procedure TOptionDialog.SoundListViewChanging(Sender: TObject;
1285 yoffy 1.22 Item: TListItem; Change: TItemChange; var AllowChange: Boolean);
1286 hi_ 1.1 begin
1287     if Item.SubItems.Count > 0 then
1288     SoundFileEdit.Text := Item.SubItems[0];
1289     end;
1290    
1291     procedure TOptionDialog.SoundFileEditChange(Sender: TObject);
1292     var
1293     Item: TListItem;
1294     begin
1295     sndPlaySound(nil, SND_ASYNC);
1296     Item := SoundListView.Selected;
1297     if Item = nil then Exit;
1298    
1299     if FileExists(SoundFileEdit.Text) then
1300     Item.SubItems[0] := SoundFileEdit.Text;
1301     if Trim(SoundFileEdit.Text) = '' then
1302     Item.SubItems[0] := '';
1303     end;
1304    
1305     procedure TOptionDialog.OptionTabChange(Sender: TObject);
1306     begin
1307     sndPlaySound(nil, SND_ASYNC);
1308 yoffy 1.11
1309 yoffy 1.22 if OptionTab.ActivePage = CSSTabSheet then
1310     CSSPreview;
1311 hi_ 1.1 end;
1312    
1313     procedure TOptionDialog.AppFolderButtonClick(Sender: TObject);
1314     begin
1315     OpenDialog.Filter := '鐃緒申鐃?鐃?鐃?鐃?鐃緒申 (*.exe)|*.exe|鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申 (*.*)|*.*';
1316     if OpenDialog.Execute then
1317     AppFolderEdit.Text := OpenDialog.FileName;
1318     end;
1319    
1320     procedure TOptionDialog.WriteProxyCheckClick(Sender: TObject);
1321     begin
1322     WriteProxyAddressEdit.Enabled := WriteProxyCheck.Checked;
1323     WritePortEdit.Enabled := WriteProxyCheck.Checked;
1324     WriteProxyUserIDEdit.Enabled := WriteProxyCheck.Checked;
1325     WriteProxyPasswordEdit.Enabled := WriteProxyCheck.Checked;
1326    
1327     WriteAddressLabel.Enabled := WriteProxyCheck.Checked;
1328     WritePortLabel.Enabled := WriteProxyCheck.Checked;
1329     WriteUserIDLabel.Enabled := WriteProxyCheck.Checked;
1330     WritePasswordLabel.Enabled := WriteProxyCheck.Checked;
1331     end;
1332    
1333     procedure TOptionDialog.WritePortEditExit(Sender: TObject);
1334     begin
1335     if not GikoSys.IsNumeric(WritePortEdit.Text) then
1336     WritePortEdit.Text := '0';
1337     end;
1338    
1339     procedure TOptionDialog.Tora3URLLabelClick(Sender: TObject);
1340     begin
1341     GikoSys.OpenBrowser(URL_TORA3, gbtAuto);
1342     end;
1343    
1344     procedure TOptionDialog.HotKeyEnter(Sender: TObject);
1345     begin
1346     OkBotton.Default := False;
1347     CancelBotton.Cancel := False;
1348     end;
1349    
1350     procedure TOptionDialog.HotKeyExit(Sender: TObject);
1351     begin
1352     OkBotton.Default := True;
1353     CancelBotton.Cancel := True;
1354     end;
1355    
1356     procedure TOptionDialog.URLAppCheckBoxClick(Sender: TObject);
1357     begin
1358     AppFolderLabel.Enabled := URLAppCheckBox.Checked;
1359     AppFolderEdit.Enabled := URLAppCheckBox.Checked;
1360     AppFolderButton.Enabled := URLAppCheckBox.Checked;
1361     end;
1362    
1363     procedure TOptionDialog.AddressHistoryCountEditExit(Sender: TObject);
1364     begin
1365     if not GikoSys.IsNumeric(AddressHistoryCountEdit.Text) then
1366     AddressHistoryCountEdit.Text := '100';
1367     end;
1368    
1369     procedure TOptionDialog.PreviewWaitEditExit(Sender: TObject);
1370     begin
1371     if not GikoSys.IsNumeric(PreviewWaitEdit.Text) then
1372     PreviewWaitEdit.Text := '500';
1373     if StrToInt(PreviewWaitEdit.Text) < 500 then
1374     PreviewWaitEdit.Text := '500';
1375     if StrToInt(PreviewWaitEdit.Text) > 9999 then
1376     PreviewWaitEdit.Text := '9999';
1377     end;
1378    
1379     procedure TOptionDialog.CSSCheckBoxClick(Sender: TObject);
1380     begin
1381     CSSListLabel.Enabled := CSSCheckBox.Checked;
1382     CSSListView.Enabled := CSSCheckBox.Checked;
1383     end;
1384    
1385 h677 1.3 procedure TOptionDialog.SetAbonpropertys;
1386     begin
1387 yoffy 1.22 //鐃緒申鐃緒申鐃?鐃緒申
1388     GikoSys.FAbon.Deleterlo := RloCheckBox.Checked;
1389     GikoSys.FAbon.Replaceul := ReplaceulCheckBox.Checked;
1390     GikoSys.FAbon.AbonPopupRes := PopUpAbonCheckBox.Checked;
1391 h677 1.17 GikoSys.FAbon.ReturnNGwordLineNum := ShowNGLineCheckBox.Checked;
1392 yoffy 1.22 GikoSys.FAbon.SetNGResAnchor := AddResAnchorCheckBox.Checked;
1393 h677 1.29 GikoSys.FAbon.DeleteSyria := DeleteSyriaCheckBox.Checked;
1394 h677 1.3 end;
1395 yoffy 1.8 procedure TOptionDialog.CSSFontButtonClick(Sender: TObject);
1396     begin
1397    
1398     FontDialog.Options := [fdAnsiOnly, fdEffects];
1399 yoffy 1.9 FontDialog.Font.Assign(FCSSFont);
1400 yoffy 1.8 if FontDialog.Execute then begin
1401     FontDialog.Font.Style := FontDialog.Font.Style - [fsUnderline] - [fsStrikeout];
1402 h677 1.31 FCSSFont.Assign(FontDialog.Font);
1403     //FCSSFont := FontDialog.Font;
1404 yoffy 1.8 end;
1405    
1406 yoffy 1.22 CSSPreview;
1407 yoffy 1.11
1408 yoffy 1.8 end;
1409    
1410     procedure TOptionDialog.CSSBackColorButtonClick(Sender: TObject);
1411     begin
1412    
1413 yoffy 1.9 ColorDialog.Color := FCSSBackColor;
1414 yoffy 1.8 if ColorDialog.Execute then begin
1415 yoffy 1.22 FCSSBackColor := ColorDialog.Color;
1416 yoffy 1.8 end;
1417    
1418 yoffy 1.22 CSSPreview;
1419 yoffy 1.11
1420 yoffy 1.8 end;
1421    
1422     procedure TOptionDialog.CSSFontCheckBoxClick(Sender: TObject);
1423     begin
1424    
1425     CSSFontButton.Enabled := CSSFontCheckBox.Checked;
1426 yoffy 1.22 CSSPreview;
1427 yoffy 1.8
1428     end;
1429    
1430     procedure TOptionDialog.CSSBackColorCheckBoxClick(Sender: TObject);
1431     begin
1432    
1433     CSSBackColorButton.Enabled := CSSBackColorCheckBox.Checked;
1434 yoffy 1.22 CSSPreview;
1435 yoffy 1.9
1436     end;
1437    
1438     procedure TOptionDialog.CSSSetContent(Content: string);
1439     var
1440     doc : Variant;
1441     begin
1442 h677 1.13 if CSSBrowser.Document <> nil then begin
1443     doc := CSSBrowser.Document;
1444     doc.open;
1445 yoffy 1.22 doc.Clear;
1446 h677 1.13 doc.charset := 'Shift_JIS';
1447     doc.Write(Content);
1448     doc.Close;
1449 yoffy 1.22 end;
1450 yoffy 1.9 end;
1451    
1452     procedure TOptionDialog.CSSPreview;
1453     var
1454 yoffy 1.15 Board: TBoard;
1455 yoffy 1.9 ThreadItem: TThreadItem;
1456     html: string;
1457 yoffy 1.22 Res: array [0..1] of TResRec;
1458     UserOptionalStyle: string;
1459     i: Integer;
1460     fileName: string;
1461 yoffy 1.11 begin
1462    
1463     fileName := GikoSys.Setting.CSSFileName;
1464    
1465     GikoSys.Setting.CSSFileName := 'default.css';
1466     if CSSListView.Items.Count > 0 then begin
1467     try
1468 h677 1.13 if CSSListView.ItemIndex >= 0 then begin
1469     if CSSListView.Items[CSSListView.ItemIndex].Data <> nil then
1470     GikoSys.Setting.CSSFileName := string( CSSListView.Items[CSSListView.ItemIndex].data )
1471     else
1472     GikoSys.Setting.CSSFileName := CSSListView.Items[CSSListView.ItemIndex].Caption + '.css';
1473 yoffy 1.22 end;
1474 yoffy 1.11 except
1475     end;
1476     end;
1477 yoffy 1.10
1478 yoffy 1.25 Board := TBoard.Create( nil, 'about://sample/' );
1479     ThreadItem := TThreadItem.Create( nil, 'about://sample/test/read.cgi/sample/' );
1480 yoffy 1.9
1481 yoffy 1.22 try
1482     Board.Title := '鐃?鐃緒申鐃?鐃緒申鐃緒申';
1483     ThreadItem.ParentBoard := Board;
1484     ThreadItem.AllResCount := High( Res );
1485     ThreadItem.NewResCount := 1;
1486     ThreadItem.NewReceive := 2;
1487     ThreadItem.Title := '鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?';
1488    
1489     Res[0].FName := '鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申';
1490     Res[0].FMailTo := 'sage';
1491     Res[0].FDateTime := 'ID:Sample';
1492     Res[0].FBody := 'CSS 鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申';
1493     Res[1].FName := '鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申';
1494     Res[1].FMailTo := 'age';
1495     Res[1].FDateTime := 'ID:Sample';
1496     Res[1].FBody := '鐃?鐃?鐃?鐃緒申鐃?鐃?';
1497    
1498     // 鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申
1499     if CSSFontCheckBox.Checked then begin
1500     i := ColorToRGB( FCSSFont.Color );
1501     i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16);
1502    
1503     UserOptionalStyle := UserOptionalStyle +
1504     'font-family:"' + FCSSFont.Name + '";' +
1505     'font-size:' + IntToStr( FCSSFont.Size ) + 'pt;' +
1506     'color:#' + IntToHex( i, 6 ) + ';';
1507     if fsBold in FCSSFont.Style then
1508     UserOptionalStyle := UserOptionalStyle + 'font-weight:bold;'
1509     else
1510     UserOptionalStyle := UserOptionalStyle + 'font-weight:normal;';
1511     if fsItalic in FCSSFont.Style then
1512     UserOptionalStyle := UserOptionalStyle + 'font-style:italic;'
1513     else
1514     UserOptionalStyle := UserOptionalStyle + 'font-style:normal;';
1515     end;
1516     if CSSBackColorCheckBox.Checked then begin
1517     i := ColorToRGB( FCSSBackColor );
1518     i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16);
1519    
1520     UserOptionalStyle := UserOptionalStyle +
1521     'background-color:#' + IntToHex( i, 6 ) + ';';
1522     end;
1523    
1524     if FileExists( GikoSys.GetSkinHeaderFileName ) then begin
1525     html :=
1526     GikoSys.LoadFromSkin( GikoSys.GetSkinHeaderFileName, ThreadItem, 0 ) +
1527     '<a name="top"></a>' +
1528     GikoSys.SkinedRes( GikoSYs.LoadFromSkin( GikoSys.GetSkinResFileName, ThreadItem, 0 ), Res[0], '1' ) +
1529     GikoSys.SkinedRes( GikoSYs.LoadFromSkin( GikoSys.GetSkinNewResFileName, ThreadItem, 0 ), Res[1], '2' ) +
1530     '<a name="bottom"></a>' +
1531     GikoSys.LoadFromSkin( GikoSys.GetSkinFooterFileName, ThreadItem, 0 );
1532    
1533     html := StringReplace( html, '</head>',
1534     '<style type="text/css">body {' + UserOptionalStyle + '}</style></head>', [rfReplaceAll] );
1535     end else begin
1536     html :=
1537     '<html><head>' +
1538     '<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">' +
1539     '<title>' + ThreadItem.Title + '</title>' +
1540     '<link rel="stylesheet" href="' + GikoSys.GetStyleSheetDir + GikoSys.Setting.CSSFileName + '" type="text/css">' +
1541     '<style type="text/css">body {' + UserOptionalStyle + '}</style>' +
1542     '</head><body>' +
1543     '<div class="title">' + ThreadItem.Title + '</div>';
1544    
1545     for i := 0 to High( Res ) do
1546     begin
1547     html := html +
1548     '<div class="header"><span class="no">' + IntToStr( i + 1 ) + '</span>' +
1549     '<span class="name_label"> 鐃緒申鐃?鐃? </span>' +
1550     '<a class="name_mail" href="mailto:' + Res[i].FMailTo + '">' +
1551     '<b>' + Res[i].FName + '</b></a><span class="mail"> [' + Res[i].FMailTo + ']</span>' +
1552     '<span class="date_label"> 鐃緒申鐃?鐃緒申鐃?</span>' +
1553     '<span class="date"> ' + Res[i].FDateTime+ '</span></div>' +
1554     '<div class="mes">' + Res[i].FBody + ' </div>';
1555     end;
1556    
1557     html := html + '</body></html>';
1558     end;
1559    
1560     try
1561     CSSSetContent( html );
1562     except
1563     end;
1564    
1565     finally
1566     ThreadItem.Free;
1567     Board.Free;
1568     GikoSys.Setting.CSSFileName := fileName;
1569     end;
1570 yoffy 1.11
1571     end;
1572    
1573     procedure TOptionDialog.CSSListViewChange(Sender: TObject; Item: TListItem;
1574 yoffy 1.22 Change: TItemChange);
1575 yoffy 1.11 begin
1576    
1577 yoffy 1.14 if OptionTab.ActivePage = CSSTabSheet then
1578     CSSPreview;
1579 yoffy 1.11
1580 h677 1.19 end;
1581    
1582     procedure TOptionDialog.AddURLButtonClick(Sender: TObject);
1583     begin
1584     BoardURLComboBox.Items.Append(BoardURLComboBox.Text);
1585 yoffy 1.22 BoardURLComboBox.ItemIndex := BoardURLComboBox.Items.Count - 1;
1586 h677 1.19 end;
1587    
1588     procedure TOptionDialog.RemoveURLButtonClick(Sender: TObject);
1589     begin
1590     BoardURLComboBox.DeleteSelected;
1591 h677 1.23 end;
1592    
1593     procedure TOptionDialog.OddResNumCheckBoxClick(Sender: TObject);
1594     begin
1595     OddResNumColorBox.Enabled := OddResNumCheckBox.Checked;
1596 yoffy 1.8 end;
1597    
1598 yoffy 1.49 procedure TOptionDialog.ResRangeHoldCheckBoxClick(Sender: TObject);
1599     begin
1600     ResRangeHoldComboBox.Enabled := ResRangeHoldCheckBox.Checked;
1601     end;
1602    
1603 genyakun 1.58 procedure TOptionDialog.CroutOptionClick(Sender: TObject);
1604 h677 1.59 var
1605     KuroutOption: TKuroutOption;
1606 genyakun 1.58 begin
1607 h677 1.60 KuroutOption := TKuroutOption.Create(Self);
1608 h677 1.59 try
1609 h677 1.60 KuroutOption.ShowModal;
1610 h677 1.59 finally
1611 h677 1.60 KuroutOption.Release;
1612 h677 1.59 end;
1613 genyakun 1.58 end;
1614    
1615 hi_ 1.1 end.
1616    

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