OSDN Git Service

・板一覧更新の処理メッセージを追加
[gikonavigoeson/gikonavi.git] / Option.pas
index fe0ed49..f1b0d88 100644 (file)
@@ -6,7 +6,14 @@ uses
        Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
        ComCtrls, StdCtrls, ExtCtrls, Dialogs, FileCtrl, MMSystem,
        GikoSystem, GikoUtil, Buttons, UrlMon, Menus, ImgList, OleCtrls,
        Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
        ComCtrls, StdCtrls, ExtCtrls, Dialogs, FileCtrl, MMSystem,
        GikoSystem, GikoUtil, Buttons, UrlMon, Menus, ImgList, OleCtrls,
-       SHDocVw_TLB, BoardGroup;
+{$IF Defined(DELPRO) }
+       SHDocVw,
+       MSHTML,
+{$ELSE}
+       SHDocVw_TLB,
+       MSHTML_TLB,
+{$IFEND}
+       BoardGroup, BrowserRecord;
 
 type
        TOptionDialog = class(TForm)
 
 type
        TOptionDialog = class(TForm)
@@ -15,169 +22,217 @@ type
                FontDialog: TFontDialog;
                ColorDialog: TColorDialog;
                OpenDialog: TOpenDialog;
                FontDialog: TFontDialog;
                ColorDialog: TColorDialog;
                OpenDialog: TOpenDialog;
-    Label26: TLabel;
-    CroutOption: TButton;
-    OptionTab: TPageControl;
-    ConnectSheet: TTabSheet;
-    ReadProxyGroupBox: TGroupBox;
-    ReadAddressLabel: TLabel;
-    ReadPortLabel: TLabel;
-    ReadUserIDLabel: TLabel;
-    ReadPasswordLabel: TLabel;
-    ReadProxyCheck: TCheckBox;
-    ReadProxyAddressEdit: TEdit;
-    ReadPortEdit: TEdit;
-    ReadProxyUserIDEdit: TEdit;
-    ReadProxyPasswordEdit: TEdit;
-    WriteProxyGroupBox: TGroupBox;
-    WriteAddressLabel: TLabel;
-    WritePortLabel: TLabel;
-    WriteUserIDLabel: TLabel;
-    WritePasswordLabel: TLabel;
-    WriteProxyCheck: TCheckBox;
-    WriteProxyAddressEdit: TEdit;
-    WritePortEdit: TEdit;
-    WriteProxyUserIDEdit: TEdit;
-    WriteProxyPasswordEdit: TEdit;
-    Font1Sheet: TTabSheet;
-    Bevel1: TBevel;
-    Bevel2: TBevel;
-    Label19: TLabel;
-    Bevel5: TBevel;
-    Label20: TLabel;
-    Label21: TLabel;
-    Label22: TLabel;
-    Label23: TLabel;
-    lblSFont: TLabel;
-    CabinetFontBotton: TButton;
-    CabinetColorBotton: TButton;
-    CabinetDefaultButton: TButton;
-    CabinetMemo: TMemo;
-    ListMemo: TMemo;
-    ListFontBotton: TButton;
-    ListColorBotton: TButton;
-    ListDefaultBotton: TButton;
-    HintFontButton: TButton;
-    HintBackButton: TButton;
-    HintDefaultButton: TButton;
-    HintMemo: TMemo;
-    EditorMemo: TMemo;
-    EditorFontBotton: TButton;
-    EditorColorBotton: TButton;
-    EditorDefaultBotton: TButton;
-    BrowserTabMemo: TMemo;
-    BruwserTabFontButton: TButton;
-    BrowserTabDefaultButton: TButton;
-    OddResNumCheckBox: TCheckBox;
-    OddResNumColorBox: TColorBox;
-    CSSTabSheet: TTabSheet;
-    GroupBox12: TGroupBox;
-    CSSListLabel: TLabel;
-    CSSCheckBox: TCheckBox;
-    CSSListView: TListView;
-    CSSBrowser: TWebBrowser;
-    CSSFontCheckBox: TCheckBox;
-    CSSBackColorCheckBox: TCheckBox;
-    CSSFontButton: TButton;
-    CSSBackColorButton: TButton;
-    TabSheet3: TTabSheet;
-    GroupBox9: TGroupBox;
-    ThreadListIconCheckBox: TCheckBox;
-    NonAcquiredCountCheckBox: TCheckBox;
-    GroupBox16: TGroupBox;
-    CreationTimeLogsCheckBox: TCheckBox;
-    FutureThreadCheckBox: TCheckBox;
-    GroupBox5: TGroupBox;
-    BrowserMaxLabel: TLabel;
-    BrowserMaxCombo: TComboBox;
-    GroupBox17: TGroupBox;
-    SelectIntervalLabel: TLabel;
-    Label4: TLabel;
-    Label6: TLabel;
-    SelectIntervalEdit: TEdit;
-    GroupBox18: TGroupBox;
-    DatOchiSortCombo: TComboBox;
-    ThreadSheet: TTabSheet;
-    GroupBox1: TGroupBox;
-    ShowMailCheckBox: TCheckBox;
-    ResRangeHoldCheckBox: TCheckBox;
-    ResRangeHoldComboBox: TComboBox;
-    GroupBox2: TGroupBox;
-    AppFolderLabel: TLabel;
-    URLAppCheckBox: TCheckBox;
-    AppFolderEdit: TEdit;
-    AppFolderButton: TButton;
-    OpenMailerCheckBox: TCheckBox;
-    GroupBox6: TGroupBox;
-    LogDeleteMessageCheckBox: TCheckBox;
-    ResAnchorGroupBox: TGroupBox;
+                Label26: TLabel;
+                CroutOption: TButton;
+                OptionTab: TPageControl;
+                ConnectSheet: TTabSheet;
+                ReadProxyGroupBox: TGroupBox;
+                ReadAddressLabel: TLabel;
+                ReadPortLabel: TLabel;
+                ReadUserIDLabel: TLabel;
+                ReadPasswordLabel: TLabel;
+                ReadProxyCheck: TCheckBox;
+                ReadProxyAddressEdit: TEdit;
+                ReadPortEdit: TEdit;
+                ReadProxyUserIDEdit: TEdit;
+                ReadProxyPasswordEdit: TEdit;
+                WriteProxyGroupBox: TGroupBox;
+                WriteAddressLabel: TLabel;
+                WritePortLabel: TLabel;
+                WriteUserIDLabel: TLabel;
+                WritePasswordLabel: TLabel;
+                WriteProxyCheck: TCheckBox;
+                WriteProxyAddressEdit: TEdit;
+                WritePortEdit: TEdit;
+                               WriteProxyUserIDEdit: TEdit;
+                               WriteProxyPasswordEdit: TEdit;
+                Font1Sheet: TTabSheet;
+                Bevel1: TBevel;
+                Bevel2: TBevel;
+                Label19: TLabel;
+                               Bevel5: TBevel;
+                Label20: TLabel;
+                Label21: TLabel;
+                Label22: TLabel;
+                Label23: TLabel;
+                lblSFont: TLabel;
+                CabinetFontBotton: TButton;
+                CabinetColorBotton: TButton;
+                CabinetDefaultButton: TButton;
+                CabinetMemo: TMemo;
+                ListMemo: TMemo;
+                ListFontBotton: TButton;
+                ListColorBotton: TButton;
+                ListDefaultBotton: TButton;
+                HintFontButton: TButton;
+                HintBackButton: TButton;
+                HintDefaultButton: TButton;
+                HintMemo: TMemo;
+                EditorMemo: TMemo;
+                EditorFontBotton: TButton;
+                EditorColorBotton: TButton;
+                EditorDefaultBotton: TButton;
+                BrowserTabMemo: TMemo;
+                BruwserTabFontButton: TButton;
+                BrowserTabDefaultButton: TButton;
+                OddResNumCheckBox: TCheckBox;
+                OddResNumColorBox: TColorBox;
+                CSSTabSheet: TTabSheet;
+                GroupBox12: TGroupBox;
+                CSSListLabel: TLabel;
+                CSSCheckBox: TCheckBox;
+                CSSListView: TListView;
+                CSSBrowser: TWebBrowser;
+                CSSFontCheckBox: TCheckBox;
+                CSSBackColorCheckBox: TCheckBox;
+                CSSFontButton: TButton;
+                CSSBackColorButton: TButton;
+                TabSheet3: TTabSheet;
+                GroupBox9: TGroupBox;
+                ThreadListIconCheckBox: TCheckBox;
+                GroupBox16: TGroupBox;
+                CreationTimeLogsCheckBox: TCheckBox;
+                FutureThreadCheckBox: TCheckBox;
+                GroupBox5: TGroupBox;
+                BrowserMaxLabel: TLabel;
+                BrowserMaxCombo: TComboBox;
+                GroupBox17: TGroupBox;
+                SelectIntervalLabel: TLabel;
+                Label4: TLabel;
+                Label6: TLabel;
+                SelectIntervalEdit: TEdit;
+                GroupBox18: TGroupBox;
+                DatOchiSortCombo: TComboBox;
+                ThreadSheet: TTabSheet;
+                GroupBox1: TGroupBox;
+                ShowMailCheckBox: TCheckBox;
+                ResRangeHoldCheckBox: TCheckBox;
+                ResRangeHoldComboBox: TComboBox;
+                GroupBox2: TGroupBox;
+                AppFolderLabel: TLabel;
+                URLAppCheckBox: TCheckBox;
+                AppFolderEdit: TEdit;
+                AppFolderButton: TButton;
+                OpenMailerCheckBox: TCheckBox;
+                GroupBox6: TGroupBox;
+                LogDeleteMessageCheckBox: TCheckBox;
+                TabSheet1: TTabSheet;
+               TabAddRadioGroup: TRadioGroup;
+                GroupBox8: TGroupBox;
+                Label14: TLabel;
+                Label15: TLabel;
+                Label16: TLabel;
+                PreviewVisibleCheckBox: TCheckBox;
+                PreviewSizeComboBox: TComboBox;
+                PreviewWaitEdit: TEdit;
+                GroupBox10: TGroupBox;
+                UnActivePopupCheckBox: TCheckBox;
+                ResPopupBoldCheckBox: TCheckBox;
+                TabSheet2: TTabSheet;
+                GroupBox7: TGroupBox;
+                Label3: TLabel;
+                Label11: TLabel;
+                URLDisplayCheckBox: TCheckBox;
+                AddressHistoryCountEdit: TEdit;
+                TabStopAddressBarCheckBox: TCheckBox;
+                LinkAddCheckBox: TCheckBox;
+                GroupBox15: TGroupBox;
+                ShowDialogForEndCheckBox: TCheckBox;
+                AllTabCloseCheckBox: TCheckBox;
+                SambaGroupBox: TGroupBox;
+                UseSambaCheckBox: TCheckBox;
+                TabAutoSaveLoad: TGroupBox;
+                TabLoadSave: TCheckBox;
+                SoundSheet: TTabSheet;
+                SoundEventGroupBox: TGroupBox;
+                SoundListView: TListView;
+                SoundReferButton: TButton;
+                SoundFileEdit: TEdit;
+                SoundPlayButton: TBitBtn;
+                FolderSheet: TTabSheet;
+                FolderGroupBox: TGroupBox;
+                Label1: TLabel;
+                Label2: TLabel;
+                Label5: TLabel;
+                LogFolderEdit: TEdit;
+                LogFolderButton: TButton;
+                NGwordSheet: TTabSheet;
+                GroupBox14: TGroupBox;
+                RloCheckBox: TCheckBox;
+                ReplaceulCheckBox: TCheckBox;
+                PopUpAbonCheckBox: TCheckBox;
+                ShowNGLineCheckBox: TCheckBox;
+                AddResAnchorCheckBox: TCheckBox;
+                DeleteSyriaCheckBox: TCheckBox;
+                UserIDSheet: TTabSheet;
+                GroupBox3: TGroupBox;
+                Label9: TLabel;
+                Label10: TLabel;
+                ForcedLoginLabel: TLabel;
+                UserIDEdit: TEdit;
+                PasswordEdit: TEdit;
+                AutoLoginCheckBox: TCheckBox;
+                ForcedLoginCheckBox: TCheckBox;
+                GroupBox4: TGroupBox;
+                Label13: TLabel;
+                BoardURLComboBox: TComboBox;
+                AddURLButton: TButton;
+                RemoveURLButton: TButton;
+                OkBotton: TButton;
+                SpamFilterGroupBox: TGroupBox;
+                SpamFilterAlgorithmComboBox: TComboBox;
+                TabSheet4: TTabSheet;
+                GroupBox13: TGroupBox;
+                UseUndecidedCheckBox: TCheckBox;
+                Tora3URLLabel: TLabel;
+                Label12: TLabel;
+                GroupBox11: TGroupBox;
+                Label7: TLabel;
+                BeUserIDEdit: TEdit;
+                Label8: TLabel;
+    BeCodeEdit: TEdit;
+                BeAutoLoginCheckBox: TCheckBox;
+    GroupBox19: TGroupBox;
+    Label17: TLabel;
+    MaxRecordCountEdit: TEdit;
+    Label18: TLabel;
+    UnFocusedBoldCheckBox: TCheckBox;
+    IgnoreKanaCheckBox: TCheckBox;
+    UseKatjuTypeSkinCheckBox: TCheckBox;
+    GroupBox20: TGroupBox;
+    AutoSortCheckBox: TCheckBox;
+    Label24: TLabel;
+    GroupBox21: TGroupBox;
+    StoredTaskTrayCB: TCheckBox;
+    GroupBox22: TGroupBox;
+    LoopBrowserTabsCB: TCheckBox;
+    GroupBox23: TGroupBox;
+    IgnoreContextCheckBox: TCheckBox;
+    GroupBox24: TGroupBox;
+    gppRightTopRB: TRadioButton;
+    gppTopRB: TRadioButton;
+    gppLeftTopRB: TRadioButton;
+    gppLeftRB: TRadioButton;
+    gppRightRB: TRadioButton;
+    gppLeftBottomRB: TRadioButton;
+    gppBottomRB: TRadioButton;
+    gppRighBottomRB: TRadioButton;
     ResAnchorCheckBox: TCheckBox;
     ResAnchorCheckBox: TCheckBox;
-    TabSheet1: TTabSheet;
-    PopupPositionRadioGroup: TRadioGroup;
-    TabAddRadioGroup: TRadioGroup;
-    GroupBox8: TGroupBox;
-    Label14: TLabel;
-    Label15: TLabel;
-    Label16: TLabel;
-    PreviewVisibleCheckBox: TCheckBox;
-    PreviewSizeComboBox: TComboBox;
-    PreviewWaitEdit: TEdit;
-    GroupBox10: TGroupBox;
-    UnActivePopupCheckBox: TCheckBox;
-    ResPopupBoldCheckBox: TCheckBox;
-    TabSheet2: TTabSheet;
-    GroupBox7: TGroupBox;
-    Label3: TLabel;
-    Label11: TLabel;
-    URLDisplayCheckBox: TCheckBox;
-    AddressHistoryCountEdit: TEdit;
-    TabStopAddressBarCheckBox: TCheckBox;
-    LinkAddCheckBox: TCheckBox;
-    GroupBox15: TGroupBox;
-    ShowDialogForEndCheckBox: TCheckBox;
-    AllTabCloseCheckBox: TCheckBox;
-    SambaGroupBox: TGroupBox;
-    UseSambaCheckBox: TCheckBox;
-    TabAutoSaveLoad: TGroupBox;
-    TabLoadSave: TCheckBox;
-    SoundSheet: TTabSheet;
-    SoundEventGroupBox: TGroupBox;
-    SoundListView: TListView;
-    SoundReferButton: TButton;
-    SoundFileEdit: TEdit;
-    SoundPlayButton: TBitBtn;
-    FolderSheet: TTabSheet;
-    FolderGroupBox: TGroupBox;
-    Label1: TLabel;
-    Label2: TLabel;
-    Label5: TLabel;
-    LogFolderEdit: TEdit;
-    LogFolderButton: TButton;
-    NGwordSheet: TTabSheet;
-    GroupBox14: TGroupBox;
-    RloCheckBox: TCheckBox;
-    ReplaceulCheckBox: TCheckBox;
-    PopUpAbonCheckBox: TCheckBox;
-    ShowNGLineCheckBox: TCheckBox;
-    AddResAnchorCheckBox: TCheckBox;
-    DeleteSyriaCheckBox: TCheckBox;
-    UserIDSheet: TTabSheet;
-    Tora3URLLabel: TLabel;
-    Label12: TLabel;
-    GroupBox3: TGroupBox;
-    Label9: TLabel;
-    Label10: TLabel;
-    ForcedLoginLabel: TLabel;
-    UserIDEdit: TEdit;
-    PasswordEdit: TEdit;
-    AutoLoginCheckBox: TCheckBox;
-    ForcedLoginCheckBox: TCheckBox;
-    GroupBox4: TGroupBox;
-    Label13: TLabel;
-    BoardURLComboBox: TComboBox;
-    AddURLButton: TButton;
-    RemoveURLButton: TButton;
-    OkBotton: TButton;
+    IgnoreLimitResCountCheckBox: TCheckBox;
+    GroupBox25: TGroupBox;
+    Label25: TLabel;
+    BoukenComboBox: TComboBox;
+    BoukenModButton: TButton;
+    BoukenDelButton: TButton;
+    BoukenEdit: TEdit;
+    GroupBox26: TGroupBox;
+    UseUnicodeCB: TCheckBox;
+    Label27: TLabel;
+    DispImageCheckBox: TCheckBox;
+    GroupBox27: TGroupBox;
+    ThreadTitleTrimCheckBox: TCheckBox;
+    GroupBox28: TGroupBox;
+    NGTextEditCheckBox: TCheckBox;
                procedure FormCreate(Sender: TObject);
                procedure FormDestroy(Sender: TObject);
                procedure ApplyButtonClick(Sender: TObject);
                procedure FormCreate(Sender: TObject);
                procedure FormDestroy(Sender: TObject);
                procedure ApplyButtonClick(Sender: TObject);
@@ -223,8 +278,13 @@ type
                        Change: TItemChange);
                procedure AddURLButtonClick(Sender: TObject);
                procedure RemoveURLButtonClick(Sender: TObject);
                        Change: TItemChange);
                procedure AddURLButtonClick(Sender: TObject);
                procedure RemoveURLButtonClick(Sender: TObject);
-    procedure OddResNumCheckBoxClick(Sender: TObject);
-    procedure ResRangeHoldCheckBoxClick(Sender: TObject);
+                procedure OddResNumCheckBoxClick(Sender: TObject);
+                procedure ResRangeHoldCheckBoxClick(Sender: TObject);
+                procedure CroutOptionClick(Sender: TObject);
+    procedure MaxRecordCountEditExit(Sender: TObject);
+    procedure BoukenDelButtonClick(Sender: TObject);
+    procedure BoukenComboBoxChange(Sender: TObject);
+    procedure BoukenModButtonClick(Sender: TObject);
        private
                { Private \90é\8c¾ }
                FClose: Boolean;
        private
                { Private \90é\8c¾ }
                FClose: Boolean;
@@ -236,18 +296,18 @@ type
                function GetMemoText(font: TFont; text: string): string;
 //             function GetFontText(Font: TFont; Text: string): string;
                procedure SetValue;
                function GetMemoText(font: TFont; text: string): string;
 //             function GetFontText(Font: TFont; Text: string): string;
                procedure SetValue;
-//                procedure SaveSetting;
+               procedure SaveSetting;
                procedure SettingApply;
                function CheckFolder: Boolean;
                procedure SetAbonpropertys;
                procedure CSSSetContent(Content: string);
                procedure CSSPreview;
                procedure SettingApply;
                function CheckFolder: Boolean;
                procedure SetAbonpropertys;
                procedure CSSSetContent(Content: string);
                procedure CSSPreview;
+               //! CSS\83v\83\8c\83r\83\85\81[\97pHTMLBody\90\90¬
+               function CreatePreviewBody(Res: array of TResRec): string;
+               //! CSS/SKIN\83v\83\8c\83r\83\85\81[\97pStyle\95\8e\9a\97ñ\8eæ\93¾
+               function GetPreviewUserStyle(): string;
        public
                { Public \90é\8c¾ }
        public
                { Public \90é\8c¾ }
-                TabAddRadio: Integer;                          
-                procedure SaveSetting;
-                property TabAddPro: TRadioGroup read TabAddRadioGroup write TabAddRadioGroup;
-                property TabAutoLoadSave: TCheckBox read TabLoadSave write TabLoadSave;
        end;
 
 var
        end;
 
 var
@@ -256,7 +316,7 @@ var
 implementation
 
 uses
 implementation
 
 uses
-       Giko, Editor, Setting, ActnList;
+       Giko, Editor, Setting, ActnList, KuroutSetting, Math, HTMLCreate;
 
 const
        FONT_TEXT: string = '%s %d pt';
 
 const
        FONT_TEXT: string = '%s %d pt';
@@ -269,12 +329,24 @@ const
        DEFAULT_FONT_SIZE: Integer = 9;
        DEFAULT_TABFONT_NAME: string = '\82l\82\82o\83S\83V\83b\83N';
        DEFAULT_TABFONT_SIZE: Integer = 9;
        DEFAULT_FONT_SIZE: Integer = 9;
        DEFAULT_TABFONT_NAME: string = '\82l\82\82o\83S\83V\83b\83N';
        DEFAULT_TABFONT_SIZE: Integer = 9;
-       URL_TORA3: WideString = 'http://2ch.tora3.net/';
+//     URL_TORA3: WideString = 'http://2ch.tora3.net/';
+       URL_TORA3: WideString = 'http://ronin.bbspink.com/';
+       DEFAULT_CSS_FILENAME = 'default.css';
 
 {$R *.DFM}
 
 procedure TOptionDialog.FormCreate(Sender: TObject);
 
 {$R *.DFM}
 
 procedure TOptionDialog.FormCreate(Sender: TObject);
+var
+    CenterForm: TCustomForm;
 begin
 begin
+    CenterForm := TCustomForm(Owner);
+    if Assigned(CenterForm) then begin
+        Left := ((CenterForm.Width - Width) div 2) + CenterForm.Left;
+        Top := ((CenterForm.Height - Height) div 2) + CenterForm.Top;
+    end else begin
+        Left := (Screen.Width - Width) div 2;
+        Top := (Screen.Height - Height) div 2;
+    end;
 
        CSSBrowser.Navigate('about:blank');
        FClose := True;
 
        CSSBrowser.Navigate('about:blank');
        FClose := True;
@@ -293,9 +365,9 @@ begin
                                                                                + '\83X\83\8c\83b\83h\95\\8e¦\83G\83\8a\83A\82Ì\83t\83H\83\93\83g\95Ï\8dX\82Í\81A'#13#10
                                                                                + '\81uCSS \82Æ\83X\83L\83\93\81v\83^\83u\82Å\90Ý\92è\8fo\97\88\82Ü\82·';
 
                                                                                + '\83X\83\8c\83b\83h\95\\8e¦\83G\83\8a\83A\82Ì\83t\83H\83\93\83g\95Ï\8dX\82Í\81A'#13#10
                                                                                + '\81uCSS \82Æ\83X\83L\83\93\81v\83^\83u\82Å\90Ý\92è\8fo\97\88\82Ü\82·';
 
-    ForcedLoginLabel.Caption := '- \83`\83F\83b\83N\82ð\93ü\82ê\82é\82Ì\82Í\83Z\83L\83\85\83\8a\83e\83B\8fã\8dD\82Ü\82µ\82­\82 \82è\82Ü\82¹\82ñ\81B' + #13#10
-                                                               + '\81@\82â\82Þ\82ð\93¾\82È\82¢\8e\9e\82¾\82¯\82É\82µ\82Ä\82­\82¾\82³\82¢\81B';
-    CSSCheckBoxClick(Sender);
+        ForcedLoginLabel.Caption := '- \83`\83F\83b\83N\82ð\93ü\82ê\82é\82Ì\82Í\83Z\83L\83\85\83\8a\83e\83B\8fã\8dD\82Ü\82µ\82­\82 \82è\82Ü\82¹\82ñ\81B' + #13#10
+                                                                       + '\81@\82â\82Þ\82ð\93¾\82È\82¢\8e\9e\82¾\82¯\82É\82µ\82Ä\82­\82¾\82³\82¢\81B';
+        CSSCheckBoxClick(Sender);
        BrowserMaxLabel.Caption :=
                '\83u\83\89\83E\83U\82ª\8dÅ\8f¬\89»\82³\82ê\82Ä\82¢\82é\82Æ\82«\82É\88È\89º\82Ì\91\80\8dì\82Å\83u\83\89\83E\83U\82ð\8dÅ\91å\89»\82µ\82Ü\82·\81B'#13#10 +
                '\82Ü\82½\81A\83z\83C\81[\83\8b\83N\83\8a\83b\83N\82É\82æ\82è\8dÅ\91å\89»\82ð\83L\83\83\83\93\83Z\83\8b\82·\82é\82±\82Æ\82ª\8fo\97\88\82Ü\82·\81B';
        BrowserMaxLabel.Caption :=
                '\83u\83\89\83E\83U\82ª\8dÅ\8f¬\89»\82³\82ê\82Ä\82¢\82é\82Æ\82«\82É\88È\89º\82Ì\91\80\8dì\82Å\83u\83\89\83E\83U\82ð\8dÅ\91å\89»\82µ\82Ü\82·\81B'#13#10 +
                '\82Ü\82½\81A\83z\83C\81[\83\8b\83N\83\8a\83b\83N\82É\82æ\82è\8dÅ\91å\89»\82ð\83L\83\83\83\93\83Z\83\8b\82·\82é\82±\82Æ\82ª\8fo\97\88\82Ü\82·\81B';
@@ -324,13 +396,14 @@ begin
        ReadPortEditExit(Sender);
        WritePortEditExit(Sender);
        AddressHistoryCountEditExit(Sender);
        ReadPortEditExit(Sender);
        WritePortEditExit(Sender);
        AddressHistoryCountEditExit(Sender);
+    MaxRecordCountEditExit(Sender);
        PreviewWaitEditExit(Sender);
 
        if not CheckFolder then begin
                FClose := False;
                Exit;
        end;
        PreviewWaitEditExit(Sender);
 
        if not CheckFolder then begin
                FClose := False;
                Exit;
        end;
-    SetAbonpropertys;
+               SetAbonpropertys;
        SaveSetting;
        SettingApply;
 
        SaveSetting;
        SettingApply;
 
@@ -341,13 +414,14 @@ begin
        ReadPortEditExit(Sender);
        WritePortEditExit(Sender);
        AddressHistoryCountEditExit(Sender);
        ReadPortEditExit(Sender);
        WritePortEditExit(Sender);
        AddressHistoryCountEditExit(Sender);
+       MaxRecordCountEditExit(Sender);
        PreviewWaitEditExit(Sender);
 
        if not CheckFolder then begin
                FClose := False;
                Exit;
        end;
        PreviewWaitEditExit(Sender);
 
        if not CheckFolder then begin
                FClose := False;
                Exit;
        end;
-    SetAbonpropertys;
+        SetAbonpropertys;
        SaveSetting;
        SettingApply;
        FClose := False;
        SaveSetting;
        SettingApply;
        FClose := False;
@@ -526,7 +600,8 @@ var
        Item: TListItem;
 //     s: string;
        idx: Integer;
        Item: TListItem;
 //     s: string;
        idx: Integer;
-       FileList: TStringList;
+       FileList : TStringList;
+    DomainList : TStringList;
 begin
 
        //\93Ç\82Ý\8d\9e\82Ý\97p\83v\83\8d\83L\83V
 begin
 
        //\93Ç\82Ý\8d\9e\82Ý\97p\83v\83\8d\83L\83V
@@ -547,16 +622,30 @@ begin
        CabinetMemo.Font.Name := GikoSys.Setting.CabinetFontName;
        CabinetMemo.Font.Size := GikoSys.Setting.CabinetFontSize;
        CabinetMemo.Font.Color := GikoSys.Setting.CabinetFontColor;
        CabinetMemo.Font.Name := GikoSys.Setting.CabinetFontName;
        CabinetMemo.Font.Size := GikoSys.Setting.CabinetFontSize;
        CabinetMemo.Font.Color := GikoSys.Setting.CabinetFontColor;
+       CabinetMemo.Font.Style := [];
+       if GikoSys.Setting.CabinetFontBold then
+               CabinetMemo.Font.Style := [fsBold];
+       if GikoSys.Setting.CabinetFontItalic then
+               CabinetMemo.Font.Style := CabinetMemo.Font.Style + [fsItalic];
        CabinetMemo.Color := GikoSys.Setting.CabinetBackColor;
        CabinetMemo.Color := GikoSys.Setting.CabinetBackColor;
+
        //\83X\83\8c\83b\83h\83\8a\83X\83g\83t\83H\83\93\83g
        ListMemo.Font.Name := GikoSys.Setting.ListFontName;
        ListMemo.Font.Size := GikoSys.Setting.ListFontSize;
        ListMemo.Font.Color := GikoSys.Setting.ListFontColor;
        //\83X\83\8c\83b\83h\83\8a\83X\83g\83t\83H\83\93\83g
        ListMemo.Font.Name := GikoSys.Setting.ListFontName;
        ListMemo.Font.Size := GikoSys.Setting.ListFontSize;
        ListMemo.Font.Color := GikoSys.Setting.ListFontColor;
+       ListMemo.Font.Style := [];
+       if GikoSys.Setting.ListFontBold then
+               ListMemo.Font.Style := ListMemo.Font.Style + [fsBold];
+       if GikoSys.Setting.ListFontItalic then
+               ListMemo.Font.Style := ListMemo.Font.Style + [fsItalic];
+
        ListMemo.Color := GikoSys.Setting.ListBackColor;
        //\83\8c\83X\90\94\91\9d\8c¸\83X\83\8c\8b­\92²\95\\8e¦\83`\83F\83b\83N\83{\83b\83N\83X\81\95\83J\83\89\81[\83_\83C\83A\83\8d\83O
        OddResNumCheckBox.Checked := GikoSys.Setting.UseOddColorOddResNum;
        OddResNumColorBox.Selected := GikoSys.Setting.OddColor;
        OddResNumColorBox.Enabled := OddResNumCheckBox.Checked;
        ListMemo.Color := GikoSys.Setting.ListBackColor;
        //\83\8c\83X\90\94\91\9d\8c¸\83X\83\8c\8b­\92²\95\\8e¦\83`\83F\83b\83N\83{\83b\83N\83X\81\95\83J\83\89\81[\83_\83C\83A\83\8d\83O
        OddResNumCheckBox.Checked := GikoSys.Setting.UseOddColorOddResNum;
        OddResNumColorBox.Selected := GikoSys.Setting.OddColor;
        OddResNumColorBox.Enabled := OddResNumCheckBox.Checked;
+       UnFocusedBoldCheckBox.Checked := GikoSys.Setting.UnFocusedBold;
+       UnFocusedBoldCheckBox.Enabled := OddResNumCheckBox.Checked;
 
        //\83u\83\89\83E\83U\83|\83b\83v\83A\83b\83v\83t\83H\83\93\83g
        HintMemo.Font.Name := GikoSys.Setting.HintFontName;
 
        //\83u\83\89\83E\83U\83|\83b\83v\83A\83b\83v\83t\83H\83\93\83g
        HintMemo.Font.Name := GikoSys.Setting.HintFontName;
@@ -578,6 +667,8 @@ begin
        EditorMemo.Color := GikoSys.Setting.EditorBackColor;
        //CSS\95\\8e¦
        CSSCheckBox.Checked := GikoSys.Setting.UseCSS;
        EditorMemo.Color := GikoSys.Setting.EditorBackColor;
        //CSS\95\\8e¦
        CSSCheckBox.Checked := GikoSys.Setting.UseCSS;
+       //\82©\82¿\82ã\83X\83L\83\93\8eg\97p
+       UseKatjuTypeSkinCheckBox.Checked := GikoSys.Setting.UseKatjushaType;
        if FCSSFont <> nil then
                FCSSFont.Free;
        FCSSFont := TFont.Create;
        if FCSSFont <> nil then
                FCSSFont.Free;
        FCSSFont := TFont.Create;
@@ -609,15 +700,16 @@ begin
        //\83X\83^\83C\83\8b\83V\81[\83g\83t\83@\83C\83\8b\96¼\88ê\97\97
        FileList := TStringList.Create;
        try
        //\83X\83^\83C\83\8b\83V\81[\83g\83t\83@\83C\83\8b\96¼\88ê\97\97
        FileList := TStringList.Create;
        try
+        FileList.BeginUpdate;
                GikoSys.GetFileList(GikoSys.GetStyleSheetDir, '*.css', FileList, True, True);
                GikoSys.GetFileList(GikoSys.GetStyleSheetDir, '*.css', FileList, True, True);
-
+        FileList.EndUpdate;
                Idx := Length(GikoSys.GetStyleSheetDir);
                for i := 0 to FileList.Count - 1 do
                        FileList[i] := Copy(FileList[i], Idx + 1, Length(FileList[i]));
                FileList.Sort;
                for i := 0 to FileList.Count - 1 do begin
                        //s := ExtractFileName(FileList[i]);
                Idx := Length(GikoSys.GetStyleSheetDir);
                for i := 0 to FileList.Count - 1 do
                        FileList[i] := Copy(FileList[i], Idx + 1, Length(FileList[i]));
                FileList.Sort;
                for i := 0 to FileList.Count - 1 do begin
                        //s := ExtractFileName(FileList[i]);
-                       if LowerCase(FileList[i]) = 'default.css' then
+                       if LowerCase(FileList[i]) = DEFAULT_CSS_FILENAME then
                                Item := CSSListView.Items.Insert(0)
                        else
                                Item := CSSListView.Items.Add;
                                Item := CSSListView.Items.Insert(0)
                        else
                                Item := CSSListView.Items.Add;
@@ -634,29 +726,18 @@ begin
                FCSSStrings.Clear;
        FCSSStrings := TStringList.Create;
        try
                FCSSStrings.Clear;
        FCSSStrings := TStringList.Create;
        try
-               //GikoSys.GetDirectoryList(GikoSys.GetSkinDir, '*', FileList, False);
                GikoSys.GetDirectoryList(GikoSys.GetSkinDir, '*', FCSSStrings, False);
 
                Idx := Length(GikoSys.GetSkinDir);
                GikoSys.GetDirectoryList(GikoSys.GetSkinDir, '*', FCSSStrings, False);
 
                Idx := Length(GikoSys.GetSkinDir);
-               //FileList.Sort;
                FCSSStrings.Sort;
                FCSSStrings.Sort;
-               //for i := 0 to FileList.Count - 1 do begin
                for i := 0 to FCSSStrings.Count - 1 do begin
                for i := 0 to FCSSStrings.Count - 1 do begin
-                       //s := ExtractFileName(FileList[i]);
                        Item := CSSListView.Items.Add;
                        Item := CSSListView.Items.Add;
-                       {Item.Data := PChar( FileList[i] );
-                       Item.Caption := Copy( FileList[i], Idx + 1, Length(FileList[i]) );
-                       if LowerCase(FileList[i]) = LowerCase(GikoSys.Setting.CSSFileName) then
-                               Item.Selected := True;
-                       }
                        Item.Data := PChar( FCSSStrings[i] );
                        Item.Caption := Copy( FCSSStrings[i], Idx + 1, Length(FCSSStrings[i]) );
                        if LowerCase(FCSSStrings[i]) = LowerCase(GikoSys.Setting.CSSFileName) then
                                Item.Selected := True;
                end;
        finally
                        Item.Data := PChar( FCSSStrings[i] );
                        Item.Caption := Copy( FCSSStrings[i], Idx + 1, Length(FCSSStrings[i]) );
                        if LowerCase(FCSSStrings[i]) = LowerCase(GikoSys.Setting.CSSFileName) then
                                Item.Selected := True;
                end;
        finally
-               // Item.Data \82É\83|\83C\83\93\83^\93Ë\82Á\8d\9e\82ñ\82Å\82é\82©\82ç\8aJ\95ú\82Å\82«\82È\82¢\82æ\82§\81`
-               //FileList.Free;
        end;
 
        if (CSSListView.ItemIndex = -1) and (CSSListView.Items.Count > 0) then
        end;
 
        if (CSSListView.ItemIndex = -1) and (CSSListView.Items.Count > 0) then
@@ -664,6 +745,8 @@ begin
 
        //Mail\97\93\95\\8e¦
        ShowMailCheckBox.Checked := GikoSys.Setting.ShowMail;
 
        //Mail\97\93\95\\8e¦
        ShowMailCheckBox.Checked := GikoSys.Setting.ShowMail;
+    //BE2.0\83A\83C\83R\83\93\81EEmoticons\82ð\89æ\91\9c\95\\8e¦\82·\82é
+    DispImageCheckBox.Checked := GikoSys.Setting.IconImageDisplay;
 
        // \8bN\93®\8e\9e\83\8c\83X\95\\8e¦\94Í\88Í\82Ì\8cÅ\92è
        ResRangeHoldCheckBox.Checked := GikoSys.Setting.ResRangeHold;
 
        // \8bN\93®\8e\9e\83\8c\83X\95\\8e¦\94Í\88Í\82Ì\8cÅ\92è
        ResRangeHoldCheckBox.Checked := GikoSys.Setting.ResRangeHold;
@@ -671,7 +754,7 @@ begin
        Ord( grrAll ):  ResRangeHoldComboBox.ItemIndex := 0;
        Ord( grrKoko ): ResRangeHoldComboBox.ItemIndex := 2;
        Ord( grrNew ):  ResRangeHoldComboBox.ItemIndex := 3;
        Ord( grrAll ):  ResRangeHoldComboBox.ItemIndex := 0;
        Ord( grrKoko ): ResRangeHoldComboBox.ItemIndex := 2;
        Ord( grrNew ):  ResRangeHoldComboBox.ItemIndex := 3;
-       100:                                            ResRangeHoldComboBox.ItemIndex := 1;
+       10..65535:                                              ResRangeHoldComboBox.ItemIndex := 1;
        end;
        ResRangeHoldComboBox.Enabled := GikoSys.Setting.ResRangeHold;
        //\83^\83u\92Ç\89Á\88Ê\92u
        end;
        ResRangeHoldComboBox.Enabled := GikoSys.Setting.ResRangeHold;
        //\83^\83u\92Ç\89Á\88Ê\92u
@@ -714,6 +797,8 @@ begin
 
        //\83\8d\83O\8dí\8f\9c\8e\9e\83\81\83b\83Z\81[\83W
        LogDeleteMessageCheckBox.Checked := GikoSys.Setting.DeleteMsg;
 
        //\83\8d\83O\8dí\8f\9c\8e\9e\83\81\83b\83Z\81[\83W
        LogDeleteMessageCheckBox.Checked := GikoSys.Setting.DeleteMsg;
+    //\93¯ID\83\8c\83X\83A\83\93\83J\81[\95\\8e¦\82Ì\90§\8cÀ\90\94\89z\82¦\83\81\83b\83Z\81[\83W
+    IgnoreLimitResCountCheckBox.Checked := GikoSys.Setting.LimitResCountMessage;
 
        //\8fI\97¹\8e\9e\8am\94F\83_\83C\83A\83\8d\83O
        ShowDialogForEndCheckBox.Checked := GikoSys.Setting.ShowDialogForEnd;
 
        //\8fI\97¹\8e\9e\8am\94F\83_\83C\83A\83\8d\83O
        ShowDialogForEndCheckBox.Checked := GikoSys.Setting.ShowDialogForEnd;
@@ -726,15 +811,15 @@ begin
        BrowserMaxCombo.ItemIndex := Ord( GikoSys.Setting.BrowserAutoMaximize );
        //\83|\83b\83v\83A\83b\83v\88Ê\92u
        case GikoSys.Setting.PopupPosition of
        BrowserMaxCombo.ItemIndex := Ord( GikoSys.Setting.BrowserAutoMaximize );
        //\83|\83b\83v\83A\83b\83v\88Ê\92u
        case GikoSys.Setting.PopupPosition of
-               gppRightTop:            PopupPositionRadioGroup.ItemIndex := 0;
-               gppRight:                       PopupPositionRadioGroup.ItemIndex := 1;
-               gppRightBottom: PopupPositionRadioGroup.ItemIndex := 2;
-               gppTop:                                 PopupPositionRadioGroup.ItemIndex := 3;
-               gppCenter:                      PopupPositionRadioGroup.ItemIndex := 4;
-               gppBottom:                      PopupPositionRadioGroup.ItemIndex := 5;
-               gppLeftTop:             PopupPositionRadioGroup.ItemIndex := 6;
-               gppLeft:                                PopupPositionRadioGroup.ItemIndex := 7;
-               gppLeftBottom:  PopupPositionRadioGroup.ItemIndex := 8;
+               gppRightTop:            gppRightTopRB.Checked := True;
+               gppRight:                       gppRightRB.Checked := True;
+               gppRightBottom:     gppRighBottomRB.Checked := True;
+               gppTop:                         gppTopRB.Checked := True;
+               gppCenter:                      gppTopRB.Checked := True; // \93Ç\82Ý\8d\9e\82Ý\82Å\95Ï\8a·\82µ\82Ä\82é\82Í\82¸
+               gppBottom:                      gppBottomRB.Checked := True;
+               gppLeftTop:             gppLeftTopRB.Checked := True;
+               gppLeft:                        gppLeftRB.Checked := True;
+               gppLeftBottom:      gppLeftBottomRB.Checked := True;
        end;
 
        //\94ñ\83A\83N\83e\83B\83u\8e\9e\83|\83b\83v\83A\83b\83v\95\\8e¦
        end;
 
        //\94ñ\83A\83N\83e\83B\83u\8e\9e\83|\83b\83v\83A\83b\83v\95\\8e¦
@@ -762,43 +847,95 @@ begin
 
        //\83X\83\8c\83b\83h\88ê\97\97\8dX\90V\83A\83C\83R\83\93
        ThreadListIconCheckBox.Checked := GikoSys.Setting.ListIconVisible;
 
        //\83X\83\8c\83b\83h\88ê\97\97\8dX\90V\83A\83C\83R\83\93
        ThreadListIconCheckBox.Checked := GikoSys.Setting.ListIconVisible;
-       NonAcquiredCountCheckBox.Checked := GikoSys.Setting.NonAcquiredCount;
        CreationTimeLogsCheckBox.Checked := GikoSys.Setting.CreationTimeLogs;
        FutureThreadCheckBox.Checked := GikoSys.Setting.FutureThread;
        SelectIntervalEdit.Text := IntToStr(GikoSys.Setting.SelectInterval);
 
        //dat\97\8e\82¿\83X\83\8c\83\\81[\83g\8f\87
        CreationTimeLogsCheckBox.Checked := GikoSys.Setting.CreationTimeLogs;
        FutureThreadCheckBox.Checked := GikoSys.Setting.FutureThread;
        SelectIntervalEdit.Text := IntToStr(GikoSys.Setting.SelectInterval);
 
        //dat\97\8e\82¿\83X\83\8c\83\\81[\83g\8f\87
-       case GikoSys.Setting.DatOchiSortIndex of
-               0:
+       case TGikoBoardColumnID( GikoSys.Setting.DatOchiSortIndex ) of
+               gbcTitle:
                        if GikoSys.Setting.DatOchiSortOrder then
                                DatOchiSortCombo.ItemIndex := 1
                        else
                                DatOchiSortCombo.ItemIndex := 2;
                        if GikoSys.Setting.DatOchiSortOrder then
                                DatOchiSortCombo.ItemIndex := 1
                        else
                                DatOchiSortCombo.ItemIndex := 2;
-               6:
+               gbcRoundDate://gbcLastModified:
                        if GikoSys.Setting.DatOchiSortOrder then
                                DatOchiSortCombo.ItemIndex := 3
                        else
                                DatOchiSortCombo.ItemIndex := 4;
                        if GikoSys.Setting.DatOchiSortOrder then
                                DatOchiSortCombo.ItemIndex := 3
                        else
                                DatOchiSortCombo.ItemIndex := 4;
-               7:
+               gbcCreated:
                        if GikoSys.Setting.DatOchiSortOrder then
                                DatOchiSortCombo.ItemIndex := 5
                        else
                                DatOchiSortCombo.ItemIndex := 6;
                        if GikoSys.Setting.DatOchiSortOrder then
                                DatOchiSortCombo.ItemIndex := 5
                        else
                                DatOchiSortCombo.ItemIndex := 6;
+               gbcLastModified:
+                       if GikoSys.Setting.DatOchiSortOrder then
+                               DatOchiSortCombo.ItemIndex := 7
+                       else
+                               DatOchiSortCombo.ItemIndex := 8;
        else
                DatOchiSortCombo.ItemIndex := 0;
        end;
        else
                DatOchiSortCombo.ItemIndex := 0;
        end;
-
-        //\82 \82Ú\81`\82ñ
-        RloCheckBox.Checked := GikoSys.Setting.AbonDeleterlo;
-        ReplaceulCheckBox.Checked := GikoSys.Setting.AbonReplaceul;
-        PopUpAbonCheckBox.Checked := GikoSys.Setting.PopUpAbon;
-        ShowNGLineCheckBox.Checked := GikoSys.Setting.ShowNGLinesNum;
-        AddResAnchorCheckBox.Checked := GikoSys.Setting.AddResAnchor;
+       AutoSortCheckBox.Checked := GikoSys.Setting.AutoSortThreadList;
+       
+       //\82 \82Ú\81`\82ñ
+       RloCheckBox.Checked := GikoSys.Setting.AbonDeleterlo;
+       ReplaceulCheckBox.Checked := GikoSys.Setting.AbonReplaceul;
+       PopUpAbonCheckBox.Checked := GikoSys.Setting.PopUpAbon;
+       ShowNGLineCheckBox.Checked := GikoSys.Setting.ShowNGLinesNum;
+       AddResAnchorCheckBox.Checked := GikoSys.Setting.AddResAnchor;
        DeleteSyriaCheckBox.Checked := GikoSys.Setting.DeleteSyria;
        DeleteSyriaCheckBox.Checked := GikoSys.Setting.DeleteSyria;
-
-        //TabAutoLoad
-        TabLoadSave.Checked := Gikosys.Setting.TabAutoLoadSave;
-
+       IgnoreKanaCheckBox.Checked := GikoSys.Setting.IgnoreKana;
+    //NG\83\8f\81[\83h\95Ò\8fW
+    NGTextEditCheckBox.Checked := GikoSys.Setting.NGTextEditor;
+{$IFDEF SPAM_FILTER_ENABLED}
+       // \83X\83p\83\80\83t\83B\83\8b\83^\82Ì\90Ý\92è\82ð\95\\8e¦\82·\82é
+       SpamFilterGroupBox.Visible := True;
+{$ENDIF}
+       // \8eg\97p\82·\82é\83X\83p\83\80\83t\83B\83\8b\83^
+{$IFDEF DEBUG}
+       SpamFilterAlgorithmComboBox.Clear;
+       SpamFilterAlgorithmComboBox.AddItem( '\8eg\97p\82µ\82È\82¢', nil );
+       SpamFilterAlgorithmComboBox.AddItem( 'Paul Graham \96@', nil );
+       SpamFilterAlgorithmComboBox.AddItem( 'Gary Robinson \96@', nil );
+       SpamFilterAlgorithmComboBox.AddItem( 'Gary Robinson-Fisher \96@', nil );
+{$ENDIF}
+       SpamFilterAlgorithmComboBox.ItemIndex :=
+               Ord( GikoSys.Setting.SpamFilterAlgorithm );
+
+       //TabAutoLoad
+       TabLoadSave.Checked := Gikosys.Setting.TabAutoLoadSave;
+       UseUndecidedCheckBox.Checked := GikoSys.Setting.UseUndecided;
+
+    // \83\8c\83X\83G\83f\83B\83^Unicode\93ü\97Í
+    UseUnicodeCB.Checked := Gikosys.Setting.UseUnicode;
+    // \83X\83\8c\83^\83C\93Á\92è\95\8e\9a\97ñ\8f\9c\8b\8e
+    ThreadTitleTrimCheckBox.Checked := GikoSys.Setting.ThreadTitleTrim;
+
+       //Be2ch\94F\8fØ
+       BeUserIDEdit.Text := GikoSys.Setting.BeUserID;
+       BeCodeEdit.Text := GikoSys.Setting.BePassword;
+       BeAutoLoginCheckBox.Checked := GikoSys.Setting.BeAutoLogin;
+       //\97\9a\97ð\82Ì\8dÅ\91å\95Û\91\90\94
+       MaxRecordCountEdit.Text := IntToStr(GikoSys.Setting.MaxRecordCount);
+    // \8dÅ\8f¬\89»\8e\9e\82É\83^\83X\83N\83g\83\8c\83C\82É\8ai\94[\82·\82é\82©
+    StoredTaskTrayCB.Checked := GikoSys.Setting.StoredTaskTray;
+    // \83u\83\89\83E\83U\83^\83u\82Ì\88Ú\93®\82Å\83\8b\81[\83v\82ð\8b\96\89Â\82·\82é\82©
+    LoopBrowserTabsCB.Checked := GikoSys.Setting.LoopBrowserTabs;
+    //
+    IgnoreContextCheckBox.Checked := GikoSys.Setting.GestureIgnoreContext;
+
+    // \96`\8c¯\82Ì\8f\91\83h\83\81\83C\83\93\88ê\97\97\8eæ\93¾
+    BoukenComboBox.Text := '';
+    BoukenComboBox.Items.Clear;
+    DomainList := TStringList.Create;
+    GikoSys.GetBoukenDomain(DomainList);
+    for i := 0 to DomainList.Count - 1 do begin
+        BoukenComboBox.Items.Add( DomainList[i] ) ;
+    end;
+    DomainList.Free;
+    BoukenComboBox.ItemIndex := 0;
+    BoukenComboBox.OnChange(nil);
 end;
 
 procedure TOptionDialog.SaveSetting;
 end;
 
 procedure TOptionDialog.SaveSetting;
@@ -824,14 +961,20 @@ begin
        GikoSys.Setting.CabinetFontName := CabinetMemo.Font.Name;
        GikoSys.Setting.CabinetFontSize := CabinetMemo.Font.Size;
        GikoSys.Setting.CabinetFontColor := CabinetMemo.Font.Color;
        GikoSys.Setting.CabinetFontName := CabinetMemo.Font.Name;
        GikoSys.Setting.CabinetFontSize := CabinetMemo.Font.Size;
        GikoSys.Setting.CabinetFontColor := CabinetMemo.Font.Color;
+       GikoSys.Setting.CabinetFontBold  := fsBold in CabinetMemo.Font.Style;
+       GikoSys.Setting.CabinetFontItalic:= fsItalic in CabinetMemo.Font.Style;
        GikoSys.Setting.CabinetBackColor := CabinetMemo.Color;
 
        GikoSys.Setting.CabinetBackColor := CabinetMemo.Color;
 
-       GikoSys.Setting.ListFontName := ListMemo.Font.Name;
-       GikoSys.Setting.ListFontSize := ListMemo.Font.Size;
-       GikoSys.Setting.ListFontColor := ListMemo.Font.Color;
+       GikoSys.Setting.ListFontName    := ListMemo.Font.Name;
+       GikoSys.Setting.ListFontSize    := ListMemo.Font.Size;
+       GikoSys.Setting.ListFontColor   := ListMemo.Font.Color;
+       GikoSys.Setting.ListFontBold    := fsBold in ListMemo.Font.Style;
+       GikoSys.Setting.ListFontItalic  := fsItalic in ListMemo.Font.Style;
        GikoSys.Setting.ListBackColor := ListMemo.Color;
        GikoSys.Setting.UseOddColorOddResNum := OddResNumCheckBox.Checked;
        GikoSys.Setting.OddColor := OddResNumColorBox.Selected;
        GikoSys.Setting.ListBackColor := ListMemo.Color;
        GikoSys.Setting.UseOddColorOddResNum := OddResNumCheckBox.Checked;
        GikoSys.Setting.OddColor := OddResNumColorBox.Selected;
+       GikoSys.Setting.UnFocusedBold := (UnFocusedBoldCheckBox.Enabled) and
+                                                                               (UnFocusedBoldCheckBox.Checked);
 
        GikoSys.Setting.HintFontName := HintMemo.Font.Name;
        GikoSys.Setting.HintFontSize := HintMemo.Font.Size;
 
        GikoSys.Setting.HintFontName := HintMemo.Font.Name;
        GikoSys.Setting.HintFontSize := HintMemo.Font.Size;
@@ -840,7 +983,8 @@ begin
 
        GikoSys.Setting.BrowserTabFontName := BrowserTabMemo.Font.Name;
        GikoSys.Setting.BrowserTabFontSize := BrowserTabMemo.Font.Size;
 
        GikoSys.Setting.BrowserTabFontName := BrowserTabMemo.Font.Name;
        GikoSys.Setting.BrowserTabFontSize := BrowserTabMemo.Font.Size;
-
+       GikoSys.Setting.BrowserTabFontBold := fsBold in BrowserTabMemo.Font.Style;
+       GikoSys.Setting.BrowserTabFontItalic := fsItalic in BrowserTabMemo.Font.Style;
        GikoSys.Setting.EditorFontName := EditorMemo.Font.Name;
        GikoSys.Setting.EditorFontSize := EditorMemo.Font.Size;
        GikoSys.Setting.EditorFontColor := EditorMemo.Font.Color;
        GikoSys.Setting.EditorFontName := EditorMemo.Font.Name;
        GikoSys.Setting.EditorFontSize := EditorMemo.Font.Size;
        GikoSys.Setting.EditorFontColor := EditorMemo.Font.Color;
@@ -852,9 +996,10 @@ begin
        //CSS\95\\8e¦
        if GikoSys.Setting.UseCSS <> CSSCheckBox.Checked then FRepaintThread := true;
        GikoSys.Setting.UseCSS := CSSCheckBox.Checked;
        //CSS\95\\8e¦
        if GikoSys.Setting.UseCSS <> CSSCheckBox.Checked then FRepaintThread := true;
        GikoSys.Setting.UseCSS := CSSCheckBox.Checked;
+       GikoSys.Setting.UseKatjushaType := UseKatjuTypeSkinCheckBox.Checked;
        //CSS\83t\83@\83C\83\8b\96¼
        tmp := GikoSys.Setting.CSSFileName;
        //CSS\83t\83@\83C\83\8b\96¼
        tmp := GikoSys.Setting.CSSFileName;
-       GikoSys.Setting.CSSFileName := 'default.css';
+       GikoSys.Setting.CSSFileName := DEFAULT_CSS_FILENAME;
        if CSSListView.Items.Count > 0 then begin
                try
                        if CSSListView.Items[CSSListView.ItemIndex].Data <> nil then
        if CSSListView.Items.Count > 0 then begin
                try
                        if CSSListView.Items[CSSListView.ItemIndex].Data <> nil then
@@ -914,13 +1059,15 @@ begin
        //Mail\97\93\95\\8e¦
        if GikoSys.Setting.ShowMail <> ShowMailCheckBox.Checked then FRepaintThread := true;
        GikoSys.Setting.ShowMail := ShowMailCheckBox.Checked;
        //Mail\97\93\95\\8e¦
        if GikoSys.Setting.ShowMail <> ShowMailCheckBox.Checked then FRepaintThread := true;
        GikoSys.Setting.ShowMail := ShowMailCheckBox.Checked;
+    //BE2.0\83A\83C\83R\83\93\81EEmoticons\82ð\89æ\91\9c\95\\8e¦\82·\82é
+    GikoSys.Setting.IconImageDisplay := DispImageCheckBox.Checked;
        // \8bN\93®\8e\9e\83\8c\83X\95\\8e¦\94Í\88Í\82Ì\8cÅ\92è
        GikoSys.Setting.ResRangeHold := ResRangeHoldCheckBox.Checked;
        case ResRangeHoldComboBox.ItemIndex of
        // \8bN\93®\8e\9e\83\8c\83X\95\\8e¦\94Í\88Í\82Ì\8cÅ\92è
        GikoSys.Setting.ResRangeHold := ResRangeHoldCheckBox.Checked;
        case ResRangeHoldComboBox.ItemIndex of
-       0: GikoSys.Setting.ResRange := Ord( grrAll );
-       1: GikoSys.Setting.ResRange := 100;
-       2: GikoSys.Setting.ResRange := Ord( grrKoko );
-       3: GikoSys.Setting.ResRange := Ord( grrNew );
+               0: GikoSys.Setting.ResRange := Ord( grrAll );
+               1: GikoSys.Setting.ResRange := GikoSys.Setting.ResRangeExCount;
+               2: GikoSys.Setting.ResRange := Ord( grrKoko );
+               3: GikoSys.Setting.ResRange := Ord( grrNew );
        end;
 
        GikoSys.Setting.BrowserTabAppend := TGikoTabAppend(TabAddRadioGroup.ItemIndex);
        end;
 
        GikoSys.Setting.BrowserTabAppend := TGikoTabAppend(TabAddRadioGroup.ItemIndex);
@@ -938,28 +1085,26 @@ begin
 
        GikoSys.Setting.OpenMailer := OpenMailerCheckBox.Checked;
        GikoSys.Setting.DeleteMsg := LogDeleteMessageCheckBox.Checked;
 
        GikoSys.Setting.OpenMailer := OpenMailerCheckBox.Checked;
        GikoSys.Setting.DeleteMsg := LogDeleteMessageCheckBox.Checked;
+    GikoSys.Setting.LimitResCountMessage := IgnoreLimitResCountCheckBox.Checked;
+
        //\8fI\97¹\8e\9e\8am\94F\83_\83C\83A\83\8d\83O
        GikoSys.Setting.ShowDialogForEnd := ShowDialogForEndCheckBox.Checked;
        //AllTabClose
        GikoSys.Setting.ShowDialogForAllTabClose := AllTabCloseCheckBox.Checked;
        //\8fI\97¹\8e\9e\8am\94F\83_\83C\83A\83\8d\83O
        GikoSys.Setting.ShowDialogForEnd := ShowDialogForEndCheckBox.Checked;
        //AllTabClose
        GikoSys.Setting.ShowDialogForAllTabClose := AllTabCloseCheckBox.Checked;
-    //Samba
+        //Samba
        GikoSys.Setting.UseSamba := UseSambaCheckBox.Checked;
        GikoSys.Setting.ResAnchorJamp := ResAnchorCheckBox.Checked;
        // \83u\83\89\83E\83U\8dÅ\91å\89»
        GikoSys.Setting.BrowserAutoMaximize := TGikoBrowserAutoMaximize( BrowserMaxCombo.ItemIndex );
        //\83|\83b\83v\83A\83b\83v\88Ê\92u
        GikoSys.Setting.UseSamba := UseSambaCheckBox.Checked;
        GikoSys.Setting.ResAnchorJamp := ResAnchorCheckBox.Checked;
        // \83u\83\89\83E\83U\8dÅ\91å\89»
        GikoSys.Setting.BrowserAutoMaximize := TGikoBrowserAutoMaximize( BrowserMaxCombo.ItemIndex );
        //\83|\83b\83v\83A\83b\83v\88Ê\92u
-       case PopupPositionRadioGroup.ItemIndex of
-               0: GikoSys.Setting.PopupPosition := gppRightTop;
-               1: GikoSys.Setting.PopupPosition := gppRight;
-               2: GikoSys.Setting.PopupPosition := gppRightBottom;
-               3: GikoSys.Setting.PopupPosition := gppTop;
-               4: GikoSys.Setting.PopupPosition := gppCenter;
-               5: GikoSys.Setting.PopupPosition := gppBottom;
-               6: GikoSys.Setting.PopupPosition := gppLeftTop;
-               7: GikoSys.Setting.PopupPosition := gppLeft;
-               8: GikoSys.Setting.PopupPosition := gppLeftBottom;
-       end;
-
+    if (gppRightTopRB.Checked) then GikoSys.Setting.PopupPosition := gppRightTop;
+    if (gppRightRB.Checked) then GikoSys.Setting.PopupPosition := gppRight;
+    if (gppRighBottomRB.Checked) then GikoSys.Setting.PopupPosition := gppRightBottom;
+    if (gppTopRB.Checked) then GikoSys.Setting.PopupPosition := gppTop;
+    if (gppBottomRB.Checked) then GikoSys.Setting.PopupPosition := gppBottom;
+    if (gppLeftTopRB.Checked) then GikoSys.Setting.PopupPosition := gppLeftTop;
+    if (gppLeftRB.Checked) then GikoSys.Setting.PopupPosition := gppLeft;
+    if (gppLeftBottomRB.Checked) then GikoSys.Setting.PopupPosition := gppLeftBottom;
        //\94ñ\83A\83N\83e\83B\83u\8e\9e\83|\83b\83v\83A\83b\83v\95\\8e¦
        GikoSys.Setting.UnActivePopup := UnActivePopupCheckBox.Checked;
        //\83\8c\83X\83|\83b\83v\83A\83b\83v\83{\81[\83\8b\83h\95\\8e¦
        //\94ñ\83A\83N\83e\83B\83u\8e\9e\83|\83b\83v\83A\83b\83v\95\\8e¦
        GikoSys.Setting.UnActivePopup := UnActivePopupCheckBox.Checked;
        //\83\8c\83X\83|\83b\83v\83A\83b\83v\83{\81[\83\8b\83h\95\\8e¦
@@ -991,11 +1136,6 @@ begin
        //\83X\83\8c\83b\83h\88ê\97\97\8dX\90V\83A\83C\83R\83\93
        GikoSys.Setting.ListIconVisible := ThreadListIconCheckBox.Checked;
 
        //\83X\83\8c\83b\83h\88ê\97\97\8dX\90V\83A\83C\83R\83\93
        GikoSys.Setting.ListIconVisible := ThreadListIconCheckBox.Checked;
 
-       //\8eæ\93¾\90\94\81A\96¢\8eæ\93¾\90\94
-       if (GikoSys.Setting.NonAcquiredCount <> NonAcquiredCountCheckBox.Checked) and (GikoForm.ActiveList Is TBoard) then
-               FRepaintList := true;
-       GikoSys.Setting.NonAcquiredCount := NonAcquiredCountCheckBox.Checked;
-
        GikoSys.Setting.CreationTimeLogs := CreationTimeLogsCheckBox.Checked;
        GikoSys.Setting.FutureThread := FutureThreadCheckBox.Checked;
        if StrToIntDef(SelectIntervalEdit.Text, 110) > 55 then
        GikoSys.Setting.CreationTimeLogs := CreationTimeLogsCheckBox.Checked;
        GikoSys.Setting.FutureThread := FutureThreadCheckBox.Checked;
        if StrToIntDef(SelectIntervalEdit.Text, 110) > 55 then
@@ -1008,29 +1148,38 @@ begin
                0: GikoSys.Setting.DatOchiSortIndex := -1;      //\95À\82Ñ\91Ö\82¦\82µ\82È\82¢
                1: begin        //\83X\83\8c\94Ô\8d\86(\8f¸\8f\87)
                        GikoSys.Setting.DatOchiSortOrder := true;
                0: GikoSys.Setting.DatOchiSortIndex := -1;      //\95À\82Ñ\91Ö\82¦\82µ\82È\82¢
                1: begin        //\83X\83\8c\94Ô\8d\86(\8f¸\8f\87)
                        GikoSys.Setting.DatOchiSortOrder := true;
-                       GikoSys.Setting.DatOchiSortIndex := 0;
+                       GikoSys.Setting.DatOchiSortIndex := Ord( gbcTitle );
                   end;
                2: begin        //\83X\83\8c\94Ô\8d\86(\8d~\8f\87)
                        GikoSys.Setting.DatOchiSortOrder := false;
                   end;
                2: begin        //\83X\83\8c\94Ô\8d\86(\8d~\8f\87)
                        GikoSys.Setting.DatOchiSortOrder := false;
-                       GikoSys.Setting.DatOchiSortIndex := 0;
+                       GikoSys.Setting.DatOchiSortIndex := Ord( gbcTitle );
                   end;
                3: begin        //\8eæ\93¾\93ú\8e\9e(\8f¸\8f\87)
                        GikoSys.Setting.DatOchiSortOrder := true;
                   end;
                3: begin        //\8eæ\93¾\93ú\8e\9e(\8f¸\8f\87)
                        GikoSys.Setting.DatOchiSortOrder := true;
-                       GikoSys.Setting.DatOchiSortIndex := 6;
+                       GikoSys.Setting.DatOchiSortIndex := Ord( gbcRoundDate );{gbcLastModified}
                   end;
                4: begin        //\8eæ\93¾\93ú\8e\9e(\8d~\8f\87)
                        GikoSys.Setting.DatOchiSortOrder := false;
                   end;
                4: begin        //\8eæ\93¾\93ú\8e\9e(\8d~\8f\87)
                        GikoSys.Setting.DatOchiSortOrder := false;
-                       GikoSys.Setting.DatOchiSortIndex := 6;
+                       GikoSys.Setting.DatOchiSortIndex := Ord( gbcRoundDate );{gbcLastModified}
                   end;
                5: begin        //\83X\83\8c\8dì\90¬\93ú\8e\9e(\8f¸\8f\87)
                        GikoSys.Setting.DatOchiSortOrder := true;
                   end;
                5: begin        //\83X\83\8c\8dì\90¬\93ú\8e\9e(\8f¸\8f\87)
                        GikoSys.Setting.DatOchiSortOrder := true;
-                       GikoSys.Setting.DatOchiSortIndex := 7;
+                       GikoSys.Setting.DatOchiSortIndex := Ord( gbcCreated );
                   end;
                6: begin        //\83X\83\8c\8dì\90¬\93ú\8e\9e(\8d~\8f\87)
                        GikoSys.Setting.DatOchiSortOrder := false;
                   end;
                6: begin        //\83X\83\8c\8dì\90¬\93ú\8e\9e(\8d~\8f\87)
                        GikoSys.Setting.DatOchiSortOrder := false;
-                       GikoSys.Setting.DatOchiSortIndex := 7;
+                       GikoSys.Setting.DatOchiSortIndex := Ord( gbcCreated );
                   end;
                   end;
+               7:      begin  //\83X\83\8c\8dÅ\8fI\8dX\90V\93ú\8e\9e\81i\8f¸\8f\87\81j
+                       GikoSys.Setting.DatOchiSortOrder := true;
+                       GikoSys.Setting.DatOchiSortIndex := Ord( gbcLastModified );{gbcLastModified}
+                       end;
+               8:      begin  //\83X\83\8c\8dÅ\8fI\8dX\90V\93ú\8e\9e\81i\8d~\8f\87\81j
+                       GikoSys.Setting.DatOchiSortOrder := false;
+                       GikoSys.Setting.DatOchiSortIndex := Ord( gbcLastModified );{gbcLastModified}
+                       end;
        end;
        end;
+       GikoSys.Setting.AutoSortThreadList := AutoSortCheckBox.Checked;
 
        GikoSys.Setting.WriteSystemSettingFile;
        GikoSys.Setting.WriteBoardURLSettingFile;
 
        GikoSys.Setting.WriteSystemSettingFile;
        GikoSys.Setting.WriteBoardURLSettingFile;
@@ -1054,10 +1203,38 @@ begin
        GikoSys.Setting.PopUpAbon := PopUpAbonCheckBox.Checked;
        GikoSys.Setting.ShowNGLinesNum := ShowNGLineCheckBox.Checked;
        GikoSys.Setting.AddResAnchor := AddResAnchorCheckBox.Checked;
        GikoSys.Setting.PopUpAbon := PopUpAbonCheckBox.Checked;
        GikoSys.Setting.ShowNGLinesNum := ShowNGLineCheckBox.Checked;
        GikoSys.Setting.AddResAnchor := AddResAnchorCheckBox.Checked;
-        GikoSys.Setting.DeleteSyria := DeleteSyriaCheckBox.Checked;
+       GikoSys.Setting.DeleteSyria := DeleteSyriaCheckBox.Checked;
+       GikoSys.Setting.IgnoreKana := IgnoreKanaCheckBox.Checked;
+       GikoSys.FAbon.IgnoreKana := GikoSys.Setting.IgnoreKana;
+    //NG\83\8f\81[\83h\95Ò\8fW
+    GikoSys.Setting.NGTextEditor := NGTextEditCheckBox.Checked;
+       // \8eg\97p\82·\82é\83X\83p\83\80\83t\83B\83\8b\83^
+       if GikoSys.Setting.SpamFilterAlgorithm <> TGikoSpamFilterAlgorithm(
+               SpamFilterAlgorithmComboBox.ItemIndex ) then begin
+               GikoSys.Setting.SpamFilterAlgorithm := TGikoSpamFilterAlgorithm(
+                       SpamFilterAlgorithmComboBox.ItemIndex );
+               FRepaintThread := True;
+       end;
+
+       //Tab\8e©\93®\95Û\91
+       GikoSys.Setting.TabAutoLoadSave := TabLoadSave.Checked;
+       GikoSys.Setting.UseUndecided := UseUndecidedCheckBox.Checked;
+        //Be2ch
+        GikoSys.Setting.BeUserID := BeUserIDEdit.Text;
+        GikoSys.Setting.BePassword := BeCodeEdit.Text;
+               GikoSys.Setting.BeAutoLogin := BeAutoLoginCheckBox.Checked;
+       //\97\9a\97ð\82Ì\8dÅ\91å\95Û\91\90\94
+       GikoSys.Setting.MaxRecordCount := Max(StrToInt64Def(MaxRecordCountEdit.Text,100),1);
+    GikoSys.Setting.StoredTaskTray := StoredTaskTrayCB.Checked;
+    GikoSys.Setting.LoopBrowserTabs := LoopBrowserTabsCB.Checked;
+
+    GikoSys.Setting.GestureIgnoreContext := IgnoreContextCheckBox.Checked;
+
+    // \83\8c\83X\83G\83f\83B\83^Unicode\93ü\97Í
+    Gikosys.Setting.UseUnicode := UseUnicodeCB.Checked;
+    // \83X\83\8c\83^\83C\93Á\92è\95\8e\9a\97ñ\8f\9c\8b\8e
+    GikoSys.Setting.ThreadTitleTrim := ThreadTitleTrimCheckBox.Checked;
 
 
-        //Tab\8e©\93®\95Û\91
-        GikoSys.Setting.TabAutoLoadSave := TabLoadSave.Checked;
 end;
 
 procedure TOptionDialog.SettingApply;
 end;
 
 procedure TOptionDialog.SettingApply;
@@ -1073,21 +1250,32 @@ begin
                GikoForm.TreeView.Font.Color := GikoSys.Setting.CabinetFontColor;
                GikoForm.TreeView.Color := GikoSys.Setting.CabinetBackColor;
 
                GikoForm.TreeView.Font.Color := GikoSys.Setting.CabinetFontColor;
                GikoForm.TreeView.Color := GikoSys.Setting.CabinetBackColor;
 
-               GikoForm.FavoriteTreeView.Font.Name := GikoSys.Setting.CabinetFontName;
-               GikoForm.FavoriteTreeView.Font.Size := GikoSys.Setting.CabinetFontSize;
-               GikoForm.FavoriteTreeView.Font.Color := GikoSys.Setting.CabinetFontColor;
+               GikoForm.FavoriteTreeView.Font.Assign(GikoForm.TreeView.Font);
                GikoForm.FavoriteTreeView.Color := GikoSys.Setting.CabinetBackColor;
 
                GikoForm.ListView.Font.Name := GikoSys.Setting.ListFontName;
                GikoForm.ListView.Font.Size := GikoSys.Setting.ListFontSize;
                GikoForm.ListView.Font.Color := GikoSys.Setting.ListFontColor;
                GikoForm.FavoriteTreeView.Color := GikoSys.Setting.CabinetBackColor;
 
                GikoForm.ListView.Font.Name := GikoSys.Setting.ListFontName;
                GikoForm.ListView.Font.Size := GikoSys.Setting.ListFontSize;
                GikoForm.ListView.Font.Color := GikoSys.Setting.ListFontColor;
+               GikoForm.ListView.Font.Style := [];
+               if GikoSys.Setting.ListFontBold then
+                       GikoForm.ListView.Font.Style := [fsbold];
+               if GikoSys.Setting.ListFontItalic then
+                       GikoForm.ListView.Font.Style := GikoForm.ListView.Font.Style + [fsitalic];
+
                //GikoForm.ListView.Color := GikoSys.Setting.ListBackColor;
                //GikoForm.ListView.Color := GikoSys.Setting.ListBackColor;
-                               GikoForm.ListViewBackGroundColor := GikoSys.Setting.ListBackColor;
-        GikoForm.UseOddResOddColor := GikoSys.Setting.UseOddColorOddResNum;
-        GikoForm.OddColor := GikoSys.Setting.OddColor;
+               GikoForm.ListViewBackGroundColor := GikoSys.Setting.ListBackColor;
+               GikoForm.UseOddResOddColor := GikoSys.Setting.UseOddColorOddResNum;
+               GikoForm.OddColor := GikoSys.Setting.OddColor;
+               GikoSys.Setting.UnFocusedBold := (UnFocusedBoldCheckBox.Enabled) and
+                                                                                       (UnFocusedBoldCheckBox.Checked);
 
                GikoForm.BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName;
                GikoForm.BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize;
 
                GikoForm.BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName;
                GikoForm.BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize;
+               GikoForm.BrowserTab.Font.Style := [];
+               if GikoSys.Setting.BrowserTabFontBold then
+                       GikoForm.BrowserTab.Font.Style := [fsBold];
+               if GikoSys.Setting.BrowserTabFontItalic then
+                       GikoForm.BrowserTab.Font.Style := GikoForm.BrowserTab.Font.Style + [fsItalic];
 //             GikoForm.BrowserTab.Height := (GikoSys.Setting.BrowserTabFontSize * 2) + 1;
 //             GikoForm.BrowserBottomPanel.Height := GikoForm.BrowserTab.Height;
 
 //             GikoForm.BrowserTab.Height := (GikoSys.Setting.BrowserTabFontSize * 2) + 1;
 //             GikoForm.BrowserBottomPanel.Height := GikoForm.BrowserTab.Height;
 
@@ -1124,6 +1312,9 @@ begin
                end;
                GikoForm.BrowserTab.OnChange(nil);
        end;
                end;
                GikoForm.BrowserTab.OnChange(nil);
        end;
+
+    // \83^\83u\82Ì\83X\83\8c\83^\83C\8dX\90V
+    GikoForm.UpdateThreadTitle;
 end;
 
 procedure TOptionDialog.ReadProxyCheckClick(Sender: TObject);
 end;
 
 procedure TOptionDialog.ReadProxyCheckClick(Sender: TObject);
@@ -1159,7 +1350,7 @@ end;
 function TOptionDialog.CheckFolder: Boolean;
 begin
        if Trim(LogFolderEdit.Text) = '' then
 function TOptionDialog.CheckFolder: Boolean;
 begin
        if Trim(LogFolderEdit.Text) = '' then
-               LogFolderEdit.Text := ExtractFilePath(Application.ExeName) + 'Log';
+               LogFolderEdit.Text := GikoSys.GetAppDir + 'Log';
 
        if DirectoryExists(LogFolderEdit.Text) then begin
                Result := True;
 
        if DirectoryExists(LogFolderEdit.Text) then begin
                Result := True;
@@ -1193,17 +1384,29 @@ begin
        sndPlaySound(nil, SND_ASYNC);
        if OpenDialog.Execute then begin
                SoundFileEdit.Text := OpenDialog.FileName;
        sndPlaySound(nil, SND_ASYNC);
        if OpenDialog.Execute then begin
                SoundFileEdit.Text := OpenDialog.FileName;
+        // \83A\83v\83\8a\94z\89º\82Ì\83t\83@\83C\83\8b\82Ì\8fê\8d\87\91\8a\91Î\83p\83X\82É\95Ï\8a·\82·\82é\81B
+        if (AnsiPos(GikoSys.Setting.GetAppDir,SoundFileEdit.Text) = 1) then begin
+            // .\ \82ª\82Â\82©\82È\82¢\82Ì\82Å\81A.\\82ð\92Ç\89Á
+            SoundFileEdit.Text := '.\' + ExtractRelativePath(
+                                      GikoSys.Setting.GetAppDir,
+                                      SoundFileEdit.Text);
+
+        end;
        end;
 end;
 
 procedure TOptionDialog.SoundPlayButtonClick(Sender: TObject);
        end;
 end;
 
 procedure TOptionDialog.SoundPlayButtonClick(Sender: TObject);
+var
+    s : String;
 begin
 begin
-       if not FileExists(SoundFileEdit.Text) then begin
+    SetCurrentDir(GikoSys.Setting.GetAppDir);
+    s := ExpandFileName(SoundFileEdit.Text);
+       if not FileExists(s) then begin
                MsgBox(Handle, '\91\8dÝ\82µ\82È\82¢\83t\83@\83C\83\8b\82Å\82·', '\83G\83\89\81[', MB_ICONSTOP or MB_OK);
                SoundFileEdit.Text := '';
                Exit;
        end;
                MsgBox(Handle, '\91\8dÝ\82µ\82È\82¢\83t\83@\83C\83\8b\82Å\82·', '\83G\83\89\81[', MB_ICONSTOP or MB_OK);
                SoundFileEdit.Text := '';
                Exit;
        end;
-       if not sndPlaySound(PChar(SoundFileEdit.Text), SND_ASYNC or SND_NOSTOP) then begin
+       if not sndPlaySound(PChar(s), SND_ASYNC or SND_NOSTOP) then begin
                sndPlaySound(nil, SND_ASYNC);
        end;
 end;
                sndPlaySound(nil, SND_ASYNC);
        end;
 end;
@@ -1223,7 +1426,8 @@ begin
        Item := SoundListView.Selected;
        if Item = nil then Exit;
 
        Item := SoundListView.Selected;
        if Item = nil then Exit;
 
-       if FileExists(SoundFileEdit.Text) then
+    SetCurrentDir(GikoSys.Setting.GetAppDir);
+       if FileExists(ExpandFileName(SoundFileEdit.Text)) then
                Item.SubItems[0] := SoundFileEdit.Text;
        if Trim(SoundFileEdit.Text) = '' then
                Item.SubItems[0] := '';
                Item.SubItems[0] := SoundFileEdit.Text;
        if Trim(SoundFileEdit.Text) = '' then
                Item.SubItems[0] := '';
@@ -1311,13 +1515,13 @@ end;
 
 procedure TOptionDialog.SetAbonpropertys;
 begin
 
 procedure TOptionDialog.SetAbonpropertys;
 begin
-  //\82 \82Ú\81`\82ñ
-  GikoSys.FAbon.Deleterlo := RloCheckBox.Checked;
-  GikoSys.FAbon.Replaceul := ReplaceulCheckBox.Checked;
-  GikoSys.FAbon.AbonPopupRes := PopUpAbonCheckBox.Checked;
+        //\82 \82Ú\81`\82ñ
+        GikoSys.FAbon.Deleterlo := RloCheckBox.Checked;
+        GikoSys.FAbon.Replaceul := ReplaceulCheckBox.Checked;
+        GikoSys.FAbon.AbonPopupRes := PopUpAbonCheckBox.Checked;
        GikoSys.FAbon.ReturnNGwordLineNum := ShowNGLineCheckBox.Checked;
        GikoSys.FAbon.SetNGResAnchor := AddResAnchorCheckBox.Checked;
        GikoSys.FAbon.ReturnNGwordLineNum := ShowNGLineCheckBox.Checked;
        GikoSys.FAbon.SetNGResAnchor := AddResAnchorCheckBox.Checked;
-    GikoSys.FAbon.DeleteSyria := DeleteSyriaCheckBox.Checked;
+               GikoSys.FAbon.DeleteSyria := DeleteSyriaCheckBox.Checked;
 end;
 procedure TOptionDialog.CSSFontButtonClick(Sender: TObject);
 begin
 end;
 procedure TOptionDialog.CSSFontButtonClick(Sender: TObject);
 begin
@@ -1364,12 +1568,12 @@ end;
 
 procedure TOptionDialog.CSSSetContent(Content: string);
 var
 
 procedure TOptionDialog.CSSSetContent(Content: string);
 var
-       doc : Variant;
+       doc : OleVariant;
 begin
        if CSSBrowser.Document <> nil then begin
 begin
        if CSSBrowser.Document <> nil then begin
-               doc := CSSBrowser.Document;
+               doc := CSSBrowser.OleObject.Document;
                doc.open;
                doc.open;
-                               doc.Clear;
+        doc.Clear;
                doc.charset := 'Shift_JIS';
                doc.Write(Content);
                doc.Close;
                doc.charset := 'Shift_JIS';
                doc.Write(Content);
                doc.Close;
@@ -1382,14 +1586,12 @@ var
        ThreadItem: TThreadItem;
        html: string;
        Res: array [0..1] of TResRec;
        ThreadItem: TThreadItem;
        html: string;
        Res: array [0..1] of TResRec;
-       UserOptionalStyle: string;
-       i: Integer;
        fileName: string;
 begin
 
        fileName := GikoSys.Setting.CSSFileName;
 
        fileName: string;
 begin
 
        fileName := GikoSys.Setting.CSSFileName;
 
-       GikoSys.Setting.CSSFileName := 'default.css';
+       GikoSys.Setting.CSSFileName := DEFAULT_CSS_FILENAME;
        if CSSListView.Items.Count > 0 then begin
                try
                        if CSSListView.ItemIndex >= 0 then begin
        if CSSListView.Items.Count > 0 then begin
                try
                        if CSSListView.ItemIndex >= 0 then begin
@@ -1397,13 +1599,13 @@ begin
                                        GikoSys.Setting.CSSFileName := string( CSSListView.Items[CSSListView.ItemIndex].data )
                                else
                                        GikoSys.Setting.CSSFileName := CSSListView.Items[CSSListView.ItemIndex].Caption + '.css';
                                        GikoSys.Setting.CSSFileName := string( CSSListView.Items[CSSListView.ItemIndex].data )
                                else
                                        GikoSys.Setting.CSSFileName := CSSListView.Items[CSSListView.ItemIndex].Caption + '.css';
-      end;
+                                               end;
                except
                end;
        end;
 
        Board := TBoard.Create( nil, 'about://sample/' );
                except
                end;
        end;
 
        Board := TBoard.Create( nil, 'about://sample/' );
-       ThreadItem := TThreadItem.Create( nil, 'about://sample/test/read.cgi/sample/' );
+       ThreadItem := TThreadItem.Create( nil, Board, 'about://sample/test/read.cgi/sample/' );
 
        try
                Board.Title := '\83T\83\93\83v\83\8b\94Â';
 
        try
                Board.Title := '\83T\83\93\83v\83\8b\94Â';
@@ -1422,66 +1624,27 @@ begin
                Res[1].FDateTime := 'ID:Sample';
                Res[1].FBody := '\83I\83}\83G\83\82\83i\81[';
 
                Res[1].FDateTime := 'ID:Sample';
                Res[1].FBody := '\83I\83}\83G\83\82\83i\81[';
 
-               // \83t\83H\83\93\83g\82â\83T\83C\83Y\82Ì\90Ý\92è
-               if CSSFontCheckBox.Checked then begin
-                       i := ColorToRGB( FCSSFont.Color );
-                       i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16);
-
-                       UserOptionalStyle := UserOptionalStyle +
-                               'font-family:"' + FCSSFont.Name + '";' +
-                               'font-size:' + IntToStr( FCSSFont.Size ) + 'pt;' +
-                               'color:#' + IntToHex( i, 6 ) + ';';
-                       if fsBold in FCSSFont.Style then
-                               UserOptionalStyle := UserOptionalStyle + 'font-weight:bold;'
-                       else
-                               UserOptionalStyle := UserOptionalStyle + 'font-weight:normal;';
-                       if fsItalic in FCSSFont.Style then
-                               UserOptionalStyle := UserOptionalStyle + 'font-style:italic;'
-                       else
-                               UserOptionalStyle := UserOptionalStyle + 'font-style:normal;';
-               end;
-               if CSSBackColorCheckBox.Checked then begin
-                       i := ColorToRGB( FCSSBackColor );
-                       i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16);
-
-                       UserOptionalStyle := UserOptionalStyle +
-                               'background-color:#' + IntToHex( i, 6 ) + ';';
-               end;
 
                if FileExists( GikoSys.GetSkinHeaderFileName ) then begin
                        html :=
 
                if FileExists( GikoSys.GetSkinHeaderFileName ) then begin
                        html :=
-                               GikoSys.LoadFromSkin( GikoSys.GetSkinHeaderFileName, ThreadItem, 0 ) +
+                               HTMLCreater.LoadFromSkin( GikoSys.GetSkinHeaderFileName, ThreadItem, 0 ) +
                                '<a name="top"></a>' +
                                '<a name="top"></a>' +
-                               GikoSys.SkinedRes( GikoSYs.LoadFromSkin( GikoSys.GetSkinResFileName, ThreadItem, 0 ), Res[0], '1' ) +
-                               GikoSys.SkinedRes( GikoSYs.LoadFromSkin( GikoSys.GetSkinNewResFileName, ThreadItem, 0 ), Res[1], '2' ) +
+                               HTMLCreater.SkinedRes( HTMLCreater.LoadFromSkin( GikoSys.GetSkinResFileName, ThreadItem, 0 ), @Res[0], '1' ) +
+                               HTMLCreater.SkinedRes( HTMLCreater.LoadFromSkin( GikoSys.GetSkinNewResFileName, ThreadItem, 0 ), @Res[1], '2' ) +
                                '<a name="bottom"></a>' +
                                '<a name="bottom"></a>' +
-                               GikoSys.LoadFromSkin( GikoSys.GetSkinFooterFileName, ThreadItem, 0 );
+                               HTMLCreater.LoadFromSkin( GikoSys.GetSkinFooterFileName, ThreadItem, 0 );
 
                        html := StringReplace( html, '</head>',
 
                        html := StringReplace( html, '</head>',
-                               '<style type="text/css">body {' + UserOptionalStyle + '}</style></head>', [rfReplaceAll] );
+                               '<style type="text/css">body {' + GetPreviewUserStyle + '}</style></head>', [rfReplaceAll] );
                end else begin
                        html :=
                end else begin
                        html :=
-                               '<html><head>' +
-                               '<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">' +
+                               '<html><head><meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">' +
                                '<title>' + ThreadItem.Title + '</title>' +
                                '<link rel="stylesheet" href="' + GikoSys.GetStyleSheetDir + GikoSys.Setting.CSSFileName + '" type="text/css">' +
                                '<title>' + ThreadItem.Title + '</title>' +
                                '<link rel="stylesheet" href="' + GikoSys.GetStyleSheetDir + GikoSys.Setting.CSSFileName + '" type="text/css">' +
-                               '<style type="text/css">body {' + UserOptionalStyle + '}</style>' +
-                               '</head><body>' +
-                               '<div class="title">' + ThreadItem.Title + '</div>';
-
-                               for i := 0 to High( Res ) do
-                               begin
-                                       html := html +
-                                               '<div class="header"><span class="no">' + IntToStr( i + 1 ) + '</span>' +
-                                               '<span class="name_label"> \96¼\91O\81F </span>' +
-                                               '<a class="name_mail" href="mailto:' + Res[i].FMailTo + '">' +
-                                               '<b>' + Res[i].FName + '</b></a><span class="mail"> [' + Res[i].FMailTo + ']</span>' +
-                                               '<span class="date_label"> \93\8a\8de\93ú\81F</span>' +
-                                               '<span class="date"> ' + Res[i].FDateTime+ '</span></div>' +
-                                               '<div class="mes">' + Res[i].FBody + ' </div>';
-                               end;
-
-                               html := html + '</body></html>';
+                               '<style type="text/css">body {' + GetPreviewUserStyle + '}</style>' +
+                               '</head><body><div class="title">' + ThreadItem.Title + '</div>';
+
+                       html := html + CreatePreviewBody(Res) + '</body></html>';
                end;
 
                try
                end;
 
                try
@@ -1496,7 +1659,57 @@ begin
        end;
 
 end;
        end;
 
 end;
+function TOptionDialog.CreatePreviewBody(Res: array of TResRec): string;
+var
+       i : Integer;
+begin
+       Result := '';
+       for i := 0 to High( Res ) do
+       begin
+               Result := Result +
+                       '<div class="header"><span class="no">' + IntToStr( i + 1 ) + '</span>' +
+                       '<span class="name_label"> \96¼\91O\81F </span>' +
+                       '<a class="name_mail" href="mailto:' + Res[i].FMailTo + '">' +
+                       '<b>' + Res[i].FName + '</b></a><span class="mail"> [' + Res[i].FMailTo + ']</span>' +
+                       '<span class="date_label"> \93\8a\8de\93ú\81F</span>' +
+                       '<span class="date"> ' + Res[i].FDateTime+ '</span></div>' +
+                       '<div class="mes">' + Res[i].FBody + ' </div>';
+       end;
+end;
+
+function TOptionDialog.GetPreviewUserStyle(): string;
+var
+       i : Integer;
+
+begin
+       Result := '';
+       // \83t\83H\83\93\83g\82â\83T\83C\83Y\82Ì\90Ý\92è
+       if CSSFontCheckBox.Checked then begin
+               i := ColorToRGB( FCSSFont.Color );
+               i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16);
 
 
+               Result := Result +
+                       'font-family:"' + FCSSFont.Name + '";' +
+                       'font-size:' + IntToStr( FCSSFont.Size ) + 'pt;' +
+                       'color:#' + IntToHex( i, 6 ) + ';';
+               if fsBold in FCSSFont.Style then
+                       Result := Result + 'font-weight:bold;'
+               else
+                       Result := Result + 'font-weight:normal;';
+               if fsItalic in FCSSFont.Style then
+                       Result := Result + 'font-style:italic;'
+               else
+                       Result := Result + 'font-style:normal;';
+       end;
+       if CSSBackColorCheckBox.Checked then begin
+               i := ColorToRGB( FCSSBackColor );
+               i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16);
+
+               Result := Result +
+                       'background-color:#' + IntToHex( i, 6 ) + ';';
+       end;
+
+end;
 procedure TOptionDialog.CSSListViewChange(Sender: TObject; Item: TListItem;
        Change: TItemChange);
 begin
 procedure TOptionDialog.CSSListViewChange(Sender: TObject; Item: TListItem;
        Change: TItemChange);
 begin
@@ -1520,6 +1733,7 @@ end;
 procedure TOptionDialog.OddResNumCheckBoxClick(Sender: TObject);
 begin
        OddResNumColorBox.Enabled := OddResNumCheckBox.Checked;
 procedure TOptionDialog.OddResNumCheckBoxClick(Sender: TObject);
 begin
        OddResNumColorBox.Enabled := OddResNumCheckBox.Checked;
+       UnFocusedBoldCheckBox.Enabled := OddResNumCheckBox.Checked;
 end;
 
 procedure TOptionDialog.ResRangeHoldCheckBoxClick(Sender: TObject);
 end;
 
 procedure TOptionDialog.ResRangeHoldCheckBoxClick(Sender: TObject);
@@ -1527,5 +1741,78 @@ begin
        ResRangeHoldComboBox.Enabled := ResRangeHoldCheckBox.Checked;
 end;
 
        ResRangeHoldComboBox.Enabled := ResRangeHoldCheckBox.Checked;
 end;
 
+procedure TOptionDialog.CroutOptionClick(Sender: TObject);
+var
+       KuroutOption: TKuroutOption;
+begin
+       KuroutOption := TKuroutOption.Create(Self);
+       try
+               KuroutOption.ShowModal;
+       finally
+               KuroutOption.Release;
+       end;
+end;
+
+procedure TOptionDialog.MaxRecordCountEditExit(Sender: TObject);
+begin
+       if not GikoSys.IsNumeric(MaxRecordCountEdit.Text) then
+               MaxRecordCountEdit.Text := '100'
+       else if StrToIntDef(MaxRecordCountEdit.Text, 100) <= 0 then
+        MaxRecordCountEdit.Text := '1';
+end;
+
+procedure TOptionDialog.BoukenDelButtonClick(Sender: TObject);
+begin
+    if ( BoukenComboBox.Items.IndexOf( BoukenComboBox.Text ) <> -1 ) then begin
+        if MsgBox(Self.Handle, BoukenComboBox.Text + ' \82ð\8dí\8f\9c\82µ\82Ü\82·\81B'#13#10 +
+            '\8dí\8f\9c\82·\82é\82Æ\95\9c\8c³\82Å\82«\82Ü\82¹\82ñ\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H', '\94E\96@\92\9f\81@\83h\83\81\83C\83\93\8dí\8f\9c', MB_YESNO or MB_ICONQUESTION) = IDYES then begin
+            GikoSys.DelBoukenCookie(BoukenComboBox.Text);
+            GikoSys.Setting.WriteBoukenSettingFile;
+            BoukenComboBox.Items.Delete(BoukenComboBox.ItemIndex);
+            if ( BoukenComboBox.Items.Count = 0 ) then begin
+                 BoukenComboBox.Text := '';
+            end;
+            BoukenComboBox.OnChange(nil);
+        end
+    end else begin
+        BoukenComboBox.Text := '';
+    end;
+end;
+
+procedure TOptionDialog.BoukenComboBoxChange(Sender: TObject);
+begin
+    BoukenEdit.Text := GikoSys.GetBoukenCookie('http://*' +BoukenComboBox.Text);
+end;
+
+procedure TOptionDialog.BoukenModButtonClick(Sender: TObject);
+var
+    DomainList : TStringList;
+    i : Integer;
+    s : String;
+begin
+    if ( Length(BoukenComboBox.Text) > 0 ) then begin
+        s := BoukenComboBox.Text;
+        GikoSys.SetBoukenCookie(BoukenEdit.Text, s);
+        GikoSys.Setting.WriteBoukenSettingFile;
+        // \96`\8c¯\82Ì\8f\91\83h\83\81\83C\83\93\88ê\97\97\8eæ\93¾
+        BoukenComboBox.Text := '';
+        BoukenComboBox.Items.Clear;
+        DomainList := TStringList.Create;
+        GikoSys.GetBoukenDomain(DomainList);
+        for i := 0 to DomainList.Count - 1 do begin
+            BoukenComboBox.Items.Add( DomainList[i] ) ;
+        end;
+        DomainList.Free;
+        BoukenComboBox.ItemIndex := 0;
+        for i := 0 to BoukenComboBox.Items.Count - 1 do begin
+            if ( BoukenComboBox.Items[i] = s) then begin
+                BoukenComboBox.ItemIndex := i;
+                Break;
+            end;
+        end;
+        BoukenComboBox.OnChange(nil);
+    end;
+end;
+
 end.
 
 end.