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.14 - (show annotations) (download) (as text)
Sat Sep 27 06:35:19 2003 UTC (20 years, 6 months ago) by yoffy
Branch: MAIN
Changes since 1.13: +15 -6 lines
File MIME type: text/x-pascal
・[スキンでもポップアップ] を追加。

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 SkinPopupCheckBox: TCheckBox;
172 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 procedure CSSFontButtonClick(Sender: TObject);
214 procedure CSSBackColorButtonClick(Sender: TObject);
215 procedure CSSFontCheckBoxClick(Sender: TObject);
216 procedure CSSBackColorCheckBoxClick(Sender: TObject);
217 procedure CSSListViewChange(Sender: TObject; Item: TListItem;
218 Change: TItemChange);
219 private
220 { Private 鐃緒申鐃緒申 }
221 FClose: Boolean;
222 FCSSFont: TFont;
223 FCSSBackColor: TColor;
224 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 procedure SetAbonpropertys;
231 procedure CSSSetContent(Content: string);
232 procedure CSSPreview;
233 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
263 CSSBrowser.Navigate('about:blank');
264 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 + '鐃?CSS 鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申';
279 CSSCheckBoxClick(Sender);
280 PostTimeCheckBoxClick(Sender);
281
282 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 SetAbonpropertys;
306 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 SetAbonpropertys;
324 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 // s: string;
499 idx: Integer;
500 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 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 //
580 //鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申
581 FileList := TStringList.Create;
582 try
583 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 FileList.Sort;
589 for i := 0 to FileList.Count - 1 do begin
590 //s := ExtractFileName(FileList[i]);
591 if LowerCase(FileList[i]) = 'default.css' then
592 Item := CSSListView.Items.Insert(0)
593 else
594 Item := CSSListView.Items.Add;
595 Item.Caption := ChangeFileExt(FileList[i], '');
596 if LowerCase(FileList[i]) = LowerCase(GikoSys.Setting.CSSFileName) then
597 Item.Selected := True;
598 end;
599 finally
600 FileList.Free;
601 end;
602 //鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申
603 FileList := TStringList.Create;
604 try
605 GikoSys.GetDirectoryList(GikoSys.GetSkinDir, '*', FileList, False);
606
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 if (CSSListView.ItemIndex = -1) and (CSSListView.Items.Count > 0) then
623 CSSListView.Items[0].Selected := True;
624
625 // 鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?
626 SkinPopupCheckBox.Checked := GikoSys.Setting.SkinPopup;
627 SkinPopupCheckBox.Enabled := (CSSListView.Selected.Data <> nil);
628
629 //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 //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申
680 ResPopupBoldCheckBox.Checked := GikoSys.Setting.ResPopupHeaderBold;
681
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 //鐃緒申鐃緒申鐃?鐃緒申
711 RloCheckBox.Checked := GikoSys.Setting.AbonDeleterlo;
712 ReplaceulCheckBox.Checked := GikoSys.Setting.AbonReplaceul;
713 PopUpAbonCheckBox.Checked := GikoSys.Setting.PopUpAbon;
714
715 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 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 except
774 end;
775 end;
776 // 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
804 // 鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?
805 GikoSys.Setting.SkinPopup := SkinPopupCheckBox.Checked;
806
807 //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 //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申
840 GikoSys.Setting.ResPopupHeaderBold := ResPopupBoldCheckBox.Checked;
841
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
892 //鐃緒申鐃緒申鐃?鐃緒申
893 GikoSys.Setting.AbonDeleterlo := RloCheckBox.Checked;
894 GikoSys.Setting.AbonReplaceul := ReplaceulCheckBox.Checked;
895 GikoSys.Setting.PopUpAbon := PopUpAbonCheckBox.Checked;
896 end;
897
898 procedure TOptionDialog.SettingApply;
899 var
900 i: Integer;
901 begin
902 GikoForm.TreeView.Items.BeginUpdate;
903 GikoForm.ListView.Items.BeginUpdate;
904 try
905 GikoForm.TreeView.Font.Name := GikoSys.Setting.CabinetFontName;
906 GikoForm.TreeView.Font.Size := GikoSys.Setting.CabinetFontSize;
907 GikoForm.TreeView.Font.Color := GikoSys.Setting.CabinetFontColor;
908 GikoForm.TreeView.Color := GikoSys.Setting.CabinetBackColor;
909
910 GikoForm.ListView.Font.Name := GikoSys.Setting.ListFontName;
911 GikoForm.ListView.Font.Size := GikoSys.Setting.ListFontSize;
912 GikoForm.ListView.Font.Color := GikoSys.Setting.ListFontColor;
913 GikoForm.ListView.Color := GikoSys.Setting.ListBackColor;
914
915 GikoForm.BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName;
916 GikoForm.BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize;
917 // GikoForm.BrowserTab.Height := (GikoSys.Setting.BrowserTabFontSize * 2) + 1;
918 // GikoForm.BrowserBottomPanel.Height := GikoForm.BrowserTab.Height;
919
920 for i := 0 to Screen.CustomFormCount - 1 do begin
921 if TObject(Screen.CustomForms[i]) is TEditorForm then begin
922 TEditorForm(Screen.CustomForms[i]).SetFont;
923 end;
924 end;
925
926 finally
927 GikoForm.TreeView.Items.EndUpdate;
928 GikoForm.ListView.Items.EndUpdate;
929 end;
930
931 //鐃?鐃?鐃緒申鐃?鐃?鐃?
932 for i := GikoForm.AddressComboBox.Items.Count - 1 downto 0 do begin
933 if GikoSys.Setting.AddressHistoryCount >= GikoForm.AddressComboBox.Items.Count then
934 Break;
935 GikoForm.AddressComboBox.Items.Delete(i);
936 end;
937 GikoForm.AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;
938 end;
939
940 procedure TOptionDialog.ReadProxyCheckClick(Sender: TObject);
941 begin
942 ReadProxyAddressEdit.Enabled := ReadProxyCheck.Checked;
943 ReadPortEdit.Enabled := ReadProxyCheck.Checked;
944 ReadProxyUserIDEdit.Enabled := ReadProxyCheck.Checked;
945 ReadProxyPasswordEdit.Enabled := ReadProxyCheck.Checked;
946
947 ReadAddressLabel.Enabled := ReadProxyCheck.Checked;
948 ReadPortLabel.Enabled := ReadProxyCheck.Checked;
949 ReadUserIDLabel.Enabled := ReadProxyCheck.Checked;
950 ReadPasswordLabel.Enabled := ReadProxyCheck.Checked;
951 end;
952
953 procedure TOptionDialog.ReadPortEditExit(Sender: TObject);
954 begin
955 if not GikoSys.IsNumeric(ReadPortEdit.Text) then
956 ReadPortEdit.Text := '0';
957 end;
958
959 procedure TOptionDialog.LogFolderButtonClick(Sender: TObject);
960 var
961 Root: WideString;
962 Dir: string;
963 begin
964 Root := '';
965 if SelectDirectory('鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申', Root, Dir) then begin
966 LogFolderEdit.Text := Dir;
967 end;
968 end;
969
970 function TOptionDialog.CheckFolder: Boolean;
971 begin
972 if Trim(LogFolderEdit.Text) = '' then
973 LogFolderEdit.Text := ExtractFilePath(Application.ExeName) + 'Log';
974
975 if DirectoryExists(LogFolderEdit.Text) then begin
976 Result := True;
977 end else begin
978 if MsgBox(Handle, '鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?', '鐃?鐃?鐃?鐃?', MB_YESNO or MB_ICONQUESTION) = IDYES then begin
979 //鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申
980 try
981 GikoSys.ForceDirectoriesEx(LogFolderEdit.Text);
982 Result := True
983 except
984 MsgBox(Handle, '鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?', '鐃?鐃緒申鐃?', MB_OK or MB_ICONSTOP);
985 OptionTab.ActivePage := FolderSheet;
986 LogFolderEdit.SetFocus;
987 Result := False;
988 end;
989 end else
990 Result := False;
991 end;
992 end;
993
994 procedure TOptionDialog.FormClose(Sender: TObject; var Action: TCloseAction);
995 begin
996 if not FClose then
997 Action := caNone;
998 FClose := True;
999 end;
1000
1001 procedure TOptionDialog.SoundReferButtonClick(Sender: TObject);
1002 begin
1003 OpenDialog.Filter := '鐃?鐃?鐃緒申鐃? (*.wav)|*.wav|鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申 (*.*)|*.*';
1004 sndPlaySound(nil, SND_ASYNC);
1005 if OpenDialog.Execute then begin
1006 SoundFileEdit.Text := OpenDialog.FileName;
1007 end;
1008 end;
1009
1010 procedure TOptionDialog.SoundPlayButtonClick(Sender: TObject);
1011 begin
1012 if not FileExists(SoundFileEdit.Text) then begin
1013 MsgBox(Handle, '鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申', '鐃?鐃緒申鐃?', MB_ICONSTOP or MB_OK);
1014 SoundFileEdit.Text := '';
1015 Exit;
1016 end;
1017 if not sndPlaySound(PChar(SoundFileEdit.Text), SND_ASYNC or SND_NOSTOP) then begin
1018 sndPlaySound(nil, SND_ASYNC);
1019 end;
1020 end;
1021
1022 procedure TOptionDialog.SoundListViewChanging(Sender: TObject;
1023 Item: TListItem; Change: TItemChange; var AllowChange: Boolean);
1024 begin
1025 if Item.SubItems.Count > 0 then
1026 SoundFileEdit.Text := Item.SubItems[0];
1027 end;
1028
1029 procedure TOptionDialog.SoundFileEditChange(Sender: TObject);
1030 var
1031 Item: TListItem;
1032 begin
1033 sndPlaySound(nil, SND_ASYNC);
1034 Item := SoundListView.Selected;
1035 if Item = nil then Exit;
1036
1037 if FileExists(SoundFileEdit.Text) then
1038 Item.SubItems[0] := SoundFileEdit.Text;
1039 if Trim(SoundFileEdit.Text) = '' then
1040 Item.SubItems[0] := '';
1041 end;
1042
1043 procedure TOptionDialog.OptionTabChange(Sender: TObject);
1044 begin
1045 sndPlaySound(nil, SND_ASYNC);
1046
1047 if OptionTab.ActivePage = CSSTabSheet then
1048 CSSPreview;
1049 end;
1050
1051 procedure TOptionDialog.AppFolderButtonClick(Sender: TObject);
1052 begin
1053 OpenDialog.Filter := '鐃緒申鐃?鐃?鐃?鐃?鐃緒申 (*.exe)|*.exe|鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申 (*.*)|*.*';
1054 if OpenDialog.Execute then
1055 AppFolderEdit.Text := OpenDialog.FileName;
1056 end;
1057
1058 procedure TOptionDialog.WriteProxyCheckClick(Sender: TObject);
1059 begin
1060 WriteProxyAddressEdit.Enabled := WriteProxyCheck.Checked;
1061 WritePortEdit.Enabled := WriteProxyCheck.Checked;
1062 WriteProxyUserIDEdit.Enabled := WriteProxyCheck.Checked;
1063 WriteProxyPasswordEdit.Enabled := WriteProxyCheck.Checked;
1064
1065 WriteAddressLabel.Enabled := WriteProxyCheck.Checked;
1066 WritePortLabel.Enabled := WriteProxyCheck.Checked;
1067 WriteUserIDLabel.Enabled := WriteProxyCheck.Checked;
1068 WritePasswordLabel.Enabled := WriteProxyCheck.Checked;
1069 end;
1070
1071 procedure TOptionDialog.WritePortEditExit(Sender: TObject);
1072 begin
1073 if not GikoSys.IsNumeric(WritePortEdit.Text) then
1074 WritePortEdit.Text := '0';
1075 end;
1076
1077 procedure TOptionDialog.Tora3URLLabelClick(Sender: TObject);
1078 begin
1079 GikoSys.OpenBrowser(URL_TORA3, gbtAuto);
1080 end;
1081
1082 procedure TOptionDialog.HotKeyEnter(Sender: TObject);
1083 begin
1084 OkBotton.Default := False;
1085 CancelBotton.Cancel := False;
1086 end;
1087
1088 procedure TOptionDialog.HotKeyExit(Sender: TObject);
1089 begin
1090 OkBotton.Default := True;
1091 CancelBotton.Cancel := True;
1092 end;
1093
1094 procedure TOptionDialog.URLAppCheckBoxClick(Sender: TObject);
1095 begin
1096 AppFolderLabel.Enabled := URLAppCheckBox.Checked;
1097 AppFolderEdit.Enabled := URLAppCheckBox.Checked;
1098 AppFolderButton.Enabled := URLAppCheckBox.Checked;
1099 end;
1100
1101 procedure TOptionDialog.AddressHistoryCountEditExit(Sender: TObject);
1102 begin
1103 if not GikoSys.IsNumeric(AddressHistoryCountEdit.Text) then
1104 AddressHistoryCountEdit.Text := '100';
1105 end;
1106
1107 procedure TOptionDialog.PreviewWaitEditExit(Sender: TObject);
1108 begin
1109 if not GikoSys.IsNumeric(PreviewWaitEdit.Text) then
1110 PreviewWaitEdit.Text := '500';
1111 if StrToInt(PreviewWaitEdit.Text) < 500 then
1112 PreviewWaitEdit.Text := '500';
1113 if StrToInt(PreviewWaitEdit.Text) > 9999 then
1114 PreviewWaitEdit.Text := '9999';
1115 end;
1116
1117 procedure TOptionDialog.RecvBufferSizeExit(Sender: TObject);
1118 begin
1119 if not GikoSys.IsNumeric(RecvBufferSize.Text) then
1120 RecvBufferSize.Text := '4096';
1121 if StrToInt(RecvBufferSize.Text) < 256 then
1122 RecvBufferSize.Text := '4096';
1123 end;
1124
1125 procedure TOptionDialog.CSSCheckBoxClick(Sender: TObject);
1126 begin
1127 CSSListLabel.Enabled := CSSCheckBox.Checked;
1128 CSSListView.Enabled := CSSCheckBox.Checked;
1129 end;
1130
1131 procedure TOptionDialog.PostTimeEditExit(Sender: TObject);
1132 begin
1133 if not GikoSys.IsNumeric(PostTimeEdit.Text) then
1134 PostTimeEdit.Text := '0';
1135 end;
1136
1137 procedure TOptionDialog.PostTimeCheckBoxClick(Sender: TObject);
1138 begin
1139 PostTimeLabel.Enabled := PostTimeCheckBox.Checked;
1140 PostTimeEdit.Enabled := PostTimeCheckBox.Checked;
1141 PutPostTimeRadioButton.Enabled := PostTimeCheckBox.Checked;
1142 BackPostTimeRadioButton.Enabled := PostTimeCheckBox.Checked;
1143 end;
1144 procedure TOptionDialog.SetAbonpropertys;
1145 begin
1146 //鐃緒申鐃緒申鐃?鐃緒申
1147 GikoSys.FAbon.Deleterlo := RloCheckBox.Checked;
1148 GikoSys.FAbon.Replaceul := ReplaceulCheckBox.Checked;
1149 GikoSys.FAbon.AbonPopupRes := PopUpAbonCheckBox.Checked;
1150
1151 end;
1152 procedure TOptionDialog.CSSFontButtonClick(Sender: TObject);
1153 begin
1154
1155 FontDialog.Options := [fdAnsiOnly, fdEffects];
1156 FontDialog.Font.Assign(FCSSFont);
1157 if FontDialog.Execute then begin
1158 FontDialog.Font.Style := FontDialog.Font.Style - [fsUnderline] - [fsStrikeout];
1159 FCSSFont := FontDialog.Font;
1160 end;
1161
1162 CSSPreview;
1163
1164 end;
1165
1166 procedure TOptionDialog.CSSBackColorButtonClick(Sender: TObject);
1167 begin
1168
1169 ColorDialog.Color := FCSSBackColor;
1170 if ColorDialog.Execute then begin
1171 FCSSBackColor := ColorDialog.Color;
1172 end;
1173
1174 CSSPreview;
1175
1176 end;
1177
1178 procedure TOptionDialog.CSSFontCheckBoxClick(Sender: TObject);
1179 begin
1180
1181 CSSFontButton.Enabled := CSSFontCheckBox.Checked;
1182 CSSPreview;
1183
1184 end;
1185
1186 procedure TOptionDialog.CSSBackColorCheckBoxClick(Sender: TObject);
1187 begin
1188
1189 CSSBackColorButton.Enabled := CSSBackColorCheckBox.Checked;
1190 CSSPreview;
1191
1192 end;
1193
1194 procedure TOptionDialog.CSSSetContent(Content: string);
1195 var
1196 doc : Variant;
1197 begin
1198 if CSSBrowser.Document <> nil then begin
1199 doc := CSSBrowser.Document;
1200 doc.open;
1201 doc.Clear;
1202 doc.charset := 'Shift_JIS';
1203 doc.Write(Content);
1204 doc.Close;
1205 end;
1206 end;
1207
1208 procedure TOptionDialog.CSSPreview;
1209 var
1210 ThreadItem: TThreadItem;
1211 html: string;
1212 sTitle: string;
1213 Res: array [0..1] of TResRec;
1214 UserOptionalStyle: string;
1215 i: Integer;
1216 fileName: string;
1217 begin
1218
1219 fileName := GikoSys.Setting.CSSFileName;
1220
1221 GikoSys.Setting.CSSFileName := 'default.css';
1222 if CSSListView.Items.Count > 0 then begin
1223 try
1224 if CSSListView.ItemIndex >= 0 then begin
1225 if CSSListView.Items[CSSListView.ItemIndex].Data <> nil then
1226 GikoSys.Setting.CSSFileName := string( CSSListView.Items[CSSListView.ItemIndex].data )
1227 else
1228 GikoSys.Setting.CSSFileName := CSSListView.Items[CSSListView.ItemIndex].Caption + '.css';
1229 end;
1230 except
1231 end;
1232 end;
1233
1234 ThreadItem := TThreadItem.Create;
1235
1236 try
1237 ThreadItem.ParentBoard := nil;
1238 ThreadItem.AllResCount := High( Res );
1239 ThreadItem.NewResCount := 1;
1240 ThreadItem.NewReceive := 2;
1241
1242 sTitle := '鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?';
1243
1244 Res[0].FName := '鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申';
1245 Res[0].FMailTo := 'sage';
1246 Res[0].FDateTime := 'ID:Sample';
1247 Res[0].FBody := 'CSS 鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申';
1248 Res[1].FName := '鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申';
1249 Res[1].FMailTo := 'age';
1250 Res[1].FDateTime := 'ID:Sample';
1251 Res[1].FBody := '鐃?鐃?鐃?鐃緒申鐃?鐃?';
1252
1253 // 鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申
1254 if CSSFontCheckBox.Checked then begin
1255 i := ColorToRGB( FCSSFont.Color );
1256 i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16);
1257
1258 UserOptionalStyle := UserOptionalStyle +
1259 'font-family:"' + FCSSFont.Name + '";' +
1260 'font-size:' + IntToStr( FCSSFont.Size ) + 'pt;' +
1261 'color:#' + IntToHex( i, 6 ) + ';';
1262 if fsBold in FCSSFont.Style then
1263 UserOptionalStyle := UserOptionalStyle + 'font-weight:bold;'
1264 else
1265 UserOptionalStyle := UserOptionalStyle + 'font-weight:normal;';
1266 if fsItalic in FCSSFont.Style then
1267 UserOptionalStyle := UserOptionalStyle + 'font-style:italic;'
1268 else
1269 UserOptionalStyle := UserOptionalStyle + 'font-style:normal;';
1270 end;
1271 if CSSBackColorCheckBox.Checked then begin
1272 i := ColorToRGB( FCSSBackColor );
1273 i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16);
1274
1275 UserOptionalStyle := UserOptionalStyle +
1276 'background-color:#' + IntToHex( i, 6 ) + ';';
1277 end;
1278
1279 if FileExists( GikoSys.GetSkinHeaderFileName ) then begin
1280 html :=
1281 GikoSys.LoadFromSkin( GikoSys.GetSkinHeaderFileName, ThreadItem, sTitle, 0 ) +
1282 '<a name="top"></a>' +
1283 GikoSys.SkinedRes( GikoSYs.LoadFromSkin( GikoSys.GetSkinResFileName, ThreadItem, sTitle, 0 ), Res[0], '1' ) +
1284 GikoSys.SkinedRes( GikoSYs.LoadFromSkin( GikoSys.GetSkinNewResFileName, ThreadItem, sTitle, 0 ), Res[1], '2' ) +
1285 '<a name="bottom"></a>' +
1286 GikoSys.LoadFromSkin( GikoSys.GetSkinFooterFileName, ThreadItem, sTitle, 0 );
1287
1288 html := StringReplace( html, '</head>',
1289 '<style type="text/css">body {' + UserOptionalStyle + '}</style></head>', [rfReplaceAll] );
1290 end else begin
1291 html :=
1292 '<html><head>' +
1293 '<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">' +
1294 '<title>' + sTitle + '</title>' +
1295 '<link rel="stylesheet" href="' + GikoSys.GetStyleSheetDir + GikoSys.Setting.CSSFileName + '" type="text/css">' +
1296 '<style type="text/css">body {' + UserOptionalStyle + '}</style>' +
1297 '</head><body>' +
1298 '<div class="title">' + sTitle + '</div>';
1299
1300 for i := 0 to High( Res ) do
1301 begin
1302 html := html +
1303 '<div class="header"><span class="no">' + IntToStr( i + 1 ) + '</span>' +
1304 '<span class="name_label"> 鐃緒申鐃?鐃? </span>' +
1305 '<a class="name_mail" href="mailto:' + Res[i].FMailTo + '">' +
1306 '<b>' + Res[i].FName + '</b></a><span class="mail"> [' + Res[i].FMailTo + ']</span>' +
1307 '<span class="date_label"> 鐃緒申鐃?鐃緒申鐃?</span>' +
1308 '<span class="date"> ' + Res[i].FDateTime+ '</span></div>' +
1309 '<div class="mes">' + Res[i].FBody + ' </div>';
1310 end;
1311
1312 html := html + '</body></html>';
1313 end;
1314
1315 try
1316 CSSSetContent( html );
1317 except
1318 end;
1319
1320 finally
1321 ThreadItem.Free;
1322 GikoSys.Setting.CSSFileName := fileName;
1323 end;
1324
1325 end;
1326
1327 procedure TOptionDialog.CSSListViewChange(Sender: TObject; Item: TListItem;
1328 Change: TItemChange);
1329 begin
1330
1331 SkinPopupCheckBox.Enabled := (Item.Data <> nil);
1332
1333 if OptionTab.ActivePage = CSSTabSheet then
1334 CSSPreview;
1335
1336 end;
1337
1338 end.
1339

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