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

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