Develop and Download Open Source Software

Browse CVS Repository

Contents of /gikonavigoeson/gikonavi/Option.pas

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


Revision 1.18 - (show annotations) (download) (as text)
Thu Oct 2 10:48:22 2003 UTC (20 years, 6 months ago) by h677
Branch: MAIN
Changes since 1.17: +4 -0 lines
File MIME type: text/x-pascal
起動時に最新100レス表示をONにできるようにした。

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

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