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

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