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.15 - (hide annotations) (download) (as text)
Sat Sep 27 07:05:33 2003 UTC (20 years, 6 months ago) by yoffy
Branch: MAIN
Changes since 1.14: +12 -1 lines
File MIME type: text/x-pascal
・オプションダイアログの変更が表示中のスレッドに反映されるようになった。

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 yoffy 1.9 SHDocVw_TLB, BoardGroup;
10 hi_ 1.1
11     type
12     TOptionDialog = class(TForm)
13     OkBotton: TButton;
14     CancelBotton: TButton;
15     OptionTab: TPageControl;
16     ConnectSheet: TTabSheet;
17     Font1Sheet: TTabSheet;
18     ApplyButton: TButton;
19     FontDialog: TFontDialog;
20     ColorDialog: TColorDialog;
21     ReadProxyGroupBox: TGroupBox;
22     ReadAddressLabel: TLabel;
23     ReadPortLabel: TLabel;
24     ReadProxyCheck: TCheckBox;
25     ReadProxyAddressEdit: TEdit;
26     ReadPortEdit: TEdit;
27     ReadProxyUserIDEdit: TEdit;
28     ReadProxyPasswordEdit: TEdit;
29     ReadUserIDLabel: TLabel;
30     ReadPasswordLabel: TLabel;
31     FolderSheet: TTabSheet;
32     FolderGroupBox: TGroupBox;
33     LogFolderEdit: TEdit;
34     LogFolderButton: TButton;
35     Label1: TLabel;
36     Label2: TLabel;
37     ThreadSheet: TTabSheet;
38     SoundSheet: TTabSheet;
39     SoundEventGroupBox: TGroupBox;
40     SoundListView: TListView;
41     SoundReferButton: TButton;
42     SoundFileEdit: TEdit;
43     OpenDialog: TOpenDialog;
44     WriteProxyGroupBox: TGroupBox;
45     WriteAddressLabel: TLabel;
46     WritePortLabel: TLabel;
47     WriteUserIDLabel: TLabel;
48     WritePasswordLabel: TLabel;
49     WriteProxyCheck: TCheckBox;
50     WriteProxyAddressEdit: TEdit;
51     WritePortEdit: TEdit;
52     WriteProxyUserIDEdit: TEdit;
53     WriteProxyPasswordEdit: TEdit;
54     BoardSheet: TTabSheet;
55     GroupBox4: TGroupBox;
56     BoardURL2chEdit: TEdit;
57     Label13: TLabel;
58     UserIDSheet: TTabSheet;
59     GroupBox3: TGroupBox;
60     Label9: TLabel;
61     Label10: TLabel;
62     UserIDEdit: TEdit;
63     PasswordEdit: TEdit;
64     SoundPlayButton: TBitBtn;
65     AutoLoginCheckBox: TCheckBox;
66     Tora3URLLabel: TLabel;
67     Label12: TLabel;
68     Label5: TLabel;
69     GroupBox5: TGroupBox;
70     ComboBox1: TComboBox;
71     Label6: TLabel;
72     Label7: TLabel;
73     Label8: TLabel;
74     ComboBox2: TComboBox;
75     ComboBox3: TComboBox;
76     Label4: TLabel;
77     Edit1: TEdit;
78     Button1: TButton;
79     CabinetFontBotton: TButton;
80     CabinetColorBotton: TButton;
81     CabinetDefaultButton: TButton;
82     CabinetMemo: TMemo;
83     ListMemo: TMemo;
84     ListFontBotton: TButton;
85     ListColorBotton: TButton;
86     ListDefaultBotton: TButton;
87     HintFontButton: TButton;
88     HintBackButton: TButton;
89     HintDefaultButton: TButton;
90     HintMemo: TMemo;
91     EditorMemo: TMemo;
92     EditorFontBotton: TButton;
93     EditorColorBotton: TButton;
94     EditorDefaultBotton: TButton;
95     BrowserTabMemo: TMemo;
96     BruwserTabFontButton: TButton;
97     BrowserTabDefaultButton: TButton;
98     Bevel1: TBevel;
99     Bevel2: TBevel;
100     GroupBox1: TGroupBox;
101     GroupBox2: TGroupBox;
102     URLAppCheckBox: TCheckBox;
103     AppFolderLabel: TLabel;
104     AppFolderEdit: TEdit;
105     AppFolderButton: TButton;
106     OpenMailerCheckBox: TCheckBox;
107     TabSheet1: TTabSheet;
108     PopupPositionRadioGroup: TRadioGroup;
109     TabAddRadioGroup: TRadioGroup;
110     TabSheet2: TTabSheet;
111     GroupBox7: TGroupBox;
112     URLDisplayCheckBox: TCheckBox;
113     Label3: TLabel;
114     Label11: TLabel;
115     TabStopAddressBarCheckBox: TCheckBox;
116     AddressHistoryCountEdit: TEdit;
117     LinkAddCheckBox: TCheckBox;
118     GroupBox8: TGroupBox;
119     PreviewVisibleCheckBox: TCheckBox;
120     PreviewSizeComboBox: TComboBox;
121     Label14: TLabel;
122     Label15: TLabel;
123     PreviewWaitEdit: TEdit;
124     Label16: TLabel;
125     ShowMailCheckBox: TCheckBox;
126     TabSheet3: TTabSheet;
127     GroupBox9: TGroupBox;
128     ThreadListIconCheckBox: TCheckBox;
129     GroupBox6: TGroupBox;
130     LogDeleteMessageCheckBox: TCheckBox;
131     GroupBox10: TGroupBox;
132     UnActivePopupCheckBox: TCheckBox;
133     GroupBox11: TGroupBox;
134     RecvBufferSize: TEdit;
135     Label17: TLabel;
136     ProxyProtocolCheckBox: TCheckBox;
137     ProtocolCheckBox: TCheckBox;
138     Label18: TLabel;
139     Label19: TLabel;
140     Bevel5: TBevel;
141     Label20: TLabel;
142     Label21: TLabel;
143     Label22: TLabel;
144     Label23: TLabel;
145 yoffy 1.11 CSSTabSheet: TTabSheet;
146 hi_ 1.1 lblSFont: TLabel;
147     GroupBox12: TGroupBox;
148     CSSCheckBox: TCheckBox;
149     CSSListLabel: TLabel;
150     CSSListView: TListView;
151     GroupBox13: TGroupBox;
152     PostTimeCheckBox: TCheckBox;
153     Label24: TLabel;
154     Label25: TLabel;
155     PostTimeEdit: TEdit;
156     PostTimeLabel: TLabel;
157     Label27: TLabel;
158     PutPostTimeRadioButton: TRadioButton;
159     BackPostTimeRadioButton: TRadioButton;
160 yoffy 1.2 ResPopupBoldCheckBox: TCheckBox;
161 h677 1.3 NGwordSheet: TTabSheet;
162     GroupBox14: TGroupBox;
163     RloCheckBox: TCheckBox;
164     ReplaceulCheckBox: TCheckBox;
165     PopUpAbonCheckBox: TCheckBox;
166 yoffy 1.9 CSSBrowser: TWebBrowser;
167 yoffy 1.8 CSSFontCheckBox: TCheckBox;
168     CSSBackColorCheckBox: TCheckBox;
169     CSSFontButton: TButton;
170     CSSBackColorButton: TButton;
171 yoffy 1.14 SkinPopupCheckBox: TCheckBox;
172 hi_ 1.1 procedure FormCreate(Sender: TObject);
173     procedure FormDestroy(Sender: TObject);
174     procedure ApplyButtonClick(Sender: TObject);
175     procedure CabinetFontBottonClick(Sender: TObject);
176     procedure CabinetColorBottonClick(Sender: TObject);
177     procedure EditorFontBottonClick(Sender: TObject);
178     procedure OkBottonClick(Sender: TObject);
179     procedure ReadProxyCheckClick(Sender: TObject);
180     procedure ListFontBottonClick(Sender: TObject);
181     procedure ListColorBottonClick(Sender: TObject);
182     procedure EditorColorBottonClick(Sender: TObject);
183     procedure CabinetDefaultButtonClick(Sender: TObject);
184     procedure ReadPortEditExit(Sender: TObject);
185     procedure ListDefaultBottonClick(Sender: TObject);
186     procedure EditorDefaultBottonClick(Sender: TObject);
187     procedure HintFontButtonClick(Sender: TObject);
188     procedure HintBackButtonClick(Sender: TObject);
189     procedure HintDefaultButtonClick(Sender: TObject);
190     procedure LogFolderButtonClick(Sender: TObject);
191     procedure FormClose(Sender: TObject; var Action: TCloseAction);
192     procedure SoundReferButtonClick(Sender: TObject);
193     procedure SoundPlayButtonClick(Sender: TObject);
194     procedure SoundListViewChanging(Sender: TObject; Item: TListItem;
195     Change: TItemChange; var AllowChange: Boolean);
196     procedure SoundFileEditChange(Sender: TObject);
197     procedure OptionTabChange(Sender: TObject);
198     procedure AppFolderButtonClick(Sender: TObject);
199     procedure WriteProxyCheckClick(Sender: TObject);
200     procedure WritePortEditExit(Sender: TObject);
201     procedure Tora3URLLabelClick(Sender: TObject);
202     procedure HotKeyEnter(Sender: TObject);
203     procedure HotKeyExit(Sender: TObject);
204     procedure URLAppCheckBoxClick(Sender: TObject);
205     procedure BruwserTabFontButtonClick(Sender: TObject);
206     procedure BrowserTabDefaultButtonClick(Sender: TObject);
207     procedure AddressHistoryCountEditExit(Sender: TObject);
208     procedure PreviewWaitEditExit(Sender: TObject);
209     procedure RecvBufferSizeExit(Sender: TObject);
210     procedure CSSCheckBoxClick(Sender: TObject);
211     procedure PostTimeEditExit(Sender: TObject);
212     procedure PostTimeCheckBoxClick(Sender: TObject);
213 yoffy 1.8 procedure CSSFontButtonClick(Sender: TObject);
214     procedure CSSBackColorButtonClick(Sender: TObject);
215     procedure CSSFontCheckBoxClick(Sender: TObject);
216     procedure CSSBackColorCheckBoxClick(Sender: TObject);
217 yoffy 1.11 procedure CSSListViewChange(Sender: TObject; Item: TListItem;
218     Change: TItemChange);
219 hi_ 1.1 private
220     { Private 鐃緒申鐃緒申 }
221     FClose: Boolean;
222 yoffy 1.9 FCSSFont: TFont;
223     FCSSBackColor: TColor;
224 hi_ 1.1 function GetMemoText(font: TFont; text: string): string;
225     // function GetFontText(Font: TFont; Text: string): string;
226     procedure SetValue;
227     procedure SaveSetting;
228     procedure SettingApply;
229     function CheckFolder: Boolean;
230 yoffy 1.9 procedure SetAbonpropertys;
231     procedure CSSSetContent(Content: string);
232     procedure CSSPreview;
233 hi_ 1.1 public
234     { Public 鐃緒申鐃緒申 }
235     end;
236    
237     var
238     OptionDialog: TOptionDialog;
239    
240     implementation
241    
242     uses
243     Giko, Editor, Setting, ActnList;
244    
245     const
246     FONT_TEXT: string = '%s %d pt';
247     MEMO_CABINET: string = '鐃?鐃緒申鐃?鐃?鐃?鐃?';
248     MEMO_THREAD: string = '鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?';
249     MEMO_BROWSERPOPUP: string = '鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?';
250     MEMO_BROWSERTAB: string = '鐃?鐃緒申鐃?鐃?鐃?鐃?';
251     MEMO_EDITOR: string = '鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?';
252     DEFAULT_FONT_NAME: string = '鐃?鐃? 鐃?鐃?鐃?鐃?鐃?';
253     DEFAULT_FONT_SIZE: Integer = 9;
254     DEFAULT_TABFONT_NAME: string = '鐃?鐃? 鐃?鐃?鐃?鐃?鐃?';
255     DEFAULT_TABFONT_SIZE: Integer = 9;
256     URL_TORA3: WideString = 'http://2ch.tora3.net/';
257    
258     {$R *.DFM}
259    
260     procedure TOptionDialog.FormCreate(Sender: TObject);
261     begin
262 yoffy 1.14
263     CSSBrowser.Navigate('about:blank');
264 hi_ 1.1 FClose := True;
265    
266     OptionTab.ActivePage := ConnectSheet;
267     SetValue;
268    
269     CabinetMemo.Text := GetMemoText(CabinetMemo.Font, MEMO_CABINET);
270     ListMemo.Text := GetMemoText(ListMemo.Font, MEMO_THREAD);
271     HintMemo.Text := GetMemoText(HintMemo.Font, MEMO_BROWSERPOPUP);
272     BrowserTabMemo.Text := GetMemoText(BrowserTabMemo.Font, MEMO_BROWSERTAB);
273     EditorMemo.Text := GetMemoText(EditorMemo.Font, MEMO_EDITOR);
274    
275     Tora3URLLabel.Cursor := 5;
276     lblSFont.Caption := '鐃緒申鐃?鐃?鐃緒申'#13#10#13#10
277     + '鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?'#13#10
278 yoffy 1.9 + '鐃?CSS 鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申';
279 hi_ 1.1 CSSCheckBoxClick(Sender);
280     PostTimeCheckBoxClick(Sender);
281 yoffy 1.9
282 hi_ 1.1 end;
283    
284     procedure TOptionDialog.FormDestroy(Sender: TObject);
285     begin
286     sndPlaySound(nil, SND_ASYNC);
287     end;
288    
289     procedure TOptionDialog.OkBottonClick(Sender: TObject);
290     begin
291     FClose := True;
292     RecvBufferSizeExit(Sender);
293     ReadPortEditExit(Sender);
294     WritePortEditExit(Sender);
295     AddressHistoryCountEditExit(Sender);
296     PreviewWaitEditExit(Sender);
297     PostTimeEditExit(Sender);
298    
299     if not CheckFolder then begin
300     FClose := False;
301     Exit;
302     end;
303     SaveSetting;
304     SettingApply;
305 yoffy 1.6 SetAbonpropertys;
306 hi_ 1.1 end;
307    
308     procedure TOptionDialog.ApplyButtonClick(Sender: TObject);
309     begin
310     RecvBufferSizeExit(Sender);
311     ReadPortEditExit(Sender);
312     WritePortEditExit(Sender);
313     AddressHistoryCountEditExit(Sender);
314     PreviewWaitEditExit(Sender);
315     PostTimeEditExit(Sender);
316    
317     if not CheckFolder then begin
318     FClose := False;
319     Exit;
320     end;
321     SaveSetting;
322     SettingApply;
323 yoffy 1.6 SetAbonpropertys;
324 hi_ 1.1 FClose := False;
325     end;
326    
327     //function TOptionDialog.GetFontText(Font: TFont; Text: string): string;
328     //begin
329     // result := Format(Text, [Font.Name, Font.Size]);
330     //end;
331    
332     function TOptionDialog.GetMemoText(font: TFont; text: string): string;
333     var
334     s: string;
335     begin
336     s := '';
337     if font <> nil then
338     s := Format(FONT_TEXT, [Font.Name, Font.Size]) + #13#10;
339     Result := s + text;
340     end;
341    
342     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
343     procedure TOptionDialog.CabinetFontBottonClick(Sender: TObject);
344     begin
345     FontDialog.Options := [fdAnsiOnly, fdEffects];
346     FontDialog.Font.Assign(CabinetMemo.Font);
347     if FontDialog.Execute then begin
348     FontDialog.Font.Style := FontDialog.Font.Style - [fsUnderline] - [fsStrikeout];
349     CabinetMemo.Font.Assign(FontDialog.Font);
350     CabinetMemo.Text := GetMemoText(CabinetMemo.Font, MEMO_CABINET);
351     CabinetMemo.Font.Charset := SHIFTJIS_CHARSET;
352     end;
353     end;
354    
355     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申
356     procedure TOptionDialog.CabinetColorBottonClick(Sender: TObject);
357     begin
358     ColorDialog.Color := CabinetMemo.Color;
359     if ColorDialog.Execute then begin
360     CabinetMemo.Color := ColorDialog.Color;
361     end;
362     end;
363    
364     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
365     procedure TOptionDialog.CabinetDefaultButtonClick(Sender: TObject);
366     begin
367     CabinetMemo.Font.Name := DEFAULT_FONT_NAME;
368     CabinetMemo.Font.Size := DEFAULT_FONT_SIZE;
369     CabinetMemo.Font.Color := clWindowText;
370     CabinetMemo.Font.Style := [];
371     CabinetMemo.Color := clWindow;
372     CabinetMemo.Text := GetMemoText(CabinetMemo.Font, MEMO_CABINET);
373     end;
374    
375     //鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
376     procedure TOptionDialog.ListFontBottonClick(Sender: TObject);
377     begin
378     FontDialog.Options := [fdAnsiOnly, fdEffects];
379     FontDialog.Font.Assign(ListMemo.Font);
380     if FontDialog.Execute then begin
381     ListMemo.Font.Assign(FontDialog.Font);
382     ListMemo.Text := GetMemoText(ListMemo.Font, MEMO_THREAD);
383     ListMemo.Font.Charset := SHIFTJIS_CHARSET;
384     end;
385     end;
386    
387     //鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申
388     procedure TOptionDialog.ListColorBottonClick(Sender: TObject);
389     begin
390     ColorDialog.Color := ListMemo.Color;
391     if ColorDialog.Execute then begin
392     ListMemo.Color := ColorDialog.Color;
393     end;
394     end;
395    
396     //鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
397     procedure TOptionDialog.ListDefaultBottonClick(Sender: TObject);
398     begin
399     ListMemo.Font.Name := DEFAULT_FONT_NAME;
400     ListMemo.Font.Size := DEFAULT_FONT_SIZE;
401     ListMemo.Font.Color := clWindowText;
402     ListMemo.Font.Style := [];
403     ListMemo.Color := clWindow;
404     ListMemo.Text := GetMemoText(ListMemo.Font, MEMO_THREAD);
405     end;
406    
407     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
408     procedure TOptionDialog.HintFontButtonClick(Sender: TObject);
409     begin
410     FontDialog.Options := [fdAnsiOnly, fdEffects];
411     FontDialog.Font.Assign(HintMemo.Font);
412     if FontDialog.Execute then begin
413     HintMemo.Font.Assign(FontDialog.Font);
414     HintMemo.Text := GetMemoText(HintMemo.Font, MEMO_BROWSERPOPUP);
415     HintMemo.Font.Charset := SHIFTJIS_CHARSET;
416     end;
417     end;
418    
419     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申
420     procedure TOptionDialog.HintBackButtonClick(Sender: TObject);
421     begin
422     ColorDialog.Color := HintMemo.Color;
423     if ColorDialog.Execute then begin
424     HintMemo.Color := ColorDialog.Color;
425     end;
426     end;
427    
428     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
429     procedure TOptionDialog.HintDefaultButtonClick(Sender: TObject);
430     begin
431     HintMemo.Font.Name := DEFAULT_FONT_NAME;
432     HintMemo.Font.Size := DEFAULT_FONT_SIZE;
433     HintMemo.Font.Color := clWindowText;
434     HintMemo.Font.Style := [];
435     HintMemo.Color := clInfoBk;
436     HintMemo.Text := GetMemoText(HintMemo.Font, MEMO_BROWSERPOPUP);
437     end;
438    
439     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
440     procedure TOptionDialog.BruwserTabFontButtonClick(Sender: TObject);
441     begin
442     FontDialog.Options := [fdAnsiOnly];
443     FontDialog.Font.Assign(BrowserTabMemo.Font);
444     if FontDialog.Execute then begin
445     BrowserTabMemo.Font.Assign(FontDialog.Font);
446     BrowserTabMemo.Text := GetMemoText(FontDialog.Font, MEMO_BROWSERTAB);
447     BrowserTabMemo.Font.Charset := SHIFTJIS_CHARSET;
448     end;
449     end;
450    
451     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
452     procedure TOptionDialog.BrowserTabDefaultButtonClick(Sender: TObject);
453     begin
454     BrowserTabMemo.Font.Name := DEFAULT_TABFONT_NAME;
455     BrowserTabMemo.Font.Size := DEFAULT_TABFONT_SIZE;
456     BrowserTabMemo.Font.Color := clWindowText;
457     BrowserTabMemo.Font.Style := [];
458     BrowserTabMemo.Color := clBtnFace;
459     BrowserTabMemo.Text := GetMemoText(BrowserTabMemo.Font, MEMO_BROWSERTAB);
460     end;
461    
462     //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
463     procedure TOptionDialog.EditorFontBottonClick(Sender: TObject);
464     begin
465     FontDialog.Options := [fdAnsiOnly, fdEffects];
466     FontDialog.Font.Assign(EditorMemo.Font);
467     if FontDialog.Execute then begin
468     EditorMemo.Font.Assign(FontDialog.Font);
469     EditorMemo.Text := GetMemoText(EditorMemo.Font, MEMO_EDITOR);
470     EditorMemo.Font.Charset := SHIFTJIS_CHARSET;
471     end;
472     end;
473    
474     //鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申
475     procedure TOptionDialog.EditorColorBottonClick(Sender: TObject);
476     begin
477     ColorDialog.Color := EditorMemo.Font.Color;
478     if ColorDialog.Execute then begin
479     EditorMemo.Color := ColorDialog.Color;
480     end;
481     end;
482    
483     //鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
484     procedure TOptionDialog.EditorDefaultBottonClick(Sender: TObject);
485     begin
486     EditorMemo.Font.Name := DEFAULT_FONT_NAME;
487     EditorMemo.Font.Size := DEFAULT_FONT_SIZE;
488     EditorMemo.Font.Color := clWindowText;
489     EditorMemo.Font.Style := [];
490     EditorMemo.Color := clWindow;
491     EditorMemo.Text := GetMemoText(EditorMemo.Font, MEMO_EDITOR);
492     end;
493    
494     procedure TOptionDialog.SetValue;
495     var
496     i: Integer;
497     Item: TListItem;
498 h677 1.5 // s: string;
499 yoffy 1.2 idx: Integer;
500 hi_ 1.1 FileList: TStringList;
501     begin
502     //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?
503     RecvBufferSize.Text := IntToStr(Gikosys.Setting.RecvBufferSize);
504     //HTTP1.1鐃?鐃?
505     ProtocolCheckBox.Checked := GikoSys.Setting.Protocol;
506     //鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申HTTP1.1鐃?鐃?
507     ProxyProtocolCheckBox.Checked := Gikosys.Setting.ProxyProtocol;
508    
509     //鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?
510     ReadProxyCheck.Checked := GikoSys.Setting.ReadProxy;
511     ReadProxyCheckClick(nil);
512     ReadProxyAddressEdit.Text := GikoSys.Setting.ReadProxyAddress;
513     ReadPortEdit.Text := IntToStr(GikoSys.Setting.ReadProxyPort);
514     ReadProxyUserIDEdit.Text := GikoSys.Setting.ReadProxyUserID;
515     ReadProxyPasswordEdit.Text := GikoSys.Setting.ReadProxyPassword;
516     //鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?
517     WriteProxyCheck.Checked := GikoSys.Setting.WriteProxy;
518     WriteProxyCheckClick(nil);
519     WriteProxyAddressEdit.Text := GikoSys.Setting.WriteProxyAddress;
520     WritePortEdit.Text := IntToStr(GikoSys.Setting.WriteProxyPort);
521     WriteProxyUserIDEdit.Text := GikoSys.Setting.WriteProxyUserID;
522     WriteProxyPasswordEdit.Text := GikoSys.Setting.WriteProxyPassword;
523     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?
524     CabinetMemo.Font.Name := GikoSys.Setting.CabinetFontName;
525     CabinetMemo.Font.Size := GikoSys.Setting.CabinetFontSize;
526     CabinetMemo.Font.Color := GikoSys.Setting.CabinetFontColor;
527     CabinetMemo.Color := GikoSys.Setting.CabinetBackColor;
528     //鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃?
529     ListMemo.Font.Name := GikoSys.Setting.ListFontName;
530     ListMemo.Font.Size := GikoSys.Setting.ListFontSize;
531     ListMemo.Font.Color := GikoSys.Setting.ListFontColor;
532     ListMemo.Color := GikoSys.Setting.ListBackColor;
533     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?
534     HintMemo.Font.Name := GikoSys.Setting.HintFontName;
535     HintMemo.Font.Size := GikoSys.Setting.HintFontSize;
536     HintMemo.Font.Color := GikoSys.Setting.HintFontColor;
537     HintMemo.Color := GikoSys.Setting.HintBackColor;
538     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?
539     BrowserTabMemo.Font.Name := GikoSys.Setting.BrowserTabFontName;
540     BrowserTabMemo.Font.Size := GikoSys.Setting.BrowserTabFontSize;
541     BrowserTabMemo.Font.Style := [];
542     if GikoSys.Setting.BrowserTabFontBold then
543     BrowserTabMemo.Font.Style := BrowserTabMemo.Font.Style + [fsBold];
544     if GikoSys.Setting.BrowserTabFontItalic then
545     BrowserTabMemo.Font.Style := BrowserTabMemo.Font.Style + [fsItalic];
546     //鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?
547     EditorMemo.Font.Name := GikoSys.Setting.EditorFontName;
548     EditorMemo.Font.Size := GikoSys.Setting.EditorFontSize;
549     EditorMemo.Font.Color := GikoSys.Setting.EditorFontColor;
550     EditorMemo.Color := GikoSys.Setting.EditorBackColor;
551     //CSS鐃?鐃緒申
552     CSSCheckBox.Checked := GikoSys.Setting.UseCSS;
553 yoffy 1.9 FCSSFont := TFont.Create;
554     if (GikoSys.Setting.BrowserFontName <> '') or
555     (GikoSys.Setting.BrowserFontSize <> 0) or
556     (GikoSys.Setting.BrowserFontBold <> 0) or
557     (GikoSys.Setting.BrowserFontItalic <> 0) or
558     (GikoSys.Setting.BrowserFontColor <> -1 ) then begin
559     CSSFontCheckBox.Checked := True;
560    
561     FCSSFont.Name := GikoSys.Setting.BrowserFontName;
562     FCSSFont.Size := GikoSys.Setting.BrowserFontSize;
563     FCSSFont.Style := [];
564     if GikoSys.Setting.BrowserFontBold = 1 then
565     FCSSFont.Style := FCSSFont.Style + [fsBold];
566     if GikoSys.Setting.BrowserFontItalic = 1 then
567     FCSSFont.Style := FCSSFont.Style + [fsItalic];
568     i := GikoSys.Setting.BrowserFontColor;
569     i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16);
570     FCSSFont.Color := i;
571     end;
572     if GikoSys.Setting.BrowserBackColor <> -1 then begin
573     CSSBackColorCheckBox.Checked := True;
574    
575     i := GikoSys.Setting.BrowserBackColor;
576     i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16);
577     FCSSBackColor := i;
578     end;
579 hi_ 1.1 //
580     //鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申
581     FileList := TStringList.Create;
582     try
583 yoffy 1.2 GikoSys.GetFileList(GikoSys.GetStyleSheetDir, '*.css', FileList, True, True);
584    
585     Idx := Length(GikoSys.GetStyleSheetDir);
586     for i := 0 to FileList.Count - 1 do
587     FileList[i] := Copy(FileList[i], Idx + 1, Length(FileList[i]));
588 hi_ 1.1 FileList.Sort;
589     for i := 0 to FileList.Count - 1 do begin
590 yoffy 1.2 //s := ExtractFileName(FileList[i]);
591     if LowerCase(FileList[i]) = 'default.css' then
592 hi_ 1.1 Item := CSSListView.Items.Insert(0)
593     else
594     Item := CSSListView.Items.Add;
595 yoffy 1.2 Item.Caption := ChangeFileExt(FileList[i], '');
596     if LowerCase(FileList[i]) = LowerCase(GikoSys.Setting.CSSFileName) then
597 hi_ 1.1 Item.Selected := True;
598     end;
599     finally
600     FileList.Free;
601     end;
602 yoffy 1.6 //鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申
603     FileList := TStringList.Create;
604     try
605 yoffy 1.7 GikoSys.GetDirectoryList(GikoSys.GetSkinDir, '*', FileList, False);
606 yoffy 1.6
607     Idx := Length(GikoSys.GetSkinDir);
608     FileList.Sort;
609     for i := 0 to FileList.Count - 1 do begin
610     //s := ExtractFileName(FileList[i]);
611     Item := CSSListView.Items.Add;
612     Item.Data := PChar( FileList[i] );
613     Item.Caption := Copy( FileList[i], Idx + 1, Length(FileList[i]) );
614     if LowerCase(FileList[i]) = LowerCase(GikoSys.Setting.CSSFileName) then
615     Item.Selected := True;
616     end;
617     finally
618     // Item.Data 鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?
619     //FileList.Free;
620     end;
621    
622 hi_ 1.1 if (CSSListView.ItemIndex = -1) and (CSSListView.Items.Count > 0) then
623     CSSListView.Items[0].Selected := True;
624    
625 yoffy 1.14 // 鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?
626     SkinPopupCheckBox.Checked := GikoSys.Setting.SkinPopup;
627     SkinPopupCheckBox.Enabled := (CSSListView.Selected.Data <> nil);
628    
629 hi_ 1.1 //Mail鐃緒申鐃?鐃緒申
630     ShowMailCheckBox.Checked := GikoSys.Setting.ShowMail;
631     //鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?
632     TabAddRadioGroup.ItemIndex := Ord(GikoSys.Setting.BrowserTabAppend);
633     //鐃緒申鐃?鐃?URL
634     BoardURL2chEdit.Text := GikoSys.Setting.BoardURL2ch;
635     //鐃?鐃緒申
636     UserIDEdit.Text := GikoSys.Setting.UserID;
637     PasswordEdit.Text := GikoSys.Setting.Password;
638     AutoLoginCheckBox.Checked := GikoSys.Setting.AutoLogin;
639     //鐃緒申鐃?鐃?鐃?鐃緒申鐃?
640     if GikoSys.Setting.NewLogFolder = '' then
641     LogFolderEdit.Text := GikoSys.Setting.LogFolder
642     else
643     LogFolderEdit.Text := GikoSys.Setting.NewLogFolder;
644     //鐃?鐃?鐃緒申鐃?
645     for i := 0 to GikoSys.Setting.GetSoundCount - 1 do begin
646     Item := SoundListView.Items.Add;
647     Item.Caption := GikoSys.Setting.SoundViewName[i];
648     if FileExists(GikoSys.Setting.SoundFileName[i]) then
649     Item.SubItems.Add(GikoSys.Setting.SoundFileName[i])
650     else
651     Item.SubItems.Add('');
652     end;
653     //URL鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申
654     URLAppCheckBox.Checked := GikoSys.Setting.URLApp;
655     URLAppCheckBoxClick(nil);
656     AppFolderEdit.Text := GikoSys.Setting.URLAppFile;
657    
658     //mailto鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申
659     OpenMailerCheckBox.Checked := GikoSys.Setting.OpenMailer;
660    
661     //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?
662     LogDeleteMessageCheckBox.Checked := GikoSys.Setting.DeleteMsg;
663    
664     //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?
665     case GikoSys.Setting.PopupPosition of
666     gppRightTop: PopupPositionRadioGroup.ItemIndex := 0;
667     gppRight: PopupPositionRadioGroup.ItemIndex := 1;
668     gppRightBottom: PopupPositionRadioGroup.ItemIndex := 2;
669     gppTop: PopupPositionRadioGroup.ItemIndex := 3;
670     gppCenter: PopupPositionRadioGroup.ItemIndex := 4;
671     gppBottom: PopupPositionRadioGroup.ItemIndex := 5;
672     gppLeftTop: PopupPositionRadioGroup.ItemIndex := 6;
673     gppLeft: PopupPositionRadioGroup.ItemIndex := 7;
674     gppLeftBottom: PopupPositionRadioGroup.ItemIndex := 8;
675     end;
676    
677     //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申
678     UnActivePopupCheckBox.Checked := GikoSys.Setting.UnActivePopup;
679 yoffy 1.2 //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申
680     ResPopupBoldCheckBox.Checked := GikoSys.Setting.ResPopupHeaderBold;
681 hi_ 1.1
682     //鐃?鐃?鐃緒申鐃?鐃?鐃?
683     URLDisplayCheckBox.Checked := GikoSys.Setting.URLDisplay;
684     TabStopAddressBarCheckBox.Checked := GikoSys.Setting.AddressBarTabStop;
685     LinkAddCheckBox.Checked := GikoSys.Setting.LinkAddAddressBar;
686     AddressHistoryCountEdit.Text := IntToStr(GikoSys.Setting.AddressHistoryCount);
687    
688     //HTML鐃?鐃緒申鐃?鐃緒申鐃?
689     PreviewVisibleCheckBox.Checked := GikoSys.Setting.PreviewVisible;
690     PreviewWaitEdit.Text := IntToStr(GikoSys.Setting.PreviewWait);
691     PreviewSizeComboBox.ItemIndex := 2;
692     case GikoSys.Setting.PreviewSize of
693     gpsXLarge: PreviewSizeComboBox.ItemIndex := 4;
694     gpsLarge: PreviewSizeComboBox.ItemIndex := 3;
695     gpsMedium: PreviewSizeComboBox.ItemIndex := 2;
696     gpsSmall: PreviewSizeComboBox.ItemIndex := 1;
697     gpsXSmall: PreviewSizeComboBox.ItemIndex := 0;
698     end;
699    
700     //鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申
701     ThreadListIconCheckBox.Checked := GikoSys.Setting.ListIconVisible;
702    
703     //鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申
704     PostTimeCheckBox.Checked := GikoSys.Setting.UseMachineTime;
705     PostTimeEdit.Text := IntToStr(GikoSys.Setting.TimeAdjustSec);
706     if GikoSys.Setting.TimeAdjust then
707     PutPostTimeRadioButton.Checked := True
708     else
709     BackPostTimeRadioButton.Checked := True;
710 h677 1.3 //鐃緒申鐃緒申鐃?鐃緒申
711     RloCheckBox.Checked := GikoSys.Setting.AbonDeleterlo;
712     ReplaceulCheckBox.Checked := GikoSys.Setting.AbonReplaceul;
713     PopUpAbonCheckBox.Checked := GikoSys.Setting.PopUpAbon;
714    
715 hi_ 1.1 end;
716    
717     procedure TOptionDialog.SaveSetting;
718     var
719     i: Integer;
720     // Item: TListItem;
721     begin
722     //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?
723     Gikosys.Setting.RecvBufferSize := StrToInt(RecvBufferSize.Text);
724     //HTTP1.1鐃?鐃?
725     GikoSys.Setting.Protocol := ProtocolCheckBox.Checked;
726     //鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申HTTP1.1鐃?鐃?
727     Gikosys.Setting.ProxyProtocol := ProxyProtocolCheckBox.Checked;
728    
729     GikoSys.Setting.ReadProxy := ReadProxyCheck.Checked;
730     GikoSys.Setting.ReadProxyAddress := ReadProxyAddressEdit.Text;
731     GikoSys.Setting.ReadProxyPort := StrToInt(ReadPortEdit.Text);
732     GikoSys.Setting.ReadProxyUserID := ReadProxyUserIDEdit.Text;
733     GikoSys.Setting.ReadProxyPassword := ReadProxyPasswordEdit.Text;
734    
735     GikoSys.Setting.WriteProxy := WriteProxyCheck.Checked;
736     GikoSys.Setting.WriteProxyAddress := WriteProxyAddressEdit.Text;
737     GikoSys.Setting.WriteProxyPort := StrToInt(WritePortEdit.Text);
738     GikoSys.Setting.WriteProxyUserID := WriteProxyUserIDEdit.Text;
739     GikoSys.Setting.WriteProxyPassword := WriteProxyPasswordEdit.Text;
740    
741     GikoSys.Setting.CabinetFontName := CabinetMemo.Font.Name;
742     GikoSys.Setting.CabinetFontSize := CabinetMemo.Font.Size;
743     GikoSys.Setting.CabinetFontColor := CabinetMemo.Font.Color;
744     GikoSys.Setting.CabinetBackColor := CabinetMemo.Color;
745    
746     GikoSys.Setting.ListFontName := ListMemo.Font.Name;
747     GikoSys.Setting.ListFontSize := ListMemo.Font.Size;
748     GikoSys.Setting.ListFontColor := ListMemo.Font.Color;
749     GikoSys.Setting.ListBackColor := ListMemo.Color;
750    
751     GikoSys.Setting.HintFontName := HintMemo.Font.Name;
752     GikoSys.Setting.HintFontSize := HintMemo.Font.Size;
753     GikoSys.Setting.HintFontColor := HintMemo.Font.Color;
754     GikoSys.Setting.HintBackColor := HintMemo.Color;
755    
756     GikoSys.Setting.BrowserTabFontName := BrowserTabMemo.Font.Name;
757     GikoSys.Setting.BrowserTabFontSize := BrowserTabMemo.Font.Size;
758    
759     GikoSys.Setting.EditorFontName := EditorMemo.Font.Name;
760     GikoSys.Setting.EditorFontSize := EditorMemo.Font.Size;
761     GikoSys.Setting.EditorFontColor := EditorMemo.Font.Color;
762     GikoSys.Setting.EditorBackColor := EditorMemo.Color;
763     //CSS鐃?鐃緒申
764     GikoSys.Setting.UseCSS := CSSCheckBox.Checked;
765     //CSS鐃?鐃?鐃?鐃緒申鐃緒申
766     GikoSys.Setting.CSSFileName := 'default.css';
767     if CSSListView.Items.Count > 0 then begin
768     try
769 yoffy 1.6 if CSSListView.Items[CSSListView.ItemIndex].Data <> nil then
770     GikoSys.Setting.CSSFileName := string( CSSListView.Items[CSSListView.ItemIndex].data )
771     else
772     GikoSys.Setting.CSSFileName := CSSListView.Items[CSSListView.ItemIndex].Caption + '.css';
773 hi_ 1.1 except
774     end;
775     end;
776 yoffy 1.9 // CSS 鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申
777     if CSSFontCheckBox.Checked then begin
778     GikoSys.Setting.BrowserFontName := FCSSFont.Name;
779     GikoSys.Setting.BrowserFontSize := FCSSFont.Size;
780     if fsBold in FCSSFont.Style then
781     GikoSys.Setting.BrowserFontBold := 1
782     else
783     GikoSys.Setting.BrowserFontBold := -1;
784     if fsItalic in FCSSFont.Style then
785     GikoSys.Setting.BrowserFontItalic := 1
786     else
787     GikoSys.Setting.BrowserFontItalic := -1;
788     i := ColorToRGB( FCSSFont.Color );
789     GikoSys.Setting.BrowserFontColor := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16);
790     end else begin
791     GikoSys.Setting.BrowserFontName := '';
792     GikoSys.Setting.BrowserFontSize := 0;
793     GikoSys.Setting.BrowserFontBold := 0;
794     GikoSys.Setting.BrowserFontItalic := 0;
795     GikoSys.Setting.BrowserFontColor := -1;
796     end;
797     if CSSBackColorCheckBox.Checked then begin
798     i := ColorToRGB( FCSSBackColor );
799     GikoSys.Setting.BrowserBackColor := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16);
800     end else begin
801     GikoSys.Setting.BrowserBackColor := -1;
802     end;
803 hi_ 1.1
804 yoffy 1.14 // 鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?
805     GikoSys.Setting.SkinPopup := SkinPopupCheckBox.Checked;
806    
807 hi_ 1.1 //Mail鐃緒申鐃?鐃緒申
808     GikoSys.Setting.ShowMail := ShowMailCheckBox.Checked;
809    
810     GikoSys.Setting.BrowserTabAppend := TGikoTabAppend(TabAddRadioGroup.ItemIndex);
811    
812     GikoSys.Setting.BoardURL2ch := BoardURL2chEdit.Text;
813    
814     GikoSys.Setting.UserID := UserIDEdit.Text;
815     GikoSys.Setting.Password := PasswordEdit.Text;
816     GikoSys.Setting.AutoLogin := AutoLoginCheckBox.Checked;
817    
818     GikoSys.Setting.URLApp := URLAppCheckBox.Checked;
819     GikoSys.Setting.URLAppFile := AppFolderEdit.Text;
820    
821     GikoSys.Setting.OpenMailer := OpenMailerCheckBox.Checked;
822     GikoSys.Setting.DeleteMsg := LogDeleteMessageCheckBox.Checked;
823    
824     //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?
825     case PopupPositionRadioGroup.ItemIndex of
826     0: GikoSys.Setting.PopupPosition := gppRightTop;
827     1: GikoSys.Setting.PopupPosition := gppRight;
828     2: GikoSys.Setting.PopupPosition := gppRightBottom;
829     3: GikoSys.Setting.PopupPosition := gppTop;
830     4: GikoSys.Setting.PopupPosition := gppCenter;
831     5: GikoSys.Setting.PopupPosition := gppBottom;
832     6: GikoSys.Setting.PopupPosition := gppLeftTop;
833     7: GikoSys.Setting.PopupPosition := gppLeft;
834     8: GikoSys.Setting.PopupPosition := gppLeftBottom;
835     end;
836    
837     //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申
838     GikoSys.Setting.UnActivePopup := UnActivePopupCheckBox.Checked;
839 yoffy 1.2 //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申
840     GikoSys.Setting.ResPopupHeaderBold := ResPopupBoldCheckBox.Checked;
841 hi_ 1.1
842     //鐃?鐃?鐃緒申鐃?鐃?鐃?
843     GikoSys.Setting.URLDisplay := URLDisplayCheckBox.Checked;
844     GikoSys.Setting.AddressBarTabStop := TabStopAddressBarCheckBox.Checked;
845     GikoSys.Setting.LinkAddAddressBar := LinkAddCheckBox.Checked;
846     if GikoSys.IsNumeric(AddressHistoryCountEdit.Text) then
847     GikoSys.Setting.AddressHistoryCount := StrToInt(AddressHistoryCountEdit.Text)
848     else
849     GikoSys.Setting.AddressHistoryCount := 100;
850    
851     //HTML鐃?鐃緒申鐃?鐃緒申鐃?
852     GikoSys.Setting.PreviewVisible := PreviewVisibleCheckBox.Checked;
853     if GikoSys.IsNumeric(PreviewWaitEdit.Text) then
854     GikoSys.Setting.PreviewWait := StrToInt(PreviewWaitEdit.Text)
855     else
856     GikoSys.Setting.PreviewWait := 500;
857     case PreviewSizeComboBox.ItemIndex of
858     0: GikoSys.Setting.PreviewSize := gpsXSmall;
859     1: GikoSys.Setting.PreviewSize := gpsSmall;
860     2: GikoSys.Setting.PreviewSize := gpsMedium;
861     3: GikoSys.Setting.PreviewSize := gpsLarge;
862     4: GikoSys.Setting.PreviewSize := gpsXLarge;
863     end;
864    
865     //鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申
866     GikoSys.Setting.ListIconVisible := ThreadListIconCheckBox.Checked;
867    
868     //鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申
869     GikoSys.Setting.UseMachineTime := PostTimeCheckBox.Checked;
870     if GikoSys.IsNumeric(PostTimeEdit.Text) then
871     GikoSys.Setting.TimeAdjustSec := StrToInt(PostTimeEdit.Text)
872     else
873     GikoSys.Setting.TimeAdjustSec := 0;
874     GikoSys.Setting.TimeAdjust := PutPostTimeRadioButton.Checked;
875    
876    
877     GikoSys.Setting.WriteSystemSettingFile;
878     // GikoForm.SetBrowserTabState;
879    
880     if LogFolderEdit.Text <> '' then begin
881     GikoSys.Setting.NewLogFolder := LogFolderEdit.Text;
882     GikoSys.Setting.WriteFolderSettingFile;
883     end;
884    
885     for i := 0 to SoundListView.Items.Count - 1 do begin
886     if FileExists(SoundListView.Items[i].SubItems[0]) then
887     GikoSys.Setting.SoundFileName[i] := SoundListView.Items[i].SubItems[0]
888     else
889     GikoSys.Setting.SoundFileName[i] := '';
890     end;
891 h677 1.3
892 yoffy 1.6 //鐃緒申鐃緒申鐃?鐃緒申
893     GikoSys.Setting.AbonDeleterlo := RloCheckBox.Checked;
894     GikoSys.Setting.AbonReplaceul := ReplaceulCheckBox.Checked;
895     GikoSys.Setting.PopUpAbon := PopUpAbonCheckBox.Checked;
896 hi_ 1.1 end;
897    
898     procedure TOptionDialog.SettingApply;
899     var
900     i: Integer;
901 yoffy 1.15 ThreadItem: TThreadItem;
902 hi_ 1.1 begin
903     GikoForm.TreeView.Items.BeginUpdate;
904     GikoForm.ListView.Items.BeginUpdate;
905     try
906     GikoForm.TreeView.Font.Name := GikoSys.Setting.CabinetFontName;
907     GikoForm.TreeView.Font.Size := GikoSys.Setting.CabinetFontSize;
908     GikoForm.TreeView.Font.Color := GikoSys.Setting.CabinetFontColor;
909     GikoForm.TreeView.Color := GikoSys.Setting.CabinetBackColor;
910    
911     GikoForm.ListView.Font.Name := GikoSys.Setting.ListFontName;
912     GikoForm.ListView.Font.Size := GikoSys.Setting.ListFontSize;
913     GikoForm.ListView.Font.Color := GikoSys.Setting.ListFontColor;
914     GikoForm.ListView.Color := GikoSys.Setting.ListBackColor;
915    
916     GikoForm.BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName;
917     GikoForm.BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize;
918     // GikoForm.BrowserTab.Height := (GikoSys.Setting.BrowserTabFontSize * 2) + 1;
919     // GikoForm.BrowserBottomPanel.Height := GikoForm.BrowserTab.Height;
920    
921     for i := 0 to Screen.CustomFormCount - 1 do begin
922     if TObject(Screen.CustomForms[i]) is TEditorForm then begin
923     TEditorForm(Screen.CustomForms[i]).SetFont;
924     end;
925     end;
926    
927     finally
928     GikoForm.TreeView.Items.EndUpdate;
929     GikoForm.ListView.Items.EndUpdate;
930     end;
931    
932     //鐃?鐃?鐃緒申鐃?鐃?鐃?
933     for i := GikoForm.AddressComboBox.Items.Count - 1 downto 0 do begin
934     if GikoSys.Setting.AddressHistoryCount >= GikoForm.AddressComboBox.Items.Count then
935     Break;
936     GikoForm.AddressComboBox.Items.Delete(i);
937     end;
938     GikoForm.AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;
939 yoffy 1.15
940     // 鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申
941     ThreadItem := GikoForm.GetActiveContent;
942     if ThreadItem <> nil then
943     GikoForm.SetContent( ThreadItem );
944 hi_ 1.1 end;
945    
946     procedure TOptionDialog.ReadProxyCheckClick(Sender: TObject);
947     begin
948     ReadProxyAddressEdit.Enabled := ReadProxyCheck.Checked;
949     ReadPortEdit.Enabled := ReadProxyCheck.Checked;
950     ReadProxyUserIDEdit.Enabled := ReadProxyCheck.Checked;
951     ReadProxyPasswordEdit.Enabled := ReadProxyCheck.Checked;
952    
953     ReadAddressLabel.Enabled := ReadProxyCheck.Checked;
954     ReadPortLabel.Enabled := ReadProxyCheck.Checked;
955     ReadUserIDLabel.Enabled := ReadProxyCheck.Checked;
956     ReadPasswordLabel.Enabled := ReadProxyCheck.Checked;
957     end;
958    
959     procedure TOptionDialog.ReadPortEditExit(Sender: TObject);
960     begin
961     if not GikoSys.IsNumeric(ReadPortEdit.Text) then
962     ReadPortEdit.Text := '0';
963     end;
964    
965     procedure TOptionDialog.LogFolderButtonClick(Sender: TObject);
966     var
967     Root: WideString;
968     Dir: string;
969     begin
970     Root := '';
971     if SelectDirectory('鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申', Root, Dir) then begin
972     LogFolderEdit.Text := Dir;
973     end;
974     end;
975    
976     function TOptionDialog.CheckFolder: Boolean;
977     begin
978     if Trim(LogFolderEdit.Text) = '' then
979     LogFolderEdit.Text := ExtractFilePath(Application.ExeName) + 'Log';
980    
981     if DirectoryExists(LogFolderEdit.Text) then begin
982     Result := True;
983     end else begin
984     if MsgBox(Handle, '鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?', '鐃?鐃?鐃?鐃?', MB_YESNO or MB_ICONQUESTION) = IDYES then begin
985     //鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申
986     try
987     GikoSys.ForceDirectoriesEx(LogFolderEdit.Text);
988     Result := True
989     except
990     MsgBox(Handle, '鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?', '鐃?鐃緒申鐃?', MB_OK or MB_ICONSTOP);
991     OptionTab.ActivePage := FolderSheet;
992     LogFolderEdit.SetFocus;
993     Result := False;
994     end;
995     end else
996     Result := False;
997     end;
998     end;
999    
1000     procedure TOptionDialog.FormClose(Sender: TObject; var Action: TCloseAction);
1001     begin
1002     if not FClose then
1003     Action := caNone;
1004     FClose := True;
1005     end;
1006    
1007     procedure TOptionDialog.SoundReferButtonClick(Sender: TObject);
1008     begin
1009     OpenDialog.Filter := '鐃?鐃?鐃緒申鐃? (*.wav)|*.wav|鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申 (*.*)|*.*';
1010     sndPlaySound(nil, SND_ASYNC);
1011     if OpenDialog.Execute then begin
1012     SoundFileEdit.Text := OpenDialog.FileName;
1013     end;
1014     end;
1015    
1016     procedure TOptionDialog.SoundPlayButtonClick(Sender: TObject);
1017     begin
1018     if not FileExists(SoundFileEdit.Text) then begin
1019     MsgBox(Handle, '鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申', '鐃?鐃緒申鐃?', MB_ICONSTOP or MB_OK);
1020     SoundFileEdit.Text := '';
1021     Exit;
1022     end;
1023     if not sndPlaySound(PChar(SoundFileEdit.Text), SND_ASYNC or SND_NOSTOP) then begin
1024     sndPlaySound(nil, SND_ASYNC);
1025     end;
1026     end;
1027    
1028     procedure TOptionDialog.SoundListViewChanging(Sender: TObject;
1029     Item: TListItem; Change: TItemChange; var AllowChange: Boolean);
1030     begin
1031     if Item.SubItems.Count > 0 then
1032     SoundFileEdit.Text := Item.SubItems[0];
1033     end;
1034    
1035     procedure TOptionDialog.SoundFileEditChange(Sender: TObject);
1036     var
1037     Item: TListItem;
1038     begin
1039     sndPlaySound(nil, SND_ASYNC);
1040     Item := SoundListView.Selected;
1041     if Item = nil then Exit;
1042    
1043     if FileExists(SoundFileEdit.Text) then
1044     Item.SubItems[0] := SoundFileEdit.Text;
1045     if Trim(SoundFileEdit.Text) = '' then
1046     Item.SubItems[0] := '';
1047     end;
1048    
1049     procedure TOptionDialog.OptionTabChange(Sender: TObject);
1050     begin
1051     sndPlaySound(nil, SND_ASYNC);
1052 yoffy 1.11
1053     if OptionTab.ActivePage = CSSTabSheet then
1054     CSSPreview;
1055 hi_ 1.1 end;
1056    
1057     procedure TOptionDialog.AppFolderButtonClick(Sender: TObject);
1058     begin
1059     OpenDialog.Filter := '鐃緒申鐃?鐃?鐃?鐃?鐃緒申 (*.exe)|*.exe|鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申 (*.*)|*.*';
1060     if OpenDialog.Execute then
1061     AppFolderEdit.Text := OpenDialog.FileName;
1062     end;
1063    
1064     procedure TOptionDialog.WriteProxyCheckClick(Sender: TObject);
1065     begin
1066     WriteProxyAddressEdit.Enabled := WriteProxyCheck.Checked;
1067     WritePortEdit.Enabled := WriteProxyCheck.Checked;
1068     WriteProxyUserIDEdit.Enabled := WriteProxyCheck.Checked;
1069     WriteProxyPasswordEdit.Enabled := WriteProxyCheck.Checked;
1070    
1071     WriteAddressLabel.Enabled := WriteProxyCheck.Checked;
1072     WritePortLabel.Enabled := WriteProxyCheck.Checked;
1073     WriteUserIDLabel.Enabled := WriteProxyCheck.Checked;
1074     WritePasswordLabel.Enabled := WriteProxyCheck.Checked;
1075     end;
1076    
1077     procedure TOptionDialog.WritePortEditExit(Sender: TObject);
1078     begin
1079     if not GikoSys.IsNumeric(WritePortEdit.Text) then
1080     WritePortEdit.Text := '0';
1081     end;
1082    
1083     procedure TOptionDialog.Tora3URLLabelClick(Sender: TObject);
1084     begin
1085     GikoSys.OpenBrowser(URL_TORA3, gbtAuto);
1086     end;
1087    
1088     procedure TOptionDialog.HotKeyEnter(Sender: TObject);
1089     begin
1090     OkBotton.Default := False;
1091     CancelBotton.Cancel := False;
1092     end;
1093    
1094     procedure TOptionDialog.HotKeyExit(Sender: TObject);
1095     begin
1096     OkBotton.Default := True;
1097     CancelBotton.Cancel := True;
1098     end;
1099    
1100     procedure TOptionDialog.URLAppCheckBoxClick(Sender: TObject);
1101     begin
1102     AppFolderLabel.Enabled := URLAppCheckBox.Checked;
1103     AppFolderEdit.Enabled := URLAppCheckBox.Checked;
1104     AppFolderButton.Enabled := URLAppCheckBox.Checked;
1105     end;
1106    
1107     procedure TOptionDialog.AddressHistoryCountEditExit(Sender: TObject);
1108     begin
1109     if not GikoSys.IsNumeric(AddressHistoryCountEdit.Text) then
1110     AddressHistoryCountEdit.Text := '100';
1111     end;
1112    
1113     procedure TOptionDialog.PreviewWaitEditExit(Sender: TObject);
1114     begin
1115     if not GikoSys.IsNumeric(PreviewWaitEdit.Text) then
1116     PreviewWaitEdit.Text := '500';
1117     if StrToInt(PreviewWaitEdit.Text) < 500 then
1118     PreviewWaitEdit.Text := '500';
1119     if StrToInt(PreviewWaitEdit.Text) > 9999 then
1120     PreviewWaitEdit.Text := '9999';
1121     end;
1122    
1123     procedure TOptionDialog.RecvBufferSizeExit(Sender: TObject);
1124     begin
1125     if not GikoSys.IsNumeric(RecvBufferSize.Text) then
1126     RecvBufferSize.Text := '4096';
1127     if StrToInt(RecvBufferSize.Text) < 256 then
1128     RecvBufferSize.Text := '4096';
1129     end;
1130    
1131     procedure TOptionDialog.CSSCheckBoxClick(Sender: TObject);
1132     begin
1133     CSSListLabel.Enabled := CSSCheckBox.Checked;
1134     CSSListView.Enabled := CSSCheckBox.Checked;
1135     end;
1136    
1137     procedure TOptionDialog.PostTimeEditExit(Sender: TObject);
1138     begin
1139     if not GikoSys.IsNumeric(PostTimeEdit.Text) then
1140     PostTimeEdit.Text := '0';
1141     end;
1142    
1143     procedure TOptionDialog.PostTimeCheckBoxClick(Sender: TObject);
1144     begin
1145     PostTimeLabel.Enabled := PostTimeCheckBox.Checked;
1146     PostTimeEdit.Enabled := PostTimeCheckBox.Checked;
1147     PutPostTimeRadioButton.Enabled := PostTimeCheckBox.Checked;
1148     BackPostTimeRadioButton.Enabled := PostTimeCheckBox.Checked;
1149     end;
1150 h677 1.3 procedure TOptionDialog.SetAbonpropertys;
1151     begin
1152     //鐃緒申鐃緒申鐃?鐃緒申
1153     GikoSys.FAbon.Deleterlo := RloCheckBox.Checked;
1154     GikoSys.FAbon.Replaceul := ReplaceulCheckBox.Checked;
1155     GikoSys.FAbon.AbonPopupRes := PopUpAbonCheckBox.Checked;
1156 hi_ 1.1
1157 h677 1.3 end;
1158 yoffy 1.8 procedure TOptionDialog.CSSFontButtonClick(Sender: TObject);
1159     begin
1160    
1161     FontDialog.Options := [fdAnsiOnly, fdEffects];
1162 yoffy 1.9 FontDialog.Font.Assign(FCSSFont);
1163 yoffy 1.8 if FontDialog.Execute then begin
1164     FontDialog.Font.Style := FontDialog.Font.Style - [fsUnderline] - [fsStrikeout];
1165 yoffy 1.9 FCSSFont := FontDialog.Font;
1166 yoffy 1.8 end;
1167    
1168 yoffy 1.11 CSSPreview;
1169    
1170 yoffy 1.8 end;
1171    
1172     procedure TOptionDialog.CSSBackColorButtonClick(Sender: TObject);
1173     begin
1174    
1175 yoffy 1.9 ColorDialog.Color := FCSSBackColor;
1176 yoffy 1.8 if ColorDialog.Execute then begin
1177 yoffy 1.9 FCSSBackColor := ColorDialog.Color;
1178 yoffy 1.8 end;
1179    
1180 yoffy 1.11 CSSPreview;
1181    
1182 yoffy 1.8 end;
1183    
1184     procedure TOptionDialog.CSSFontCheckBoxClick(Sender: TObject);
1185     begin
1186    
1187     CSSFontButton.Enabled := CSSFontCheckBox.Checked;
1188 yoffy 1.11 CSSPreview;
1189 yoffy 1.8
1190     end;
1191    
1192     procedure TOptionDialog.CSSBackColorCheckBoxClick(Sender: TObject);
1193     begin
1194    
1195     CSSBackColorButton.Enabled := CSSBackColorCheckBox.Checked;
1196 yoffy 1.11 CSSPreview;
1197 yoffy 1.9
1198     end;
1199    
1200     procedure TOptionDialog.CSSSetContent(Content: string);
1201     var
1202     doc : Variant;
1203     begin
1204 h677 1.13 if CSSBrowser.Document <> nil then begin
1205     doc := CSSBrowser.Document;
1206     doc.open;
1207     doc.Clear;
1208     doc.charset := 'Shift_JIS';
1209     doc.Write(Content);
1210     doc.Close;
1211     end;
1212 yoffy 1.9 end;
1213    
1214     procedure TOptionDialog.CSSPreview;
1215     var
1216 yoffy 1.15 Board: TBoard;
1217 yoffy 1.9 ThreadItem: TThreadItem;
1218     html: string;
1219     sTitle: string;
1220 yoffy 1.11 Res: array [0..1] of TResRec;
1221     UserOptionalStyle: string;
1222     i: Integer;
1223     fileName: string;
1224     begin
1225    
1226     fileName := GikoSys.Setting.CSSFileName;
1227    
1228     GikoSys.Setting.CSSFileName := 'default.css';
1229     if CSSListView.Items.Count > 0 then begin
1230     try
1231 h677 1.13 if CSSListView.ItemIndex >= 0 then begin
1232     if CSSListView.Items[CSSListView.ItemIndex].Data <> nil then
1233     GikoSys.Setting.CSSFileName := string( CSSListView.Items[CSSListView.ItemIndex].data )
1234     else
1235     GikoSys.Setting.CSSFileName := CSSListView.Items[CSSListView.ItemIndex].Caption + '.css';
1236     end;
1237 yoffy 1.11 except
1238     end;
1239     end;
1240 yoffy 1.10
1241 yoffy 1.15 Board := TBoard.Create;
1242 yoffy 1.10 ThreadItem := TThreadItem.Create;
1243 yoffy 1.9
1244 yoffy 1.10 try
1245 yoffy 1.15 Board.URL := 'about://sample/';
1246     Board.Title := '鐃?鐃緒申鐃?鐃緒申鐃緒申';
1247     ThreadItem.ParentBoard := Board;
1248 yoffy 1.14 ThreadItem.AllResCount := High( Res );
1249 yoffy 1.11 ThreadItem.NewResCount := 1;
1250     ThreadItem.NewReceive := 2;
1251 yoffy 1.9
1252 yoffy 1.10 sTitle := '鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?';
1253 yoffy 1.9
1254 yoffy 1.11 Res[0].FName := '鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申';
1255     Res[0].FMailTo := 'sage';
1256     Res[0].FDateTime := 'ID:Sample';
1257     Res[0].FBody := 'CSS 鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申';
1258     Res[1].FName := '鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申';
1259     Res[1].FMailTo := 'age';
1260     Res[1].FDateTime := 'ID:Sample';
1261     Res[1].FBody := '鐃?鐃?鐃?鐃緒申鐃?鐃?';
1262    
1263     // 鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申
1264     if CSSFontCheckBox.Checked then begin
1265     i := ColorToRGB( FCSSFont.Color );
1266     i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16);
1267    
1268     UserOptionalStyle := UserOptionalStyle +
1269     'font-family:"' + FCSSFont.Name + '";' +
1270     'font-size:' + IntToStr( FCSSFont.Size ) + 'pt;' +
1271     'color:#' + IntToHex( i, 6 ) + ';';
1272     if fsBold in FCSSFont.Style then
1273     UserOptionalStyle := UserOptionalStyle + 'font-weight:bold;'
1274     else
1275     UserOptionalStyle := UserOptionalStyle + 'font-weight:normal;';
1276     if fsItalic in FCSSFont.Style then
1277     UserOptionalStyle := UserOptionalStyle + 'font-style:italic;'
1278     else
1279     UserOptionalStyle := UserOptionalStyle + 'font-style:normal;';
1280     end;
1281     if CSSBackColorCheckBox.Checked then begin
1282     i := ColorToRGB( FCSSBackColor );
1283     i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16);
1284    
1285     UserOptionalStyle := UserOptionalStyle +
1286     'background-color:#' + IntToHex( i, 6 ) + ';';
1287     end;
1288    
1289     if FileExists( GikoSys.GetSkinHeaderFileName ) then begin
1290     html :=
1291     GikoSys.LoadFromSkin( GikoSys.GetSkinHeaderFileName, ThreadItem, sTitle, 0 ) +
1292 yoffy 1.12 '<a name="top"></a>' +
1293 yoffy 1.11 GikoSys.SkinedRes( GikoSYs.LoadFromSkin( GikoSys.GetSkinResFileName, ThreadItem, sTitle, 0 ), Res[0], '1' ) +
1294     GikoSys.SkinedRes( GikoSYs.LoadFromSkin( GikoSys.GetSkinNewResFileName, ThreadItem, sTitle, 0 ), Res[1], '2' ) +
1295 yoffy 1.12 '<a name="bottom"></a>' +
1296 yoffy 1.11 GikoSys.LoadFromSkin( GikoSys.GetSkinFooterFileName, ThreadItem, sTitle, 0 );
1297    
1298     html := StringReplace( html, '</head>',
1299     '<style type="text/css">body {' + UserOptionalStyle + '}</style></head>', [rfReplaceAll] );
1300     end else begin
1301     html :=
1302     '<html><head>' +
1303     '<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">' +
1304     '<title>' + sTitle + '</title>' +
1305     '<link rel="stylesheet" href="' + GikoSys.GetStyleSheetDir + GikoSys.Setting.CSSFileName + '" type="text/css">' +
1306     '<style type="text/css">body {' + UserOptionalStyle + '}</style>' +
1307     '</head><body>' +
1308     '<div class="title">' + sTitle + '</div>';
1309    
1310     for i := 0 to High( Res ) do
1311     begin
1312     html := html +
1313 yoffy 1.12 '<div class="header"><span class="no">' + IntToStr( i + 1 ) + '</span>' +
1314 yoffy 1.11 '<span class="name_label"> 鐃緒申鐃?鐃? </span>' +
1315     '<a class="name_mail" href="mailto:' + Res[i].FMailTo + '">' +
1316     '<b>' + Res[i].FName + '</b></a><span class="mail"> [' + Res[i].FMailTo + ']</span>' +
1317     '<span class="date_label"> 鐃緒申鐃?鐃緒申鐃?</span>' +
1318     '<span class="date"> ' + Res[i].FDateTime+ '</span></div>' +
1319     '<div class="mes">' + Res[i].FBody + ' </div>';
1320     end;
1321    
1322     html := html + '</body></html>';
1323     end;
1324    
1325     try
1326     CSSSetContent( html );
1327     except
1328     end;
1329 yoffy 1.9
1330 yoffy 1.10 finally
1331     ThreadItem.Free;
1332 yoffy 1.15 Board.Free;
1333 yoffy 1.11 GikoSys.Setting.CSSFileName := fileName;
1334 yoffy 1.10 end;
1335 yoffy 1.11
1336     end;
1337    
1338     procedure TOptionDialog.CSSListViewChange(Sender: TObject; Item: TListItem;
1339     Change: TItemChange);
1340     begin
1341    
1342 yoffy 1.14 SkinPopupCheckBox.Enabled := (Item.Data <> nil);
1343 yoffy 1.11
1344 yoffy 1.14 if OptionTab.ActivePage = CSSTabSheet then
1345     CSSPreview;
1346 yoffy 1.11
1347 yoffy 1.8 end;
1348    
1349 hi_ 1.1 end.
1350    

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