OSDN Git Service

1.60.2.794
[gikonavigoeson/gikonavi.git] / GikoDataModule.pas
index dbbabe9..30456e9 100644 (file)
@@ -4,300 +4,532 @@ interface
 
 uses
   SysUtils, Classes, ExtActns, StdActns, ActnList, ImgList, Controls,
-  ComCtrls;
+{$IF Defined(DELPRO) }
+       SHDocVw,
+       MSHTML,
+{$ELSE}
+       SHDocVw_TLB,
+       MSHTML_TLB,
+{$IFEND}
+  ComCtrls, BrowserRecord, Graphics, Messages, Setting, Dialogs,
+  ActiveX, GikoSystem, MoveHistoryItem, HistoryList;
+
+const
+       CAPTION_NAME: string = '\83M\83R\83i\83r';
+       USER_SETLINKBAR                                 = WM_USER + 2003;
+
+       ITEM_ICON_SORT1                                 = 12;           //!< \83\\81[\83g\83A\83C\83R\83\93
+       ITEM_ICON_SORT2                                 = 13;           //!< \83\\81[\83g\83A\83C\83R\83\93
+
+       //\83c\81[\83\8b\83o\81[\83A\83C\83R\83\93
+       TOOL_ICON_HEIGHT_MAX            = 16;           //!< \8d\82\82³\8dÅ\91å\83A\83C\83R\83\93
+       TOOL_ICON_HEIGHT_MIN            = 17;           //!< \8d\82\82³\8dÅ\8f¬\83A\83C\83R\83\93
+       TOOL_ICON_HEIGHT_NORMAL = 18;           //!< \8d\82\82³\95W\8f\80\83A\83C\83R\83\93
+       TOOL_ICON_WIDTH_MAX             = 19;           //!< \95\9d\8dÅ\91å\83A\83C\83R\83\93
+       TOOL_ICON_WIDTH_MIN             = 20;           //!< \95\9d\8dÅ\8f¬\83A\83C\83R\83\93
+       TOOL_ICON_WIDTH_NORMAL  = 21;           //!< \95\9d\95W\8f\80\83A\83C\83R\83\93
+
+       TOOL_ICON_FAV_FOLDER            = 30;           //!< \82¨\8bC\82É\93ü\82è\83t\83H\83\8b\83_\83A\83C\83R\83\93
+       TOOL_ICON_FAV_BOARD                     = 31;           //!< \82¨\8bC\82É\93ü\82è\94Â\83A\83C\83R\83\93
+       TOOL_ICON_FAV_THREAD            = 32;           //!< \82¨\8bC\82É\93ü\82è\83X\83\8c\83A\83C\83R\83\93
+
+       //! HTTP
+       PROTOCOL_HTTP : string = 'http://';
+       //! \83M\83R\83i\83r\83T\83C\83g\82ÌURL
+       URL_GIKONAVI: string = 'gikonavi.sourceforge.jp/';
+       //! Monazilla\83T\83C\83g\82ÌURL
+       URL_MONAZILLA: string = 'www.monazilla.org/';
+       //! 2\82¿\82á\82ñ\82Ë\82é\82ÌURL
+       URL_2ch: string = 'www.2ch.net/';
+       //! \83M\83R\83i\83rWiki\82ÌURL
+       URL_Wiki: string = 'sourceforge.jp/projects/gikonavi/wiki/FAQ';
+
+       SELECTCOMBOBOX_NAME: string = ''; // '\83X\83\8c\83b\83h\8di\8d\9e\8c\9f\8dõ';
+       SELECTCOMBOBOX_COLOR: TColor = clWindow;
+
 
 type
+
   TGikoDM = class(TDataModule)
-    GikoFormActionList: TActionList;
-    OnlyAHundredResAction: TAction;
-    OnlyKokoResAction: TAction;
-    LoginAction: TAction;
-    NewBoardAction: TAction;
-    LogDeleteAction: TAction;
-    KidokuAction: TAction;
-    StdToolBarVisibleAction: TAction;
-    AddressBarVisibleAction: TAction;
-    LinkBarVisibleAction: TAction;
+       GikoFormActionList: TActionList;
+       OnlyAHundredResAction: TAction;
+       OnlyKokoResAction: TAction;
+       LoginAction: TAction;
+       NewBoardAction: TAction;
+       LogDeleteAction: TAction;
+       KidokuAction: TAction;
+       StdToolBarVisibleAction: TAction;
+       AddressBarVisibleAction: TAction;
+       LinkBarVisibleAction: TAction;
        ListToolBarVisibleAction: TAction;
-    SearchAction: TAction;
-    GikoNaviWebPageAction: TAction;
-    MonazillaWebPageAction: TAction;
-    BBS2chWebPageAction: TAction;
-    GikoFolderOpenAction: TAction;
-    AboutAction: TAction;
-    SelectTextClearAction: TAction;
-    NameTextClearAction: TAction;
-    MailTextClearAction: TAction;
-    ExitAction: TAction;
-    ListNameBarVisibleAction: TAction;
-    BrowserToolBarVisibleAction: TAction;
-    BrowserNameBarVisibleAction: TAction;
-    MsgBarVisibleAction: TAction;
-    MsgBarCloseAction: TAction;
-    StatusBarVisibleAction: TAction;
-    CabinetBBSAction: TAction;
-    CabinetHistoryAction: TAction;
-    OnlyNewResAction: TAction;
+       SearchAction: TAction;
+       GikoNaviWebPageAction: TAction;
+       MonazillaWebPageAction: TAction;
+       BBS2chWebPageAction: TAction;
+       GikoFolderOpenAction: TAction;
+       AboutAction: TAction;
+       SelectTextClearAction: TAction;
+       NameTextClearAction: TAction;
+       MailTextClearAction: TAction;
+       ExitAction: TAction;
+       ListNameBarVisibleAction: TAction;
+       BrowserToolBarVisibleAction: TAction;
+       BrowserNameBarVisibleAction: TAction;
+       MsgBarVisibleAction: TAction;
+       MsgBarCloseAction: TAction;
+       StatusBarVisibleAction: TAction;
+       CabinetBBSAction: TAction;
+       CabinetHistoryAction: TAction;
+       OnlyNewResAction: TAction;
        CabinetFavoriteAction: TAction;
-    CabinetVisibleAction: TAction;
-    ListNumberVisibleAction: TAction;
-    UpFolderAction: TAction;
-    CabinetCloseAction: TAction;
-    IconStyle: TAction;
-    LargeIconAction: TAction;
-    SmallIconAction: TAction;
-    ListIconAction: TAction;
-    DetailIconAction: TAction;
-    MidokuAction: TAction;
-    AllSelectAction: TAction;
-    AllItemAction: TAction;
-    LogItemAction: TAction;
-    NewItemAction: TAction;
-    ThreadRangeAction: TAction;
-    SelectItemAction: TAction;
-    StopAction: TAction;
-    OptionAction: TAction;
-    RoundAction: TAction;
+       CabinetVisibleAction: TAction;
+       ListNumberVisibleAction: TAction;
+       UpFolderAction: TAction;
+       CabinetCloseAction: TAction;
+       IconStyle: TAction;
+       LargeIconAction: TAction;
+       SmallIconAction: TAction;
+       ListIconAction: TAction;
+       DetailIconAction: TAction;
+       MidokuAction: TAction;
+       AllSelectAction: TAction;
+       AllItemAction: TAction;
+       LogItemAction: TAction;
+       NewItemAction: TAction;
+       ThreadRangeAction: TAction;
+       SelectItemAction: TAction;
+       StopAction: TAction;
+       OptionAction: TAction;
+       RoundAction: TAction;
        BrowserMaxAction: TAction;
-    BrowserMinAction: TAction;
-    ScrollTopAction: TAction;
-    ScrollLastAction: TAction;
-    ScrollNewAction: TAction;
-    ScrollKokoAction: TAction;
-    EditorAction: TAction;
-    IEAction: TAction;
-    ShowThreadAction: TAction;
-    ShowBoardAction: TAction;
-    URLCopyAction: TAction;
-    NameCopyAction: TAction;
-    NameURLCopyAction: TAction;
-    ItemReloadAction: TAction;
-    ThreadEditorAction: TAction;
-    BoardIEAction: TAction;
-    SelectItemURLCopyAction: TAction;
-    SelectItemNameCopyAction: TAction;
-    SelectItemNameURLCopyAction: TAction;
-    SelectListReloadAction: TAction;
+       BrowserMinAction: TAction;
+       ScrollTopAction: TAction;
+       ScrollLastAction: TAction;
+       ScrollNewAction: TAction;
+       ScrollKokoAction: TAction;
+       EditorAction: TAction;
+       IEAction: TAction;
+       ShowThreadAction: TAction;
+       ShowBoardAction: TAction;
+       URLCopyAction: TAction;
+       NameCopyAction: TAction;
+       NameURLCopyAction: TAction;
+       ItemReloadAction: TAction;
+       ThreadEditorAction: TAction;
+       BoardIEAction: TAction;
+       SelectItemURLCopyAction: TAction;
+       SelectItemNameCopyAction: TAction;
+       SelectItemNameURLCopyAction: TAction;
+       SelectListReloadAction: TAction;
        SelectThreadReloadAction: TAction;
-    BrowserTabCloseAction: TAction;
-    NotSelectTabCloseAction: TAction;
-    AllTabCloseAction: TAction;
-    KokomadeAction: TAction;
-    ZenbuAction: TAction;
-    KokoResAction: TAction;
-    TreeSelectBoradReload: TAction;
-    TreeSelectThreadReload: TAction;
-    TreeSelectURLCopy: TAction;
-    SelectReservAction: TAction;
-    SelectNewRoundName: TAction;
-    SelectDeleteRound: TAction;
-    KeySettingAction: TAction;
-    ArrangeAction: TAction;
-    ActiveLogDeleteAction: TAction;
-    TreeSelectNameURLCopy: TAction;
-    PaneInitAction: TAction;
-    LeftmostTabSelectAction: TAction;
-    LeftTabSelectAction: TAction;
+       BrowserTabCloseAction: TAction;
+       NotSelectTabCloseAction: TAction;
+       AllTabCloseAction: TAction;
+       KokomadeAction: TAction;
+       ZenbuAction: TAction;
+       KokoResAction: TAction;
+       TreeSelectBoradReload: TAction;
+       TreeSelectThreadReload: TAction;
+       TreeSelectURLCopy: TAction;
+       SelectReservAction: TAction;
+       SelectNewRoundName: TAction;
+       SelectDeleteRound: TAction;
+       KeySettingAction: TAction;
+       ArrangeAction: TAction;
+       ActiveLogDeleteAction: TAction;
+       TreeSelectNameURLCopy: TAction;
+       PaneInitAction: TAction;
+       LeftmostTabSelectAction: TAction;
+       LeftTabSelectAction: TAction;
        RightTabSelectAction: TAction;
-    RightmostTabSelectAction: TAction;
-    FavoriteAddAction: TAction;
-    BoardFavoriteAddAction: TAction;
-    ThreadFavoriteAddAction: TAction;
-    TreeSelectFavoriteAddAction: TAction;
-    FavoriteArrangeAction: TAction;
-    MoveToAction: TAction;
-    BrowserTabVisibleAction: TAction;
-    BrowserTabTopAction: TAction;
-    BrowserTabBottomAction: TAction;
-    BrowserTabTabStyleAction: TAction;
-    BrowserTabButtonStyleAction: TAction;
-    BrowserTabFlatStyleAction: TAction;
-    GikoHelpAction: TAction;
-    KotehanAction: TAction;
-    ToolBarSettingAction: TAction;
-    SelectResAction: TAction;
-    AllResAction: TAction;
-    EditNGAction: TAction;
+       RightmostTabSelectAction: TAction;
+       FavoriteAddAction: TAction;
+       BoardFavoriteAddAction: TAction;
+       ThreadFavoriteAddAction: TAction;
+       TreeSelectFavoriteAddAction: TAction;
+       FavoriteArrangeAction: TAction;
+       MoveToAction: TAction;
+       BrowserTabVisibleAction: TAction;
+       BrowserTabTopAction: TAction;
+       BrowserTabBottomAction: TAction;
+       BrowserTabTabStyleAction: TAction;
+       BrowserTabButtonStyleAction: TAction;
+       BrowserTabFlatStyleAction: TAction;
+       GikoHelpAction: TAction;
+       KotehanAction: TAction;
+       ToolBarSettingAction: TAction;
+       SelectResAction: TAction;
+       AllResAction: TAction;
+       EditNGAction: TAction;
        ReloadAction: TAction;
-    GoFowardAction: TAction;
-    GoBackAction: TAction;
-    TreeSelectSearchBoardName: TAction;
-    FavoriteTreeViewRenameAction: TAction;
-    FavoriteTreeViewNewFolderAction: TAction;
-    FavoriteTreeViewDeleteAction: TAction;
-    FavoriteTreeViewBrowseFolderAction: TAction;
-    FavoriteTreeViewReloadAction: TAction;
-    FavoriteTreeViewURLCopyAction: TAction;
-    FavoriteTreeViewNameCopyAction: TAction;
-    FavoriteTreeViewNameURLCopyAction: TAction;
-    FavoriteTreeViewLogDeleteAction: TAction;
-    ResRangeAction: TAction;
-    ExportFavoriteFile: TFileSaveAs;
-    FavoriteTreeViewBrowseBoardAction: TAction;
-    FavoriteTreeViewBrowseThreadAction: TAction;
-    UpBoardAction: TAction;
-    KoreCopy: TAction;
-    TreeSelectNameCopy: TAction;
+       GoFowardAction: TAction;
+       GoBackAction: TAction;
+       TreeSelectSearchBoardName: TAction;
+       FavoriteTreeViewRenameAction: TAction;
+       FavoriteTreeViewNewFolderAction: TAction;
+       FavoriteTreeViewDeleteAction: TAction;
+       FavoriteTreeViewBrowseFolderAction: TAction;
+       FavoriteTreeViewReloadAction: TAction;
+       FavoriteTreeViewURLCopyAction: TAction;
+       FavoriteTreeViewNameCopyAction: TAction;
+       FavoriteTreeViewNameURLCopyAction: TAction;
+       FavoriteTreeViewLogDeleteAction: TAction;
+       ResRangeAction: TAction;
+       ExportFavoriteFile: TFileSaveAs;
+       FavoriteTreeViewBrowseBoardAction: TAction;
+       FavoriteTreeViewBrowseThreadAction: TAction;
+       UpBoardAction: TAction;
+       KoreCopy: TAction;
+       TreeSelectNameCopy: TAction;
        SetFocusForBrowserAction: TAction;
-    SetFocusForThreadListAction: TAction;
-    SetFocusForCabinetAction: TAction;
-    FileRun1: TFileRun;
-    ThreadlistMaxAndFocusAction: TAction;
-    BrowserMaxAndFocusAction: TAction;
-    SelectItemSaveForHTML: TAction;
-    SelectItemSaveForDat: TAction;
-    FileSaveAs1: TFileSaveAs;
-    LogFolderOpenAction: TAction;
-    TabsSaveAction: TAction;
-    TabsOpenAction: TAction;
-    BrowsBoradHeadAction: TAction;
-    TabAutoSaveAction: TAction;
-    TabAutoLoadAction: TAction;
-    JumpToNumOfResAction: TAction;
-    FavoriteTreeViewCollapseAction: TAction;
-    RightTabCloseAction: TAction;
-    LeftTabCloseAction: TAction;
-    SameIDResAnchorAction: TAction;
+       SetFocusForThreadListAction: TAction;
+       SetFocusForCabinetAction: TAction;
+       FileRun1: TFileRun;
+       ThreadlistMaxAndFocusAction: TAction;
+       BrowserMaxAndFocusAction: TAction;
+       SelectItemSaveForHTML: TAction;
+       SelectItemSaveForDat: TAction;
+       LogFolderOpenAction: TAction;
+       TabsSaveAction: TAction;
+       TabsOpenAction: TAction;
+       BrowsBoradHeadAction: TAction;
+       JumpToNumOfResAction: TAction;
+       FavoriteTreeViewCollapseAction: TAction;
+       RightTabCloseAction: TAction;
+       LeftTabCloseAction: TAction;
+       SameIDResAnchorAction: TAction;
        IndividualAbon1Action: TAction;
-    IndividualAbon0Action: TAction;
-    AntiIndividualAbonAction: TAction;
-    AntiIndividualAbonDlgAction: TAction;
-    IndividualAbonID1Action: TAction;
-    IndividualAbonID0Action: TAction;
-    MuteAction: TAction;
-    SortActiveColumnAction: TAction;
-    SortNextColumnAction: TAction;
-    SortPrevColumnAction: TAction;
-    BeLogInOutAction: TAction;
-    UnSelectedListViewAction: TAction;
-    WikiFAQWebPageAction: TAction;
-    ToobarImageList: TImageList;
-    procedure EditNGActionExecute(Sender: TObject);
-    procedure ReloadActionExecute(Sender: TObject);
-    procedure GoFowardActionExecute(Sender: TObject);
-    procedure GoBackActionExecute(Sender: TObject);
-    procedure MoveToActionExecute(Sender: TObject);
-    procedure FavoriteAddActionExecute(Sender: TObject);
+       IndividualAbon0Action: TAction;
+       AntiIndividualAbonAction: TAction;
+       AntiIndividualAbonDlgAction: TAction;
+       IndividualAbonID1Action: TAction;
+       IndividualAbonID0Action: TAction;
+       MuteAction: TAction;
+       SortActiveColumnAction: TAction;
+       SortNextColumnAction: TAction;
+       SortPrevColumnAction: TAction;
+       BeLogInOutAction: TAction;
+       UnSelectedListViewAction: TAction;
+       WikiFAQWebPageAction: TAction;
+       ToobarImageList: TImageList;
+    SaveDialog: TSaveDialog;
+    ThreadSizeCalcForFileAction: TAction;
+    SetInputAssistAction: TAction;
+    OpenFindDialogAction: TAction;
+    ArchiveItemAction: TAction;
+    LiveItemAction: TAction;
+    FavoriteTreeViewItemNameCopyAction: TAction;
+    CloseAllEditorAction: TAction;
+    PrevMoveHistory: TAction;
+    NextMoveHistory: TAction;
+    ClickActiveElementAction: TAction;
+    VKDownAction: TAction;
+    VKUpAction: TAction;
+    VKRightAction: TAction;
+    VKLeftAction: TAction;
+    StoredTaskTrayAction: TAction;
+    AllImageLinkToClipbordAction: TAction;
+    NewImageLinkToClipBoardAction: TAction;
+    SetForcusForAddresBarAction: TAction;
+    NewBoardSearchAction: TAction;
+    NGWordEditFormAction: TAction;
+    ScrollPageDownAction: TAction;
+    ScrollPageUpAction: TAction;
+    AllLinkToClipboardAction: TAction;
+    NewLinkToClipboardAction: TAction;
+    AddIDtoNGWord0Action: TAction;
+    AddIDtoNGWord1Action: TAction;
+    ExtractSameIDAction: TAction;
+    ShowTabListAction: TAction;
+    DereferenceResAction: TAction;
+    UpdateGikonaviAction: TAction;
+    konoURLPATHAction: TAction;
+    konoURLQueryAction: TAction;
+       procedure EditNGActionExecute(Sender: TObject);
+       procedure ReloadActionExecute(Sender: TObject);
+       procedure GoFowardActionExecute(Sender: TObject);
+       procedure GoBackActionExecute(Sender: TObject);
+       procedure MoveToActionExecute(Sender: TObject);
+       procedure FavoriteAddActionExecute(Sender: TObject);
        procedure FavoriteArrangeActionExecute(Sender: TObject);
-    procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);
-    procedure FavoriteTreeViewRenameActionExecute(Sender: TObject);
-    procedure FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
-    procedure FavoriteTreeViewDeleteActionExecute(Sender: TObject);
-    procedure FavoriteTreeViewBrowseFolderActionExecute(Sender: TObject);
-    procedure FavoriteTreeViewReloadActionExecute(Sender: TObject);
-    procedure FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
-    procedure FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
-    procedure FavoriteTreeViewNameURLCopyActionExecute(Sender: TObject);
-    procedure FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
-    procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);
-    procedure OnlyAHundredResActionExecute(Sender: TObject);
-    procedure OnlyKokoResActionExecute(Sender: TObject);
-    procedure OnlyNewResActionExecute(Sender: TObject);
-    procedure BrowserMaxActionExecute(Sender: TObject);
-    procedure BrowserMinActionExecute(Sender: TObject);
-    procedure ScrollTopActionExecute(Sender: TObject);
-    procedure ScrollLastActionExecute(Sender: TObject);
-    procedure ScrollNewActionExecute(Sender: TObject);
+       procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);
+       procedure FavoriteTreeViewRenameActionExecute(Sender: TObject);
+       procedure FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
+       procedure FavoriteTreeViewDeleteActionExecute(Sender: TObject);
+       procedure FavoriteTreeViewBrowseFolderActionExecute(Sender: TObject);
+       procedure FavoriteTreeViewReloadActionExecute(Sender: TObject);
+       procedure FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
+       procedure FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
+       procedure FavoriteTreeViewNameURLCopyActionExecute(Sender: TObject);
+       procedure FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
+       procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);
+       procedure OnlyAHundredResActionExecute(Sender: TObject);
+       procedure OnlyKokoResActionExecute(Sender: TObject);
+       procedure OnlyNewResActionExecute(Sender: TObject);
+       procedure BrowserMaxActionExecute(Sender: TObject);
+       procedure BrowserMinActionExecute(Sender: TObject);
+       procedure ScrollTopActionExecute(Sender: TObject);
+       procedure ScrollLastActionExecute(Sender: TObject);
+       procedure ScrollNewActionExecute(Sender: TObject);
        procedure ScrollKokoActionExecute(Sender: TObject);
-    procedure ScrollKokoActionUpdate(Sender: TObject);
-    procedure EditorActionExecute(Sender: TObject);
-    procedure IEActionExecute(Sender: TObject);
-    procedure ShowThreadActionExecute(Sender: TObject);
-    procedure ShowBoardActionExecute(Sender: TObject);
-    procedure URLCopyActionExecute(Sender: TObject);
-    procedure NameCopyActionExecute(Sender: TObject);
-    procedure NameURLCopyActionExecute(Sender: TObject);
-    procedure ItemReloadActionExecute(Sender: TObject);
-    procedure BrowserTabCloseActionExecute(Sender: TObject);
-    procedure BrowserTabCloseActionUpdate(Sender: TObject);
-    procedure NotSelectTabCloseActionExecute(Sender: TObject);
-    procedure NotSelectTabCloseActionUpdate(Sender: TObject);
-    procedure AllTabCloseActionExecute(Sender: TObject);
-    procedure ActiveLogDeleteActionExecute(Sender: TObject);
-    procedure LeftmostTabSelectActionExecute(Sender: TObject);
-    procedure LeftmostTabSelectActionUpdate(Sender: TObject);
-    procedure LeftTabSelectActionExecute(Sender: TObject);
-    procedure RightTabSelectActionExecute(Sender: TObject);
+       procedure ScrollKokoActionUpdate(Sender: TObject);
+       procedure EditorActionExecute(Sender: TObject);
+       procedure IEActionExecute(Sender: TObject);
+       procedure ShowThreadActionExecute(Sender: TObject);
+       procedure ShowBoardActionExecute(Sender: TObject);
+       procedure URLCopyActionExecute(Sender: TObject);
+       procedure NameCopyActionExecute(Sender: TObject);
+       procedure NameURLCopyActionExecute(Sender: TObject);
+       procedure ItemReloadActionExecute(Sender: TObject);
+       procedure BrowserTabCloseActionExecute(Sender: TObject);
+       procedure BrowserTabCloseActionUpdate(Sender: TObject);
+       procedure NotSelectTabCloseActionExecute(Sender: TObject);
+       procedure NotSelectTabCloseActionUpdate(Sender: TObject);
+       procedure AllTabCloseActionExecute(Sender: TObject);
+       procedure ActiveLogDeleteActionExecute(Sender: TObject);
+       procedure LeftmostTabSelectActionExecute(Sender: TObject);
+       procedure LeftmostTabSelectActionUpdate(Sender: TObject);
+       procedure LeftTabSelectActionExecute(Sender: TObject);
+       procedure RightTabSelectActionExecute(Sender: TObject);
        procedure RightTabSelectActionUpdate(Sender: TObject);
-    procedure RightmostTabSelectActionExecute(Sender: TObject);
-    procedure ThreadFavoriteAddActionExecute(Sender: TObject);
-    procedure ThreadFavoriteAddActionUpdate(Sender: TObject);
-    procedure SelectResActionExecute(Sender: TObject);
-    procedure AllResActionExecute(Sender: TObject);
-    procedure ResRangeActionExecute(Sender: TObject);
-    procedure UpBoardActionExecute(Sender: TObject);
-    procedure JumpToNumOfResActionExecute(Sender: TObject);
-    procedure RightTabCloseActionExecute(Sender: TObject);
-    procedure RightTabCloseActionUpdate(Sender: TObject);
-    procedure LeftTabCloseActionExecute(Sender: TObject);
-    procedure DataModuleCreate(Sender: TObject);
-    procedure SearchActionExecute(Sender: TObject);
-    procedure OptionActionExecute(Sender: TObject);
-    procedure RoundActionExecute(Sender: TObject);
-    procedure KeySettingActionExecute(Sender: TObject);
-    procedure KotehanActionExecute(Sender: TObject);
-    procedure ToolBarSettingActionExecute(Sender: TObject);
-    procedure MuteActionExecute(Sender: TObject);
-    procedure TreeSelectBoradReloadExecute(Sender: TObject);
-    procedure TreeSelectThreadReloadExecute(Sender: TObject);
-    procedure TreeSelectURLCopyExecute(Sender: TObject);
-    procedure TreeSelectNameURLCopyExecute(Sender: TObject);
-    procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);
-    procedure TreeSelectSearchBoardNameExecute(Sender: TObject);
-    procedure TreeSelectNameCopyExecute(Sender: TObject);
+       procedure RightmostTabSelectActionExecute(Sender: TObject);
+       procedure ThreadFavoriteAddActionExecute(Sender: TObject);
+       procedure ThreadFavoriteAddActionUpdate(Sender: TObject);
+       procedure SelectResActionExecute(Sender: TObject);
+       procedure AllResActionExecute(Sender: TObject);
+       procedure ResRangeActionExecute(Sender: TObject);
+       procedure UpBoardActionExecute(Sender: TObject);
+       procedure JumpToNumOfResActionExecute(Sender: TObject);
+       procedure RightTabCloseActionExecute(Sender: TObject);
+       procedure RightTabCloseActionUpdate(Sender: TObject);
+       procedure LeftTabCloseActionExecute(Sender: TObject);
+       procedure DataModuleCreate(Sender: TObject);
+       procedure SearchActionExecute(Sender: TObject);
+       procedure OptionActionExecute(Sender: TObject);
+       procedure RoundActionExecute(Sender: TObject);
+       procedure KeySettingActionExecute(Sender: TObject);
+       procedure KotehanActionExecute(Sender: TObject);
+       procedure ToolBarSettingActionExecute(Sender: TObject);
+       procedure MuteActionExecute(Sender: TObject);
+       procedure TreeSelectBoradReloadExecute(Sender: TObject);
+       procedure TreeSelectThreadReloadExecute(Sender: TObject);
+       procedure TreeSelectURLCopyExecute(Sender: TObject);
+       procedure TreeSelectNameURLCopyExecute(Sender: TObject);
+       procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);
+       procedure TreeSelectSearchBoardNameExecute(Sender: TObject);
+       procedure TreeSelectNameCopyExecute(Sender: TObject);
+       procedure LoginActionExecute(Sender: TObject);
+       procedure NewBoardActionExecute(Sender: TObject);
+       procedure LogDeleteActionExecute(Sender: TObject);
+       procedure LogDeleteActionUpdate(Sender: TObject);
+       procedure SelectTextClearActionExecute(Sender: TObject);
+       procedure NameTextClearActionExecute(Sender: TObject);
+       procedure MailTextClearActionExecute(Sender: TObject);
+       procedure ExitActionExecute(Sender: TObject);
+       procedure ExportFavoriteFileBeforeExecute(Sender: TObject);
+       procedure ExportFavoriteFileAccept(Sender: TObject);
+       procedure SelectItemSaveForHTMLExecute(Sender: TObject);
+       procedure SelectItemSaveForDatExecute(Sender: TObject);
+       procedure TabsSaveActionExecute(Sender: TObject);
+       procedure TabsOpenActionExecute(Sender: TObject);
+       procedure BeLogInOutActionExecute(Sender: TObject);
+       procedure BeLogInOutActionUpdate(Sender: TObject);
+       procedure KokomadeActionExecute(Sender: TObject);
+       procedure ZenbuActionExecute(Sender: TObject);
+       procedure KokoResActionExecute(Sender: TObject);
+       procedure KoreCopyExecute(Sender: TObject);
+       procedure SameIDResAnchorActionExecute(Sender: TObject);
+       procedure IndividualAbon1ActionExecute(Sender: TObject);
+       procedure IndividualAbon0ActionExecute(Sender: TObject);
+       procedure AntiIndividualAbonActionExecute(Sender: TObject);
+       procedure AntiIndividualAbonDlgActionExecute(Sender: TObject);
+       procedure IndividualAbonID1ActionExecute(Sender: TObject);
+       procedure IndividualAbonID0ActionExecute(Sender: TObject);
+       procedure GikoNaviWebPageActionExecute(Sender: TObject);
+       procedure MonazillaWebPageActionExecute(Sender: TObject);
+       procedure BBS2chWebPageActionExecute(Sender: TObject);
+       procedure GikoFolderOpenActionExecute(Sender: TObject);
+       procedure AboutActionExecute(Sender: TObject);
+       procedure GikoHelpActionExecute(Sender: TObject);
+       procedure WikiFAQWebPageActionExecute(Sender: TObject);
+       procedure ListNumberVisibleActionExecute(Sender: TObject);
+       procedure UpFolderActionExecute(Sender: TObject);
+       procedure UpFolderActionUpdate(Sender: TObject);
+       procedure IconStyleExecute(Sender: TObject);
+       procedure AllItemActionExecute(Sender: TObject);
+       procedure LogItemActionExecute(Sender: TObject);
+       procedure NewItemActionExecute(Sender: TObject);
+       procedure ThreadRangeActionExecute(Sender: TObject);
+       procedure SelectItemActionExecute(Sender: TObject);
+       procedure ThreadEditorActionExecute(Sender: TObject);
+       procedure BoardIEActionExecute(Sender: TObject);
+       procedure SelectItemURLCopyActionExecute(Sender: TObject);
+       procedure SelectItemURLCopyActionUpdate(Sender: TObject);
+       procedure SelectItemNameCopyActionExecute(Sender: TObject);
+       procedure SelectItemNameCopyActionUpdate(Sender: TObject);
+       procedure SelectItemNameURLCopyActionExecute(Sender: TObject);
+       procedure SelectListReloadActionExecute(Sender: TObject);
+       procedure SelectListReloadActionUpdate(Sender: TObject);
+       procedure SelectThreadReloadActionExecute(Sender: TObject);
+       procedure SelectThreadReloadActionUpdate(Sender: TObject);
+       procedure SelectReservActionExecute(Sender: TObject);
+       procedure SelectReservActionUpdate(Sender: TObject);
+       procedure SelectNewRoundNameExecute(Sender: TObject);
+       procedure SelectDeleteRoundExecute(Sender: TObject);
+       procedure BoardFavoriteAddActionExecute(Sender: TObject);
+       procedure BoardFavoriteAddActionUpdate(Sender: TObject);
+       procedure LogFolderOpenActionExecute(Sender: TObject);
+       procedure LogFolderOpenActionUpdate(Sender: TObject);
+       procedure BrowsBoradHeadActionExecute(Sender: TObject);
+       procedure SortActiveColumnActionExecute(Sender: TObject);
+       procedure SortNextColumnActionExecute(Sender: TObject);
+       procedure SortPrevColumnActionExecute(Sender: TObject);
+       procedure StdToolBarVisibleActionExecute(Sender: TObject);
+       procedure AddressBarVisibleActionExecute(Sender: TObject);
+       procedure LinkBarVisibleActionExecute(Sender: TObject);
+       procedure ListToolBarVisibleActionExecute(Sender: TObject);
+       procedure ListNameBarVisibleActionExecute(Sender: TObject);
+       procedure BrowserToolBarVisibleActionExecute(Sender: TObject);
+       procedure BrowserNameBarVisibleActionExecute(Sender: TObject);
+       procedure MsgBarVisibleActionExecute(Sender: TObject);
+       procedure MsgBarCloseActionExecute(Sender: TObject);
+       procedure StatusBarVisibleActionExecute(Sender: TObject);
+       procedure CabinetBBSActionExecute(Sender: TObject);
+       procedure CabinetHistoryActionExecute(Sender: TObject);
+       procedure CabinetFavoriteActionExecute(Sender: TObject);
+       procedure CabinetVisibleActionExecute(Sender: TObject);
+       procedure CabinetCloseActionExecute(Sender: TObject);
+       procedure LargeIconActionExecute(Sender: TObject);
+       procedure SmallIconActionExecute(Sender: TObject);
+       procedure ListIconActionExecute(Sender: TObject);
+       procedure DetailIconActionExecute(Sender: TObject);
+       procedure StopActionExecute(Sender: TObject);
+       procedure ArrangeActionExecute(Sender: TObject);
+       procedure PaneInitActionExecute(Sender: TObject);
+       procedure BrowserTabVisibleActionExecute(Sender: TObject);
+       procedure BrowserTabTopActionExecute(Sender: TObject);
+       procedure BrowserTabBottomActionExecute(Sender: TObject);
+       procedure BrowserTabTabStyleActionExecute(Sender: TObject);
+       procedure BrowserTabButtonStyleActionExecute(Sender: TObject);
+       procedure BrowserTabFlatStyleActionExecute(Sender: TObject);
+       procedure SetFocusForBrowserActionExecute(Sender: TObject);
+       procedure SetFocusForBrowserActionUpdate(Sender: TObject);
+       procedure SetFocusForThreadListActionExecute(Sender: TObject);
+       procedure SetFocusForCabinetActionExecute(Sender: TObject);
+       procedure SetFocusForCabinetActionUpdate(Sender: TObject);
+       procedure ThreadlistMaxAndFocusActionExecute(Sender: TObject);
+       procedure BrowserMaxAndFocusActionExecute(Sender: TObject);
+       procedure UnSelectedListViewActionExecute(Sender: TObject);
+       procedure KidokuActionExecute(Sender: TObject);
+       procedure MidokuActionExecute(Sender: TObject);
+       procedure AllSelectActionExecute(Sender: TObject);
+       procedure AllSelectActionUpdate(Sender: TObject);
+    procedure ThreadSizeCalcForFileActionExecute(Sender: TObject);
+    procedure SetInputAssistActionExecute(Sender: TObject);
+    procedure OpenFindDialogActionExecute(Sender: TObject);
+    procedure ArchiveItemActionExecute(Sender: TObject);
+    procedure LiveItemActionExecute(Sender: TObject);
+    procedure FavoriteTreeViewItemNameCopyActionExecute(Sender: TObject);
+    procedure CloseAllEditorActionExecute(Sender: TObject);
+    procedure CloseAllEditorActionUpdate(Sender: TObject);
+    procedure PrevMoveHistoryUpdate(Sender: TObject);
+    procedure PrevMoveHistoryExecute(Sender: TObject);
+    procedure NextMoveHistoryUpdate(Sender: TObject);
+    procedure NextMoveHistoryExecute(Sender: TObject);
+    procedure ClickActiveElementActionExecute(Sender: TObject);
+    procedure VKDownActionExecute(Sender: TObject);
+    procedure VKUpActionExecute(Sender: TObject);
+    procedure VKRightActionExecute(Sender: TObject);
+    procedure VKLeftActionExecute(Sender: TObject);
+    procedure StoredTaskTrayActionExecute(Sender: TObject);
+    procedure LeftTabSelectActionUpdate(Sender: TObject);
+    procedure RightmostTabSelectActionUpdate(Sender: TObject);
+    procedure NewImageLinkToClipBoardActionExecute(Sender: TObject);
+    procedure AllImageLinkToClipbordActionExecute(Sender: TObject);
+    procedure SetForcusForAddresBarActionExecute(Sender: TObject);
+    procedure NewBoardSearchActionExecute(Sender: TObject);
+    procedure ScrollPageDownActionExecute(Sender: TObject);
+    procedure ScrollPageUpActionExecute(Sender: TObject);
+    procedure AllLinkToClipboardActionExecute(Sender: TObject);
+    procedure NewLinkToClipboardActionExecute(Sender: TObject);
+    procedure AddIDtoNGWord0ActionExecute(Sender: TObject);
+    procedure AddIDtoNGWord1ActionExecute(Sender: TObject);
+    procedure ExtractSameIDActionExecute(Sender: TObject);
+    procedure ShowTabListActionExecute(Sender: TObject);
+    procedure DereferenceResActionExecute(Sender: TObject);
+    procedure UpdateGikonaviActionExecute(Sender: TObject);
+    procedure konoURLPATHActionExecute(Sender: TObject);
+    procedure konoURLQueryActionExecute(Sender: TObject);
+    procedure konoURLQueryActionUpdate(Sender: TObject);
   private
        { Private \90é\8c¾ }
+       procedure ClearResFilter;
+       procedure SetResRange(range: Integer);
+       procedure SetThreadAreaHorNormal;
+       procedure SetThreadAreaHorizontal(gls : TGikoListState);
+       procedure SetThreadAreaVerNormal;
+       procedure SetThreadAreaVertical(gls : TGikoListState);
+       procedure SetThreadReadProperty(read: Boolean);
+       procedure SelectThreadSaveToFile(dat: Boolean);
+       function GetSortProperties(List: TObject;var vSortOrder: Boolean): Boolean;
+       procedure RecalcThreadSize(limit : Integer);
+       procedure ClearSelectComboBox;
+    procedure ClearMailAllEditor();
+    procedure ClearNameTextAllEditor();
+    procedure MoveURLWithHistory(URL : String; KeyMask: Boolean = False);
+    procedure BackToHistory(item: TMoveHistoryItem);
+    function GetActiveThreadLinks : IHTMLElementCollection;
+    procedure GetLinkURLs(links : IHTMLElementCollection;
+        URLs : TStringList; const Start: Integer; Exts : TStringList);
   public
        { Public \90é\8c¾ }
+       procedure RepaintStatusBar;
+    function EditorFormExists(): boolean;
+    procedure GetTabURLs(AStringList: TStringList);
+    procedure OpenURLs(AStringList: TStringList);
   published
        { Published \90é\8c¾ }
-       //TAction\82ÅGetActiveContent\82ªnil\88È\8aO\82Å\97L\8cø\82É\82È\82é
+       //TAction\82ÅGetActiveContent\82ªnil\88È\8aO\82Å\97L\8cø\82É\82È\82é
        procedure DependActiveCntentActionUpdate(Sender: TObject);
-       //TAction\82ÅGetActiveContent\82ªnil\88È\8aO\82©\82Â\83\8d\83O\82ð\8e\9d\82Á\82Ä\82¢\82é\82Æ\97L\8cø\82É\82È\82é
+       //TAction\82ÅGetActiveContent\82ªnil\88È\8aO\82©\82Â\83\8d\83O\82ð\8e\9d\82Á\82Ä\82¢\82é\82Æ\97L\8cø\82É\82È\82é
        procedure DependActiveCntentLogActionUpdate(Sender: TObject);
-       //TAction\82ÅActiveList\82ªTBoard\82Å\97L\8cø\82É\82È\82é
+       //! TAction\82ÅActiveList\82ªTBoard(\94ñ\93Á\8eê\94Â)\82Å\97L\8cø\82É\82È\82é
        procedure DependActiveListTBoardActionUpdate(Sender: TObject);
+       //! TAction\82ÅActiveList\82ªTBoard\82Å\97L\8cø\82É\82È\82é
+       procedure DependActiveListTBoardWithSpeciapActionUpdate(Sender: TObject);
   end;
 
 var
   GikoDM: TGikoDM;
 
+
 implementation
 
 uses
-       Windows, Math, Messages, Dialogs, Clipbrd, 
-       Giko, GikoSystem, GikoUtil, BoardGroup,
-       FavoriteArrange, Favorite, Setting, MojuUtils,
+       Windows, Math, Clipbrd,
+       Giko, GikoUtil, BoardGroup,
+       FavoriteArrange, Favorite, MojuUtils,
        Editor, ListSelect, Search, Option, Round,
        KeySetting, Gesture, Kotehan, ToolBarSetting,
-       ToolBarUtil;
-
+       ToolBarUtil, NewBoard, HTMLCreate, IndividualAbon,
+       GikoBayesian, About, ShellAPI,
+       RoundName, RoundData, Menus, ListViewUtils,
+       ThreadControl, GikoMessage, InputAssist,
+    DefaultFileManager, Forms, NewBoardURL, UpdateCheck;
 
 const
-       CAPTION_NAME: string = '\83M\83R\83i\83r';
-       USER_SETLINKBAR                                 = WM_USER + 2003;
-       //\83c\81[\83\8b\83o\81[\83A\83C\83R\83\93
-       TOOL_ICON_HEIGHT_MAX            = 16;           //\8d\82\82³\8dÅ\91å\83A\83C\83R\83\93
-       TOOL_ICON_HEIGHT_MIN            = 17;           //\8d\82\82³\8dÅ\8f¬\83A\83C\83R\83\93
-       TOOL_ICON_HEIGHT_NORMAL = 18;           //\8d\82\82³\95W\8f\80\83A\83C\83R\83\93
-       TOOL_ICON_WIDTH_MAX             = 19;           //\95\9d\8dÅ\91å\83A\83C\83R\83\93
-       TOOL_ICON_WIDTH_MIN             = 20;           //\95\9d\8dÅ\8f¬\83A\83C\83R\83\93
-       TOOL_ICON_WIDTH_NORMAL  = 21;           //\95\9d\95W\8f\80\83A\83C\83R\83\93
-
-       TOOL_ICON_FAV_FOLDER            = 30;           //\82¨\8bC\82É\93ü\82è\83t\83H\83\8b\83_\83A\83C\83R\83\93
-       TOOL_ICON_FAV_BOARD                     = 31;           //\82¨\8bC\82É\93ü\82è\94Â\83A\83C\83R\83\93
-       TOOL_ICON_FAV_THREAD            = 32;           //\82¨\8bC\82É\93ü\82è\83X\83\8c\83A\83C\83R\83\93
+       MSG_ERROR : string = '\83G\83\89\81[';
 
 {$R *.dfm}
 // *************************************************************************
-// TAction\82ÅGetActiveContent\82ªnil\88È\8aO\82Å\97L\8cø\82É\82È\82é
+//! TAction\82ÅGetActiveContent\82ªnil\88È\8aO\82Å\97L\8cø\82É\82È\82é
 // *************************************************************************
 procedure TGikoDM.DependActiveCntentActionUpdate(Sender: TObject);
 begin
        TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil);
 end;
 // *************************************************************************
-// TAction\82ÅGetActiveContent\82ªnil\88È\8aO\82©\82Â\83\8d\83O\82ð\8e\9d\82Á\82Ä\82¢\82é
+//! TAction\82ÅGetActiveContent\82ªnil\88È\8aO\82©\82Â\83\8d\83O\82ð\8e\9d\82Á\82Ä\82¢\82é
 // *************************************************************************
 procedure TGikoDM.DependActiveCntentLogActionUpdate(Sender: TObject);
 begin
@@ -305,14 +537,22 @@ begin
                                                                        and (GikoForm.GetActiveContent.IsLogFile);
 end;
 // *************************************************************************
-// TAction\82ÅActiveList\82ªTBoard\82Å\97L\8cø\82É\82È\82é
+//! TAction\82ÅActiveList\82ªTBoard(\94ñ\93Á\8eê\94Â)\82Å\97L\8cø\82É\82È\82é
 // *************************************************************************
 procedure TGikoDM.DependActiveListTBoardActionUpdate(Sender: TObject);
 begin
+       TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard) and
+        (GikoForm.GetActiveList <> BoardGroup.SpecialBoard);
+end;
+// *************************************************************************
+//! TAction\82ÅActiveList\82ªTBoard\82Å\97L\8cø\82É\82È\82é
+// *************************************************************************
+procedure TGikoDM.DependActiveListTBoardWithSpeciapActionUpdate(Sender: TObject);
+begin
        TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard);
 end;
 // *************************************************************************
-// NG\83\8f\81[\83h\95Ò\8fW
+//! NG\83\8f\81[\83h\95Ò\8fW
 // *************************************************************************
 procedure TGikoDM.EditNGActionExecute(Sender: TObject);
 begin
@@ -320,98 +560,90 @@ begin
        GikoSys.FAbon.EditNGwords;
 end;
 // *************************************************************************
-// NG\83\8f\81[\83h\93Ç\82Ý\8d\9e\82Ý\81i\8dÄ\93Ç\82Ý\8d\9e\82Ý\81j
+//! NG\83\8f\81[\83h\93Ç\82Ý\8d\9e\82Ý\81i\8dÄ\93Ç\82Ý\8d\9e\82Ý\81j
 // *************************************************************************
 procedure TGikoDM.ReloadActionExecute(Sender: TObject);
 begin
        //\83\8a\83\8d\81[\83h\82ð\8eÀ\8ds\81@\8e¸\94s\82µ\82½\82ç\83\81\83b\83Z\81[\83W\8fo\97Í
        if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin
-               MsgBox(GikoForm.Handle, 'NG\83\8f\81[\83h\83t\83@\83C\83\8b\82Ì\8dÄ\93Ç\82Ý\8d\9e\82Ý\82É\8e¸\94s\82µ\82Ü\82µ\82½', '\83G\83\89\81[', MB_OK or MB_ICONEXCLAMATION);
+               MsgBox(GikoForm.Handle, 'NG\83\8f\81[\83h\83t\83@\83C\83\8b\82Ì\8dÄ\93Ç\82Ý\8d\9e\82Ý\82É\8e¸\94s\82µ\82Ü\82µ\82½',
+                       MSG_ERROR, MB_OK or MB_ICONEXCLAMATION);
        end else begin
                //\91S\82Ä\82Ì\83^\83u\82É\8dÄ\95`\89æ\82ð\90Ý\92è
                GikoForm.RepaintAllTabsBrowser();
        end;
 end;
 // *************************************************************************
-// NG\83\8f\81[\83h\93Ç\82Ý\8d\9e\82Ý\81i\88ê\82Â\8cã\82ë\81j
+//! NG\83\8f\81[\83h\93Ç\82Ý\8d\9e\82Ý\81i\88ê\82Â\8cã\82ë\81j
 // *************************************************************************
 procedure TGikoDM.GoFowardActionExecute(Sender: TObject);
-var
-       s: string;
 begin
        //\88ê\82Â\8cã\82ë\82Ì\93Ç\82Ý\8d\9e\82Ý\81@\8e¸\94s\82µ\82½\82ç\83\81\83b\83Z\81[\83W\8fo\97Í
        if GikoSys.FAbon.GoBack =false then begin
-               MsgBox(GikoForm.Handle, '\88ê\82Â\8cã\82ë\82ÌNG\83\8f\81[\83h\83t\83@\83C\83\8b\82Ì\93Ç\82Ý\8d\9e\82Ý\82É\8e¸\94s\82µ\82Ü\82µ\82½', '\83G\83\89\81[', MB_OK or MB_ICONEXCLAMATION);
+               MsgBox(GikoForm.Handle, '\88ê\82Â\8cã\82ë\82ÌNG\83\8f\81[\83h\83t\83@\83C\83\8b\82Ì\93Ç\82Ý\8d\9e\82Ý\82É\8e¸\94s\82µ\82Ü\82µ\82½',
+                       MSG_ERROR, MB_OK or MB_ICONEXCLAMATION);
        end else begin
                //\83X\83e\81[\83^\83X\82É\95\\8e¦\82³\82ê\82éNG\83\8f\81[\83h\83t\83@\83C\83\8b\96¼\82ð\8dX\90V
-               s := GikoSys.FAbon.NGwordname;
-               GikoForm.StatusBar.Panels.Items[2].Text := s;
-               //\83X\83e\81[\83^\83X\82Ì\95\\8e¦\83T\83C\83Y\82Ì\83\8a\83T\83C\83Y
-               GikoForm.StatusBar.Panels[2].Width := Max(GikoForm.StatusBar.Canvas.TextWidth(s), 100);
-               GikoForm.StatusBarResize(Sender);
+               RepaintStatusBar;
                //\91S\82Ä\82Ì\83^\83u\82É\8dÄ\95`\89æ\82ð\90Ý\92è
                GikoForm.RepaintAllTabsBrowser();
        end;
 end;
 // *************************************************************************
-// NG\83\8f\81[\83h\93Ç\82Ý\8d\9e\82Ý\81i\88ê\82Â\91O\81j
+//! NG\83\8f\81[\83h\93Ç\82Ý\8d\9e\82Ý\81i\88ê\82Â\91O\81j
 // *************************************************************************
 procedure TGikoDM.GoBackActionExecute(Sender: TObject);
-var
-       s: string;
 begin
        //\88ê\82Â\8cã\82ë\82Ì\93Ç\82Ý\8d\9e\82Ý\81@\8e¸\94s\82µ\82½\82ç\83\81\83b\83Z\81[\83W\8fo\97Í
        if GikoSys.FAbon.GoForward =false then begin
-               MsgBox(GikoForm.Handle, '\88ê\82Â\91O\82ÌNG\83\8f\81[\83h\83t\83@\83C\83\8b\82Ì\93Ç\82Ý\8d\9e\82Ý\82É\8e¸\94s\82µ\82Ü\82µ\82½', '\83G\83\89\81[', MB_OK or MB_ICONEXCLAMATION);
+               MsgBox(GikoForm.Handle, '\88ê\82Â\91O\82ÌNG\83\8f\81[\83h\83t\83@\83C\83\8b\82Ì\93Ç\82Ý\8d\9e\82Ý\82É\8e¸\94s\82µ\82Ü\82µ\82½',
+                       MSG_ERROR, MB_OK or MB_ICONEXCLAMATION);
        end else begin
-        //\83X\83e\81[\83^\83X\82É\95\\8e¦\82³\82ê\82éNG\83\8f\81[\83h\83t\83@\83C\83\8b\96¼\82ð\8dX\90V
-               s := GikoSys.FAbon.NGwordname;
-               GikoForm.StatusBar.Panels.Items[2].Text := s;
-        //\83X\83e\81[\83^\83X\82Ì\95\\8e¦\83T\83C\83Y\82Ì\83\8a\83T\83C\83Y
-               GikoForm.StatusBar.Panels[2].Width := Max(GikoForm.StatusBar.Canvas.TextWidth(s), 100);
-               GikoForm.StatusBarResize(Sender);
-        //\91S\82Ä\82Ì\83^\83u\82É\8dÄ\95`\89æ\82ð\90Ý\92è
+               //\83X\83e\81[\83^\83X\82É\95\\8e¦\82³\82ê\82éNG\83\8f\81[\83h\83t\83@\83C\83\8b\96¼\82ð\8dX\90V
+               RepaintStatusBar;
+               //\91S\82Ä\82Ì\83^\83u\82É\8dÄ\95`\89æ\82ð\90Ý\92è
                GikoForm.RepaintAllTabsBrowser();
        end;
 end;
 // *************************************************************************
-// \83A\83h\83\8c\83X\83o\81[\82É\95\\8e¦\82µ\82Ä\82¢\82é\83A\83h\83\8c\83X\82Ö\88Ú\93®\82·\82é
+//! NG\83\8f\81[\83h\82ð\95Ï\8dX\82µ\82½\8cã\82Ì\83X\83e\81[\83^\83X\83o\81[\82Ì\8dX\90V\8f\88\97\9d
 // *************************************************************************
-procedure TGikoDM.MoveToActionExecute(Sender: TObject);
+procedure TGikoDM.RepaintStatusBar;
 var
-       URL: string;
-       idx: Integer;
+       s : String;
+begin
+       //\83X\83e\81[\83^\83X\82É\95\\8e¦\82³\82ê\82éNG\83\8f\81[\83h\83t\83@\83C\83\8b\96¼\82ð\8dX\90V
+       s := GikoSys.FAbon.NGwordname;
+       GikoForm.StatusBar.Panels.Items[GiKo.NGWORDNAME_PANEL].Text := s;
+       //\83X\83e\81[\83^\83X\82Ì\95\\8e¦\83T\83C\83Y\82Ì\83\8a\83T\83C\83Y
+       GikoForm.StatusBar.Panels[GiKo.NGWORDNAME_PANEL].Width
+               := Max(GikoForm.StatusBar.Canvas.TextWidth(s), 100);
+       GikoForm.StatusBarResize(nil);
+end;
+// *************************************************************************
+//! \83A\83h\83\8c\83X\83o\81[\82É\95\\8e¦\82µ\82Ä\82¢\82é\83A\83h\83\8c\83X\82Ö\88Ú\93®\82·\82é
+// *************************************************************************
+procedure TGikoDM.MoveToActionExecute(Sender: TObject);
 begin
        //\83A\83h\83\8c\83X\83R\83\93\83{\83{\83b\83N\83X\82©\82çURL\82ð\8eæ\93¾
-       URL := Trim(GikoForm.AddressComboBox.Text);
        //URL\82É\88Ú\93®
-       GikoForm.MoveToURL(URL);
-       //\88È\89º\81A\97\9a\97ð\82Ì\8f\88\97\9d
-       idx := GikoForm.AddressComboBox.Items.IndexOf(URL);
-       if idx = -1 then begin
-               GikoForm.AddressComboBox.Items.Insert(0, URL);
-               if GikoForm.AddressComboBox.Items.Count > GikoSys.Setting.AddressHistoryCount then
-                       GikoForm.AddressComboBox.Items.Delete(GikoForm.AddressComboBox.Items.Count - 1);
-       end else begin
-               GikoForm.AddressComboBox.Items.Delete(idx);
-               GikoForm.AddressComboBox.Items.Insert(0, URL);
-       end;
+    MoveURLWithHistory( Trim(GikoForm.AddressComboBox.Text) );
 end;
 // *************************************************************************
-// \82¨\8bC\82É\93ü\82è\82Ì\92Ç\89Á\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
+//! \82¨\8bC\82É\93ü\82è\82Ì\92Ç\89Á\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
 // *************************************************************************
 procedure TGikoDM.FavoriteAddActionExecute(Sender: TObject);
 begin
        GikoForm.ShowFavoriteAddDialog(GikoForm.GetActiveContent);
 end;
 // *************************************************************************
-// \82¨\8bC\82É\93ü\82è\82Ì\90®\97\9d\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
+//! \82¨\8bC\82É\93ü\82è\82Ì\90®\97\9d\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
 // *************************************************************************
 procedure TGikoDM.FavoriteArrangeActionExecute(Sender: TObject);
 var
        Dlg: TFavoriteArrangeDialog;
 begin
-       Dlg := TFavoriteArrangeDialog.Create(Self);
+       Dlg := TFavoriteArrangeDialog.Create(GikoForm);
        try
                Dlg.ShowModal;
        finally
@@ -421,7 +653,7 @@ begin
        PostMessage( GikoForm.Handle, USER_SETLINKBAR, 0, 0 );
 end;
 // *************************************************************************
-// \83c\83\8a\81[\82ð\91S\82Ä\95Â\82\82é
+//! \83c\83\8a\81[\82ð\91S\82Ä\95Â\82\82é
 // *************************************************************************
 procedure TGikoDM.FavoriteTreeViewCollapseActionExecute(Sender: TObject);
 var
@@ -439,7 +671,7 @@ begin
        end;
 end;
 // *************************************************************************
-// \82¨\8bC\82É\93ü\82è\82Ì\96¼\91O\82ð\95Ò\8fW\82·\82é
+//! \82¨\8bC\82É\93ü\82è\82Ì\96¼\91O\82ð\95Ò\8fW\82·\82é
 // *************************************************************************
 procedure TGikoDM.FavoriteTreeViewRenameActionExecute(Sender: TObject);
 var
@@ -463,11 +695,12 @@ begin
        end else begin
                GikoForm.ClickNode.Text := InputBox( '\96¼\91O\82Ì\95Ï\8dX', '\82¨\8bC\82É\93ü\82è\82Ì\90V\82µ\82¢\96¼\91O\82ð\93ü\97Í\82µ\82Ä\82­\82¾\82³\82¢', GikoForm.ClickNode.Text );
        end;
-
+       //\8dX\90V\82µ\82½\82±\82Æ\82ð\8b³\82¦\82é
+       FavoriteDM.Modified := true;
        GikoForm.SetLinkBar;
 end;
 // *************************************************************************
-// \90V\82µ\82­\82¨\8bC\82É\93ü\82è\82É\83t\83H\83\8b\83_\82ð\8dì\90¬\82·\82é
+//! \90V\82µ\82­\82¨\8bC\82É\93ü\82è\82É\83t\83H\83\8b\83_\82ð\8dì\90¬\82·\82é
 // *************************************************************************
 procedure TGikoDM.FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
 var
@@ -491,13 +724,15 @@ begin
        //                      FClickNode.Selected.Expanded := True;
                GikoForm.FavoriteTreeView.Selected := Node;
                GikoForm.ClickNode := Node;
+               //\8dX\90V\82µ\82½\82±\82Æ\82ð\8b³\82¦\82é
+               FavoriteDM.Modified := true;
                FavoriteTreeViewRenameAction.Execute;
        finally
        end;
 
 end;
 // *************************************************************************
-// \82±\82Ì\82¨\8bC\82É\93ü\82è\82ð\8dí\8f\9c\82·\82é
+//! \82±\82Ì\82¨\8bC\82É\93ü\82è\82ð\8dí\8f\9c\82·\82é
 // *************************************************************************
 procedure TGikoDM.FavoriteTreeViewDeleteActionExecute(Sender: TObject);
 const
@@ -521,12 +756,14 @@ begin
        end;
 
        GikoForm.ClickNode.Delete;
+       //\8dX\90V\82µ\82½\82±\82Æ\82ð\8b³\82¦\82é
+       FavoriteDM.Modified := true;
 
        GikoForm.SetLinkBar;
 
 end;
 // *************************************************************************
-// \82±\82Ì\83t\83H\83\8b\83_\82É\93ü\82Á\82Ä\82¢\82é\82¨\8bC\82É\93ü\82è\82ð\91S\82Ä\8aJ\82­
+//! \82±\82Ì\83t\83H\83\8b\83_\82É\93ü\82Á\82Ä\82¢\82é\82¨\8bC\82É\93ü\82è\82ð\91S\82Ä\8aJ\82­
 // *************************************************************************
 procedure TGikoDM.FavoriteTreeViewBrowseFolderActionExecute(
   Sender: TObject);
@@ -534,152 +771,77 @@ begin
        GikoForm.FavoriteBrowseFolder( GikoForm.ClickNode );
 end;
 // *************************************************************************
-// \91I\91ð\82³\82ê\82Ä\82¢\82é\82¨\8bC\82É\93ü\82è\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
+//! \91I\91ð\82³\82ê\82Ä\82¢\82é\82¨\8bC\82É\93ü\82è\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
 // *************************************************************************
 procedure TGikoDM.FavoriteTreeViewReloadActionExecute(Sender: TObject);
 var
-       ThreadItem: TThreadItem;
        FavThread: TFavoriteThreadItem;
-       Board: TBoard;
        FavBoard: TFavoriteBoardItem;
        shiftDown: Boolean;
 begin
-
-       if GikoForm.ClickNode = nil then Exit;
+       if (GikoForm.ClickNode = nil) then Exit;
 
        shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
 
        if TObject( GikoForm.ClickNode.Data ) is TFavoriteThreadItem then begin
                FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
-               ThreadItem := FavThread.Item;
-               if ThreadItem <> nil then
-                       GikoForm.DownloadContent(ThreadItem, shiftDown);
+               if FavThread.Item <> nil then
+                       GikoForm.DownloadContent(FavThread.Item, shiftDown);
        end else if TObject( GikoForm.ClickNode.Data ) is TFavoriteBoardItem then begin
                FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
-               Board := FavBoard.Item;
-               GikoForm.DownloadList(Board, shiftDown);
+               GikoForm.DownloadList(FavBoard.Item, shiftDown);
        end;
 
 end;
 // *************************************************************************
-// \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ÌURL\82ð\83R\83s\81[\82·\82é
+//\91I\91ð\82³\82ê\82Ä\82¢\82é\82¨\8bC\82É\93ü\82è\82ÌURL\82ð\83R\83s\81[\82·\82é
 // *************************************************************************
 procedure TGikoDM.FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
-var
-       FavThread       : TFavoriteThreadItem;
-       FavBoard        : TFavoriteBoardItem;
-       s                                       : string;
 begin
 
        if GikoForm.ClickNode = nil then Exit;
 
-       if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
-
-               FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
-               s := FavThread.URL + #13#10;
-               if s <> '' then
-                       Clipboard.AsText := s;
-
-       end else if (TObject(GikoForm.ClickNode.Data) is TFavoriteBoardItem) then begin
-
-               FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
-               s := FavBoard.URL + #13#10;
-               if s <> '' then
-                       Clipboard.AsText := s;
-
+       if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
+               Clipboard.AsText := TFavoriteItem( GikoForm.ClickNode.Data ).URL + #13#10;
        end;
 end;
 // *************************************************************************
-// \91I\91ð\82³\82ê\82Ä\82¢\82é\94Â\82Ì\96¼\91O\82ð\83R\83s\81[\82·\82é
+//\91I\91ð\82³\82ê\82Ä\82¢\82é\82¨\8bC\82É\93ü\82è\82Ì\96¼\91O\82ð\83R\83s\81[\82·\82é
 // *************************************************************************
 procedure TGikoDM.FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
-var
-       ThreadItem: TThreadItem;
-       FavThread: TFavoriteThreadItem;
-       Board: TBoard;
-       FavBoard: TFavoriteBoardItem;
-       s: string;
 begin
 
        if GikoForm.ClickNode = nil then Exit;
 
-       if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
-
-               FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
-               ThreadItem := FavThread.Item;
-
-               try
-                       s := ThreadItem.Title + #13#10;
-                       if s <> '' then
-                               Clipboard.AsText := s;
-               finally
-               end;
-
-       end else if (TObject(GikoForm.ClickNode.Data) is TFavoriteBoardItem) then begin
-
-               FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
-               Board := FavBoard.Item;
-               if Board <> nil then
-                       if not Board.IsThreadDatRead then
-                               GikoSys.ReadSubjectFile(Board);
-
-               try
-                       s := Board.Title + #13#10;
-                       if s <> '' then
-                               Clipboard.AsText := s;
-               finally
-               end;
+       if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
+               Clipboard.AsText :=
+                       TFavoriteItem(GikoForm.ClickNode.Data).GetItemTitle + #13#10;
+       end else begin
+               Clipboard.AsText :=
+                       GikoForm.ClickNode.Text + #13#10;
 
        end;
-
 end;
 // *************************************************************************
-// \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\96¼\91O\82ÆURL\82ð\83R\83s\81[\82·\82é
+//\91I\91ð\82³\82ê\82Ä\82¢\82é\82¨\8bC\82É\93ü\82è\82Ì\96¼\91O\82ÆURL\82ð\83R\83s\81[\82·\82é
 // *************************************************************************
 procedure TGikoDM.FavoriteTreeViewNameURLCopyActionExecute(
   Sender: TObject);
 var
-       ThreadItem: TThreadItem;
-       FavThread: TFavoriteThreadItem;
-       Board: TBoard;
-       FavBoard: TFavoriteBoardItem;
-       s: string;
+       favItem : TFavoriteItem;
 begin
 
        if GikoForm.ClickNode = nil then Exit;
 
-       if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
-
-               FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
-               ThreadItem := FavThread.Item;
-
-               try
-                       s := ThreadItem.Title + #13#10 + ThreadItem.URL + #13#10;
-                       if s <> '' then
-                               Clipboard.AsText := s;
-               finally
-               end;
-
-       end else if (TObject(GikoForm.ClickNode.Data) is TFavoriteBoardItem) then begin
-
-               FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
-               Board := FavBoard.Item;
-               if Board <> nil then
-                       if not Board.IsThreadDatRead then
-                               GikoSys.ReadSubjectFile(Board);
-
-               try
-                       s := Board.Title + #13#10 + Board.URL + #13#10;
-                       if s <> '' then
-                               Clipboard.AsText := s;
-               finally
-               end;
-
+       if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
+               favItem := TFavoriteItem(GikoForm.ClickNode.Data);
+               Clipboard.AsText := favItem.GetItemTitle  + #13#10 +
+                                                       favItem.URL + #13#10;
        end;
 
 end;
 // *************************************************************************
-// \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\8dí\8f\9c\82·\82é
+//\91I\91ð\82³\82ê\82Ä\82¢\82é\82¨\8bC\82É\93ü\82è\83X\83\8c\83b\83h\82ð\8dí\8f\9c\82·\82é
 // *************************************************************************
 procedure TGikoDM.FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
 const
@@ -713,7 +875,7 @@ begin
 
 end;
 // *************************************************************************
-// \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
+//! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
 // *************************************************************************
 procedure TGikoDM.FavoriteTreeViewBrowseThreadActionExecute(
   Sender: TObject);
@@ -732,41 +894,50 @@ begin
 
        end;
 end;
+//! \83\8c\83X\82Ì\8di\8d\9e\82Ý\83t\83B\83\8b\83^\81[\82ð\8bó\82É\82·\82é
+procedure TGikoDM.ClearResFilter;
+var
+       FilterList : TStringList;
+begin
+       // \83t\83B\83\8b\83^\95\8e\9a\97ñ\82ð\8bó\82É\82·\82é
+       FilterList := TStringList.Create;
+       try
+               GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
+               GikoSys.FSelectResFilter.Reverse := False;
+       finally
+               FilterList.Free;
+       end;
+       GikoForm.SelectResWord := '';
+end;
+// *************************************************************************
+//! \83\8c\83X\82Ì\95\\8e¦\94Í\88Í\82ð\90Ý\92è\82·\82é
+// *************************************************************************
+procedure TGikoDM.SetResRange(range: Integer);
+begin
+       if GikoSys.ResRange <> range then begin
+               GikoSys.ResRange        := range;
+               // \83t\83B\83\8b\83^\95\8e\9a\97ñ\82ð\8bó\82É\82·\82é
+               ClearResFilter;
+               GikoForm.RepaintAllTabsBrowser();
+       end;
+end;
 // *************************************************************************
-// \8dÅ\90V100\83\8c\83X\82Ì\82Ý\95\\8e¦
+//! \8dÅ\90V100\83\8c\83X\82Ì\82Ý\95\\8e¦
 // *************************************************************************
 procedure TGikoDM.OnlyAHundredResActionExecute(Sender: TObject);
-var
-       FilterList : TStringList;
 begin
        if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
                and (GikoForm.ActiveContent.Browser.Busy) then Exit;
 
        GikoForm.ResRangeMenuSelect     := 100;
        OnlyAHundredResAction.Checked   := True;
-
-       if GikoSys.ResRange <> 100 then begin
-               GikoSys.ResRange        := 100;
-
-               // \83t\83B\83\8b\83^\95\8e\9a\97ñ\82ð\8bó\82É\82·\82é
-               FilterList := TStringList.Create;
-               try
-                       GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
-                       GikoSys.FSelectResFilter.Reverse := False;
-               finally
-                       FilterList.Free;
-               end;
-
-               GikoForm.SelectResWord := '';
-               GikoForm.RepaintAllTabsBrowser();
-       end;
+       //\81@\95\\8e¦\94Í\88Í\82ð\90Ý\92è\82·\82é\81B\90Ý\92è\92l\82©\82ç\82Æ\82Á\82Ä\82­\82é\81B
+    SetResRange(GikoSys.Setting.ResRangeExCount);
 end;
 // *************************************************************************
-// \96¢\93Ç\83\8c\83X\82Ì\82Ý\95\\8e¦
+//! \96¢\93Ç\83\8c\83X\82Ì\82Ý\95\\8e¦
 // *************************************************************************
 procedure TGikoDM.OnlyKokoResActionExecute(Sender: TObject);
-var
-       FilterList : TStringList;
 begin
        if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
                and (GikoForm.ActiveContent.Browser.Busy) then Exit;
@@ -774,28 +945,13 @@ begin
        GikoForm.ResRangeMenuSelect     := Ord( grrKoko );
        OnlyKokoResAction.Checked       := True;
 
-       if GikoSys.ResRange <> Ord( grrKoko ) then begin
-               GikoSys.ResRange                                        := Ord( grrKoko );
-
-               // \83t\83B\83\8b\83^\95\8e\9a\97ñ\82ð\8bó\82É\82·\82é
-               FilterList := TStringList.Create;
-               try
-                       GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
-                       GikoSys.FSelectResFilter.Reverse := False;
-               finally
-                       FilterList.Free;
-               end;
-
-               GikoForm.SelectResWord := '';
-               GikoForm.RepaintAllTabsBrowser();
-       end;
+       //\81@\95\\8e¦\94Í\88Í\82ð\90Ý\92è\82·\82é
+       SetResRange(Ord( grrKoko ));
 end;
 // *************************************************************************
-// \90V\92\85\83\8c\83X\82Ì\82Ý\95\\8e¦
+//! \90V\92\85\83\8c\83X\82Ì\82Ý\95\\8e¦
 // *************************************************************************
 procedure TGikoDM.OnlyNewResActionExecute(Sender: TObject);
-var
-       FilterList : TStringList;
 begin
        if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
                and (GikoForm.ActiveContent.Browser.Busy) then Exit;
@@ -803,24 +959,72 @@ begin
        GikoForm.ResRangeMenuSelect     := Ord( grrNew );
        OnlyNewResAction.Checked        := True;
 
-       if GikoSys.ResRange <> Ord( grrNew ) then begin
-               GikoSys.ResRange                                        := Ord( grrNew );
-
-               // \83t\83B\83\8b\83^\95\8e\9a\97ñ\82ð\8bó\82É\82·\82é
-               FilterList := TStringList.Create;
-               try
-                       GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
-                       GikoSys.FSelectResFilter.Reverse := False;
-               finally
-                       FilterList.Free;
-               end;
-
-               GikoForm.SelectResWord := '';
-               GikoForm.RepaintAllTabsBrowser();
+       //\81@\95\\8e¦\94Í\88Í\82ð\90Ý\92è\82·\82é
+       SetResRange(Ord( grrNew ));
+end;
+// *************************************************************************
+//! \83X\83\8c\83b\83h\95\\8e¦\83G\83\8a\83A\92Ê\8fí\95\\8e¦\82É\82·\82é \92\8d)ListOrientation = gloHorizontal\81@
+// *************************************************************************
+procedure TGikoDM.SetThreadAreaHorNormal;
+begin
+       //\92Ê\8fí\95\\8e¦\82É\82·\82é
+       GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
+       BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
+       BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
+       GikoSys.Setting.ListWidthState := glsNormal;
+end;
+// *************************************************************************
+//! \83X\83\8c\83b\83h\95\\8e¦\83G\83\8a\83A\8dÅ\91å/\8dÅ\8f¬\95\\8e¦\82É\82·\82é \92\8d)ListOrientation = gloHorizontal\81@
+// *************************************************************************
+procedure TGikoDM.SetThreadAreaHorizontal(gls : TGikoListState);
+begin
+       if GikoSys.Setting.ListWidthState = glsNormal then
+               GikoForm.BrowserSizeWidth := GikoForm.ViewPanel.Width;
+       //\8dÅ\91å\95\\8e¦
+       if (gls = glsMax) then begin
+               GikoForm.ViewPanel.Width := 1;
+               BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
+               BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
+               GikoSys.Setting.ListWidthState := glsMax;
+       end else if (gls = glsMin) then begin
+               GikoForm.ViewPanel.Width := GikoForm.ThreadMainPanel.Width - 80;
+               BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
+               BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
+               GikoSys.Setting.ListWidthState := glsMin;
+       end;
+end;
+// *************************************************************************
+//! \83X\83\8c\83b\83h\95\\8e¦\83G\83\8a\83A\92Ê\8fí\95\\8e¦\82É\82·\82é \92\8d)ListOrientation = gloVertical
+// *************************************************************************
+procedure TGikoDM.SetThreadAreaVerNormal;
+begin
+       //\92Ê\8fí\95\\8e¦\82É\82·\82é
+       GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
+       BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
+       BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
+       GikoSys.Setting.ListHeightState := glsNormal;
+end;
+// *************************************************************************
+//! \83X\83\8c\83b\83h\95\\8e¦\83G\83\8a\83A\8dÅ\91å/\8dÅ\8f¬\95\\8e¦\82É\82·\82é \92\8d)ListOrientation = gloVertical
+// *************************************************************************
+procedure TGikoDM.SetThreadAreaVertical(gls : TGikoListState);
+begin
+       if GikoSys.Setting.ListHeightState = glsNormal then
+               GikoForm.BrowserSizeHeight := GikoForm.ViewPanel.Height;
+       if (gls = glsMin) then begin
+               GikoForm.ViewPanel.Height := GikoForm.ThreadMainPanel.Height - GikoForm.BrowserCoolBar.Height - 7;
+               BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
+               BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
+               GikoSys.Setting.ListHeightState := glsMin;
+       end else if (gls = glsMax) then begin
+               GikoForm.ViewPanel.Height := 1;
+               BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
+               BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
+               GikoSys.Setting.ListHeightState := glsMax;
        end;
 end;
 // *************************************************************************
-// \83X\83\8c\83b\83h\95\\8e¦\83G\83\8a\83A\82ð\91å\82«\82­\95\\8e¦\82·\82é
+//! \83X\83\8c\83b\83h\95\\8e¦\83G\83\8a\83A\82ð\91å\82«\82­\95\\8e¦\82·\82é
 // *************************************************************************
 procedure TGikoDM.BrowserMaxActionExecute(Sender: TObject);
 begin
@@ -828,60 +1032,28 @@ begin
                case GikoSys.Setting.ListWidthState of
                        glsMax: begin
                                //\92Ê\8fí\95\\8e¦\82É\82·\82é
-                               if GikoForm.ActiveContent <> nil then
-                                       SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
-                               GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
-                               BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
-                               BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
-                               GikoSys.Setting.ListWidthState := glsNormal;
-                               if GikoForm.ActiveContent <> nil then
-                                       SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
+                               SetThreadAreaHorNormal;
                        end;
                        glsMin, glsNormal: begin
                                //\8dÅ\91å\95\\8e¦\82É\82·\82é
-                               if GikoForm.ActiveContent <> nil then
-                                       SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
-                               if GikoSys.Setting.ListWidthState = glsNormal then
-                                       GikoForm.BrowserSizeWidth := GikoForm.ViewPanel.Width;
-                               if GikoForm.ActiveContent <> nil then
-                                       SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
-                               GikoForm.ViewPanel.Width := 1;
-                               BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
-                               BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
-                               GikoSys.Setting.ListWidthState := glsMax;
+                               SetThreadAreaHorizontal(glsMax);
                        end;
                end;
        end else begin
                case GikoSys.Setting.ListHeightState of
                        glsMax: begin
                                //\92Ê\8fí\95\\8e¦\82É\82·\82é
-                               if GikoForm.ActiveContent <> nil then
-                                       SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
-                               GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
-                               BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
-                               BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
-                               GikoSys.Setting.ListHeightState := glsNormal;
-                               if GikoForm.ActiveContent <> nil then
-                                       SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
+                               SetThreadAreaVerNormal;
                        end;
                        glsMin, glsNormal: begin
                                //\8dÅ\91å\95\\8e¦\82É\82·\82é
-                               if GikoForm.ActiveContent <> nil then
-                                       SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
-                               if GikoSys.Setting.ListHeightState = glsNormal then
-                                       GikoForm.BrowserSizeHeight := GikoForm.ViewPanel.Height;
-                               if GikoForm.ActiveContent <> nil then
-                                       SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
-                               GikoForm.ViewPanel.Height := 1;
-                               BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
-                               BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
-                               GikoSys.Setting.ListHeightState := glsMax;
+                               SetThreadAreaVertical(glsMax);
                        end;
                end;
        end;
 end;
 // *************************************************************************
-// \83X\83\8c\83b\83h\95\\8e¦\83G\83\8a\83A\82ð\8f¬\82³\82­\95\\8e¦\82·\82é
+//! \83X\83\8c\83b\83h\95\\8e¦\83G\83\8a\83A\82ð\8f¬\82³\82­\95\\8e¦\82·\82é
 // *************************************************************************
 procedure TGikoDM.BrowserMinActionExecute(Sender: TObject);
 begin
@@ -889,88 +1061,56 @@ begin
                case GikoSys.Setting.ListWidthState of
                        glsMax, glsNormal: begin
                                //\8dÅ\8f¬\95\\8e¦\82É\82·\82é
-                               if GikoForm.ActiveContent <> nil then
-                                       SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
-                               if GikoSys.Setting.ListWidthState = glsNormal then
-                                       GikoForm.BrowserSizeWidth := GikoForm.ViewPanel.Width;
-                               if GikoForm.ActiveContent <> nil then
-                                       SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
-                               GikoForm.ViewPanel.Width := GikoForm.ThreadMainPanel.Width - 80;
-                               BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
-                               BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
-                               GikoSys.Setting.ListWidthState := glsMin;
+                               SetThreadAreaHorizontal(glsMin);
                        end;
                        glsMin: begin
                                //\92Ê\8fí\95\\8e¦\82É\82·\82é
-                               if GikoForm.ActiveContent <> nil then
-                                       SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
-                               GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
-                               BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
-                               BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
-                               GikoSys.Setting.ListWidthState := glsNormal;
-                               if GikoForm.ActiveContent <> nil then
-                                       SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
+                               SetThreadAreaHorNormal;
                        end;
                end;
        end else begin
                case GikoSys.Setting.ListHeightState of
                        glsMax, glsNormal: begin
                                //\8dÅ\8f¬\95\\8e¦\82É\82·\82é
-                               if GikoForm.ActiveContent <> nil then
-                                       SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
-                               if GikoSys.Setting.ListHeightState = glsNormal then
-                                       GikoForm.BrowserSizeHeight := GikoForm.ViewPanel.Height;
-                               GikoForm.ViewPanel.Height := GikoForm.ThreadMainPanel.Height - GikoForm.BrowserCoolBar.Height - 7;
-                               BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
-                               BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
-                               GikoSys.Setting.ListHeightState := glsMin;
-                               if GikoForm.ActiveContent <> nil then
-                                       SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
+                               SetThreadAreaVertical(glsMin);
                        end;
                        glsMin: begin
                                //\92Ê\8fí\95\\8e¦\82É\82·\82é
-                               if GikoForm.ActiveContent <> nil then
-                                       SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
-                               GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
-                               BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
-                               BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
-                               GikoSys.Setting.ListHeightState := glsNormal;
-                               if GikoForm.ActiveContent <> nil then
-                                       SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
+                               SetThreadAreaVerNormal;
                        end;
                end;
        end;
 end;
 // *************************************************************************
-// \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\90æ\93ª\82Ö\88Ú\93®\82·\82é
+//! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\90æ\93ª\82Ö\88Ú\93®\82·\82é
 // *************************************************************************
 procedure TGikoDM.ScrollTopActionExecute(Sender: TObject);
 begin
        GikoForm.BrowserMovement('top');
 end;
 // *************************************************************************
-// \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\8dÅ\8cã\82Ö\88Ú\93®\82·\82é
+//! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\8dÅ\8cã\82Ö\88Ú\93®\82·\82é
 // *************************************************************************
 procedure TGikoDM.ScrollLastActionExecute(Sender: TObject);
 begin
        GikoForm.BrowserMovement('bottom');
 end;
 // *************************************************************************
-// \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\90V\92\85\82Ö\88Ú\93®\82·\82é
+//! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\90V\92\85\82Ö\88Ú\93®\82·\82é
 // *************************************************************************
 procedure TGikoDM.ScrollNewActionExecute(Sender: TObject);
 begin
        GikoForm.BrowserMovement('new');
 end;
 // *************************************************************************
-// \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\83R\83R\82Ü\82Å\93Ç\82ñ\82¾\82Ö\88Ú\93®\82·\82é
+//! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\83R\83R\82Ü\82Å\93Ç\82ñ\82¾\82Ö\88Ú\93®\82·\82é
 // *************************************************************************
 procedure TGikoDM.ScrollKokoActionExecute(Sender: TObject);
 begin
        GikoForm.BrowserMovement('koko');
 end;
 // *************************************************************************
-// \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\83R\83R\82Ü\82Å\93Ç\82ñ\82¾\82Ö\88Ú\93®\82·\82é\82ÌUpdate\83C\83x\83\93\83g
+//! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\83R\83R\82Ü\82Å\93Ç\82ñ\82¾\82Ö\88Ú\93®\82·\82é\82ÌUpdate\83C\83x\83\93\83g
 // *************************************************************************
 procedure TGikoDM.ScrollKokoActionUpdate(Sender: TObject);
 begin
@@ -979,7 +1119,7 @@ begin
                                                                and (GikoForm.GetActiveContent.Kokomade <> -1);
 end;
 // *************************************************************************
-// \83\8c\83X\8f\91\82«\8d\9e\82Ý\83E\83B\83\93\83h\83E\82ð\95\\8e¦\82·\82é
+//! \83\8c\83X\8f\91\82«\8d\9e\82Ý\83E\83B\83\93\83h\83E\82ð\95\\8e¦\82·\82é
 // *************************************************************************
 procedure TGikoDM.EditorActionExecute(Sender: TObject);
 var
@@ -990,19 +1130,18 @@ begin
        if Item = nil then Exit;
        Editor := TEditorForm.Create(GikoForm.GetMainForm);
        Editor.SetThreadItem(Item);
-       GikoSys.LoadEditorKeySetting(Editor.ActionList);
        Editor.Show;
        Editor.BodyEdit.SetFocus;
 end;
 // *************************************************************************
-// \83X\83\8c\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
+//! \83X\83\8c\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
 // *************************************************************************
 procedure TGikoDM.IEActionExecute(Sender: TObject);
 begin
        ShowThreadAction.Execute;
 end;
 // *************************************************************************
-// \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
+//! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
 // *************************************************************************
 procedure TGikoDM.ShowThreadActionExecute(Sender: TObject);
 var
@@ -1013,7 +1152,7 @@ begin
        GikoSys.OpenBrowser(ThreadItem.URL, gbtAuto);
 end;
 // *************************************************************************
-// \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\94Â\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
+//! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\94Â\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
 // *************************************************************************
 procedure TGikoDM.ShowBoardActionExecute(Sender: TObject);
 var
@@ -1024,7 +1163,7 @@ begin
        GikoSys.OpenBrowser(ThreadItem.ParentBoard.URL, gbtAuto);
 end;
 // *************************************************************************
-// \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82ÌURL\82ð\83R\83s\81[\82·\82é
+//! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82ÌURL\82ð\83R\83s\81[\82·\82é
 // *************************************************************************
 procedure TGikoDM.URLCopyActionExecute(Sender: TObject);
 var
@@ -1039,7 +1178,7 @@ begin
                Clipboard.AsText := s;
 end;
 // *************************************************************************
-// \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\96¼\82ð\83R\83s\81[\82·\82é
+//! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\96¼\82ð\83R\83s\81[\82·\82é
 // *************************************************************************
 procedure TGikoDM.NameCopyActionExecute(Sender: TObject);
 var
@@ -1054,7 +1193,7 @@ begin
                Clipboard.AsText := s;
 end;
 // *************************************************************************
-// \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\96¼\82ÆURL\82ð\83R\83s\81[\82·\82é
+//! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\96¼\82ÆURL\82ð\83R\83s\81[\82·\82é
 // *************************************************************************
 procedure TGikoDM.NameURLCopyActionExecute(Sender: TObject);
 var
@@ -1069,7 +1208,7 @@ begin
                Clipboard.AsText := s;
 end;
 // *************************************************************************
-// \95\\8e¦\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
+//! \95\\8e¦\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
 // *************************************************************************
 procedure TGikoDM.ItemReloadActionExecute(Sender: TObject);
 var
@@ -1082,7 +1221,7 @@ begin
                GikoForm.DownloadContent(ThreadItem, shiftDown);
 end;
 // *************************************************************************
-// \8c»\8dÝ\8aJ\82¢\82Ä\82¢\82é\83^\83u\82ð\95Â\82\82é
+//! \8c»\8dÝ\8aJ\82¢\82Ä\82¢\82é\83^\83u\82ð\95Â\82\82é
 // *************************************************************************
 procedure TGikoDM.BrowserTabCloseActionExecute(Sender: TObject);
 var
@@ -1096,14 +1235,14 @@ begin
        end;
 end;
 // *************************************************************************
-// \83^\83u\82ª\82P\82Â\88È\8fã\82 \82ê\82ª\97L\8cø\82É\82·\82éUpdate\83C\83x\83\93\83g
+//! \83^\83u\82ª\82P\82Â\88È\8fã\82 \82ê\82ª\97L\8cø\82É\82·\82éUpdate\83C\83x\83\93\83g
 // *************************************************************************
 procedure TGikoDM.BrowserTabCloseActionUpdate(Sender: TObject);
 begin
        TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0);
 end;
 // *************************************************************************
-// \8c»\8dÝ\8aJ\82¢\82Ä\82¢\82é\83^\83u\88È\8aO\82ð\95Â\82\82é
+//! \8c»\8dÝ\8aJ\82¢\82Ä\82¢\82é\83^\83u\88È\8aO\82ð\95Â\82\82é
 // *************************************************************************
 procedure TGikoDM.NotSelectTabCloseActionExecute(Sender: TObject);
 var
@@ -1126,14 +1265,14 @@ begin
        GikoForm.BrowserTab.Tabs.EndUpdate;
 end;
 // *************************************************************************
-// \83^\83u\82ª\82Q\82Â\88È\8fã\82 \82ê\82ª\97L\8cø\82É\82·\82éUpdate\83C\83x\83\93\83g
+//! \83^\83u\82ª\82Q\82Â\88È\8fã\82 \82ê\82ª\97L\8cø\82É\82·\82éUpdate\83C\83x\83\93\83g
 // *************************************************************************
 procedure TGikoDM.NotSelectTabCloseActionUpdate(Sender: TObject);
 begin
        TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
 end;
 // *************************************************************************
-// \91S\82Ä\82Ì\83^\83u\82ð\95Â\82\82é
+//! \91S\82Ä\82Ì\83^\83u\82ð\95Â\82\82é
 // *************************************************************************
 procedure TGikoDM.AllTabCloseActionExecute(Sender: TObject);
 var
@@ -1157,7 +1296,7 @@ begin
        GikoForm.Caption := CAPTION_NAME ;
 end;
 // *************************************************************************
-// \8c»\8dÝ\8aJ\82¢\82Ä\82¢\82é\83^\83u\82Ì\83X\83\8c\83b\83h\82ð\8dí\8f\9c\82·\82é
+//! \8c»\8dÝ\8aJ\82¢\82Ä\82¢\82é\83^\83u\82Ì\83X\83\8c\83b\83h\82ð\8dí\8f\9c\82·\82é
 // *************************************************************************
 procedure TGikoDM.ActiveLogDeleteActionExecute(Sender: TObject);
 const
@@ -1176,6 +1315,7 @@ begin
                                        if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', ThreadItem.Title, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
                                                Exit;
                        GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
+            GikoForm.DeleteHistory(ThreadItem);
                        ThreadItem.DeleteLogFile;
                        if ThreadItem.ParentBoard = GikoForm.ActiveList then
                                GikoForm.ListView.Refresh;
@@ -1183,7 +1323,7 @@ begin
        end;
 end;
 // *************************************************************************
-// \88ê\94Ô\8d\82Ì\83^\83u\82ð\91I\91ð\82·\82é
+//! \88ê\94Ô\8d\82Ì\83^\83u\82ð\91I\91ð\82·\82é
 // *************************************************************************
 procedure TGikoDM.LeftmostTabSelectActionExecute(Sender: TObject);
 begin
@@ -1193,7 +1333,19 @@ begin
        end;
 end;
 // *************************************************************************
-// \83^\83u\82Ì\90\94\82ª\82P\88È\8fã\82Å\81A\83^\83u\82Ì\83C\83\93\83f\83b\83N\83X\82ª\82O\88È\8aO\82Å\97L\8cø\82É\82È\82éUpdate\83C\83x\83\93\83g
+//! \8d\82Ì\83^\83u\82ð\91I\91ð\82·\82é\82ÌUpdate\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoDM.LeftTabSelectActionUpdate(Sender: TObject);
+begin
+    if ( not GikoSys.Setting.LoopBrowserTabs ) then begin
+        LeftmostTabSelectActionUpdate(Sender);
+    end else begin
+        TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
+    end;
+end;
+
+// *************************************************************************
+//! \83^\83u\82Ì\90\94\82ª\82P\88È\8fã\82Å\81A\83^\83u\82Ì\83C\83\93\83f\83b\83N\83X\82ª\82O\88È\8aO\82Å\97L\8cø\82É\82È\82éUpdate\83C\83x\83\93\83g
 // *************************************************************************
 procedure TGikoDM.LeftmostTabSelectActionUpdate(Sender: TObject);
 begin
@@ -1201,7 +1353,7 @@ begin
                                                                and (GikoForm.BrowserTab.TabIndex <> 0);
 end;
 // *************************************************************************
-// \8d\82Ì\83^\83u\82ð\91I\91ð\82·\82é
+//! \8d\82Ì\83^\83u\82ð\91I\91ð\82·\82é
 // *************************************************************************
 procedure TGikoDM.LeftTabSelectActionExecute(Sender: TObject);
 begin
@@ -1212,11 +1364,17 @@ begin
                end else if GikoForm.BrowserTab.TabIndex > 0 then begin
                        GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex - 1;
                        GikoForm.BrowserTab.OnChange(nil);
-               end;
+               end else begin
+            if (GikoSys.Setting.LoopBrowserTabs) and
+                (GikoForm.BrowserTab.TabIndex = 0) then begin
+                       GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
+                       GikoForm.BrowserTab.OnChange(nil);
+            end;
+        end;
        end;
 end;
 // *************************************************************************
-// \89E\82Ì\83^\83u\82ð\91I\91ð\82·\82é
+//! \89E\82Ì\83^\83u\82ð\91I\91ð\82·\82é
 // *************************************************************************
 procedure TGikoDM.RightTabSelectActionExecute(Sender: TObject);
 begin
@@ -1227,19 +1385,29 @@ begin
                end else if GikoForm.BrowserTab.TabIndex < (GikoForm.BrowserTab.Tabs.Count - 1) then begin
                        GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex + 1;
                        GikoForm.BrowserTab.OnChange(nil);
-               end;
+               end else begin
+            if (GikoSys.Setting.LoopBrowserTabs) and
+                (GikoForm.BrowserTab.TabIndex = (GikoForm.BrowserTab.Tabs.Count - 1)) then begin
+                       GikoForm.BrowserTab.TabIndex := 0;
+                       GikoForm.BrowserTab.OnChange(nil);
+            end;
+        end;
        end;
 end;
 // *************************************************************************
-// \83^\83u\82Ì\90\94\82ª\82P\88È\8fã\82Å\81A\83^\83u\82ª\89E\92[\88È\8aO\82Å\97L\8cø\82É\82È\82éUpdate\83C\83x\83\93\83g
+//\89E\82Ì\83^\83u\82ð\91I\91ð\82·\82éUpdate\83C\83x\83\93\83g
 // *************************************************************************
 procedure TGikoDM.RightTabSelectActionUpdate(Sender: TObject);
 begin
-       TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
-                                                               and (GikoForm.BrowserTab.TabIndex <> GikoForm.BrowserTab.Tabs.Count - 1);
+    if ( not GikoSys.Setting.LoopBrowserTabs ) then begin
+        RightmostTabSelectActionUpdate(Sender);
+    end else begin
+        TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
+    end;
 end;
+
 // *************************************************************************
-// \88ê\94Ô\89E\82Ì\83^\83u\82ð\91I\91ð\82·\82é
+//! \88ê\94Ô\89E\82Ì\83^\83u\82ð\91I\91ð\82·\82é
 // *************************************************************************
 procedure TGikoDM.RightmostTabSelectActionExecute(Sender: TObject);
 begin
@@ -1249,7 +1417,16 @@ begin
        end;
 end;
 // *************************************************************************
-// \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\82¨\8bC\82É\93ü\82è\82É\92Ç\89Á
+//! \88ê\94Ô\89E\82Ì\83^\83u\82ð\91I\91ð\82·\82é\82ÌUpdate\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoDM.RightmostTabSelectActionUpdate(Sender: TObject);
+begin
+       TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
+                                                               and (GikoForm.BrowserTab.TabIndex <> GikoForm.BrowserTab.Tabs.Count - 1);
+
+end;
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\82¨\8bC\82É\93ü\82è\82É\92Ç\89Á
 // *************************************************************************
 procedure TGikoDM.ThreadFavoriteAddActionExecute(Sender: TObject);
 begin
@@ -1257,7 +1434,7 @@ begin
                GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ListView.Selected.Data));
 end;
 // *************************************************************************
-// \83X\83\8c\83b\83h\88ê\97\97\82Å\81A\83X\83\8c\82ª\82P\82Â\88È\8fã\91I\91ð\82³\82ê\82Ä\82¢\82é\97L\8cø\82É\82È\82éUpdate\83C\83x\83\93\83g
+//! \83X\83\8c\83b\83h\88ê\97\97\82Å\81A\83X\83\8c\82ª\82P\82Â\88È\8fã\91I\91ð\82³\82ê\82Ä\82¢\82é\97L\8cø\82É\82È\82éUpdate\83C\83x\83\93\83g
 // *************************************************************************
 procedure TGikoDM.ThreadFavoriteAddActionUpdate(Sender: TObject);
 begin
@@ -1265,7 +1442,7 @@ begin
                                                                        and (GikoForm.ListView.SelCount > 0);
 end;
 // *************************************************************************
-// \83\8c\83X\82Ì\93à\97e\82ð\8di\82è\8d\9e\82Þ
+//! \83\8c\83X\82Ì\93à\97e\82ð\8di\82è\8d\9e\82Þ
 // *************************************************************************
 procedure TGikoDM.SelectResActionExecute(Sender: TObject);
 var
@@ -1273,7 +1450,7 @@ var
        FilterList : TStringList;
        idx : Integer;
 begin
-       Dlg := TListSelectDialog.Create(Self);
+       Dlg := TListSelectDialog.Create(GikoForm);
        try
                Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
                Dlg.SelectComboBox.Text := GikoForm.SelectResWord;
@@ -1328,11 +1505,9 @@ begin
 
 end;
 // *************************************************************************
-// \91S\82Ä\82Ì\83\8c\83X\82ð\95\\8e¦\82·\82é
+//! \91S\82Ä\82Ì\83\8c\83X\82ð\95\\8e¦\82·\82é
 // *************************************************************************
 procedure TGikoDM.AllResActionExecute(Sender: TObject);
-var
-       FilterList : TStringList;
 begin
        if(GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil )
                and (GikoForm.ActiveContent.Browser.Busy) then Exit;
@@ -1340,25 +1515,11 @@ begin
        GikoForm.ResRangeMenuSelect     := Ord( grrAll );
        AllResAction.Checked            := True;
 
-       if GikoSys.ResRange <> Ord( grrAll ) then begin
-               GikoSys.ResRange := Ord( grrAll );
-
-               // \83t\83B\83\8b\83^\95\8e\9a\97ñ\82ð\8bó\82É\82·\82é
-               FilterList := TStringList.Create;
-               try
-                       GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
-                       GikoSys.FSelectResFilter.Reverse := False;
-               finally
-                       FilterList.Free;
-               end;
-
-               GikoForm.SelectResWord := '';
-
-               GikoForm.RepaintAllTabsBrowser();
-       end;
+       //\81@\95\\8e¦\94Í\88Í\82ð\90Ý\92è\82·\82é
+       SetResRange(Ord( grrAll ));
 end;
 // *************************************************************************
-// \83\8c\83X\82Ì\95\\8e¦\94Í\88Í\82ð\90Ý\92è
+//! \83\8c\83X\82Ì\95\\8e¦\94Í\88Í\82ð\90Ý\92è
 // *************************************************************************
 procedure TGikoDM.ResRangeActionExecute(Sender: TObject);
 begin
@@ -1371,14 +1532,14 @@ begin
 
 end;
 // *************************************************************************
-// \82±\82Ì\83X\83\8c\83b\83h\82ð\8aÜ\82Þ\83X\83\8c\83b\83h\88ê\97\97\82ð\95\\8e¦
+//! \82±\82Ì\83X\83\8c\83b\83h\82ð\8aÜ\82Þ\83X\83\8c\83b\83h\88ê\97\97\82ð\95\\8e¦
 // *************************************************************************
 procedure TGikoDM.UpBoardActionExecute(Sender: TObject);
 begin
        GikoForm.SelectTreeNode( GikoForm.GetActiveContent.ParentBoard, True );
 end;
 // *************************************************************************
-// \8ew\92è\82µ\82½\94Ô\8d\86\82Ì\83\8c\83X\82É\94ò\82Ô
+//! \8ew\92è\82µ\82½\94Ô\8d\86\82Ì\83\8c\83X\82É\94ò\82Ô
 // *************************************************************************
 procedure TGikoDM.JumpToNumOfResActionExecute(Sender: TObject);
 var
@@ -1390,16 +1551,16 @@ begin
                str := ZenToHan(str);
                res := StrToIntDef(str, -1);
                if (res > 0) and (res <= GikoForm.GetActiveContent.Count) then begin
-                       GikoForm.BrowserMovement(IntToStr(res), GikoForm.ActiveContent);
+                       GikoForm.ActiveContent.Move(IntToStr(res));
                        SetFocusForBrowserAction.Execute;
                end else if res > GikoForm.GetActiveContent.Count then begin
-                       GikoForm.BrowserMovement(IntToStr(GikoForm.GetActiveContent.Count), GikoForm.ActiveContent);
+                       GikoForm.ActiveContent.Move(IntToStr(GikoForm.GetActiveContent.Count));
                        SetFocusForBrowserAction.Execute;
                end;
        end;
 end;
 // *************************************************************************
-// \83A\83N\83e\83B\83u\82È\83^\83u\82æ\82è\89E\82ð\95Â\82\82é
+//! \83A\83N\83e\83B\83u\82È\83^\83u\82æ\82è\89E\82ð\95Â\82\82é
 // *************************************************************************
 procedure TGikoDM.RightTabCloseActionExecute(Sender: TObject);
 var
@@ -1416,14 +1577,14 @@ begin
        GikoForm.BrowserTab.Tabs.EndUpdate;
 end;
 // *************************************************************************
-// \83^\83u\82Ì\90\94\82ª\82Q\88È\8fã\82Å\97L\8cø\82ÈUpdate\83C\83x\83\93\83g
+//! \83^\83u\82Ì\90\94\82ª\82Q\88È\8fã\82Å\97L\8cø\82ÈUpdate\83C\83x\83\93\83g
 // *************************************************************************
 procedure TGikoDM.RightTabCloseActionUpdate(Sender: TObject);
 begin
        TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
 end;
 // *************************************************************************
-// \83A\83N\83e\83B\83u\82È\83^\83u\82æ\82è\8d\82ð\95Â\82\82é
+//! \83A\83N\83e\83B\83u\82È\83^\83u\82æ\82è\8d\82ð\95Â\82\82é
 // *************************************************************************
 procedure TGikoDM.LeftTabCloseActionExecute(Sender: TObject);
 var
@@ -1444,10 +1605,14 @@ end;
 ////////////////////////////////\83X\83\8c\83b\83h\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
 procedure TGikoDM.DataModuleCreate(Sender: TObject);
 begin
-
+    // GikoDM\82æ\82è\82à\91\81\82­\8f\89\8aú\89»\82³\82ê\82é\95K\97v\82ª\82 \82é\83t\83@\83C\83\8b\82ª\82¢\82é\82Æ\82±\82¯\82é\81I\81I
+    // \8f\89\8aú\89»\8f\87\94Ô\82É\92\8d\88Ó\82·\82é\82±\82Æ\81I\81I
+    //\8f\89\89ñ\8bN\93®\8e\9e\82Ì\8f\89\8aú\89»\83t\83@\83C\83\8b\90Ý\92è
+    TDefaultFileManager.CopyDefaultFiles(
+        GikoSys.GetAppDir + 'defaultFiles.ini');
 end;
 // *************************************************************************
-// \83\8d\83O\8c\9f\8dõ\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
+//! \83\8d\83O\8c\9f\8dõ\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
 // *************************************************************************
 procedure TGikoDM.SearchActionExecute(Sender: TObject);
 var
@@ -1460,7 +1625,7 @@ begin
                else
                        chk := nil;
 
-               GikoForm.SearchDialog := TSearchDialog.Create(Self, chk);
+               GikoForm.SearchDialog := TSearchDialog.Create(GikoForm, chk);
                GikoForm.SearchDialog.SearchComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
        end;
 
@@ -1470,13 +1635,13 @@ begin
        end;
 end;
 // *************************************************************************
-// \83I\83v\83V\83\87\83\93\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
+//! \83I\83v\83V\83\87\83\93\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
 // *************************************************************************
 procedure TGikoDM.OptionActionExecute(Sender: TObject);
 var
        Dlg: TOptionDialog;
 begin
-       Dlg := TOptionDialog.Create(Self);
+       Dlg := TOptionDialog.Create(GikoForm);
        try
                Dlg.ShowModal;
        finally
@@ -1484,13 +1649,13 @@ begin
        end;
 end;
 // *************************************************************************
-// \8f\84\89ñ\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
+//! \8f\84\89ñ\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
 // *************************************************************************
 procedure TGikoDM.RoundActionExecute(Sender: TObject);
 var
        Dlg: TRoundDialog;
 begin
-       Dlg := TRoundDialog.Create(Self);
+       Dlg := TRoundDialog.Create(GikoForm);
        try
                Dlg.ShowModal;
        finally
@@ -1498,17 +1663,17 @@ begin
        end;
 end;
 // *************************************************************************
-// \83L\81[\90Ý\92è\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
+//! \83L\81[\90Ý\92è\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
 // *************************************************************************
 procedure TGikoDM.KeySettingActionExecute(Sender: TObject);
 var
        Dlg: TKeySettingForm;
 begin
-       Dlg := TKeySettingForm.Create(Self);
+       Dlg := TKeySettingForm.Create(GikoForm);
        try
                if Dlg.ShowModal = mrOk then begin
-                       GikoSys.SaveKeySetting(GikoFormActionList);
-                       GikoSys.SaveEditorKeySetting(Dlg.EditorForm.ActionList);
+                       GikoSys.SaveKeySetting(GikoFormActionList, Setting.KEY_SETTING_FILE_NAME);
+                       GikoSys.SaveKeySetting(Dlg.EditorForm.ActionList, Setting.EKEY_SETTING_FILE_NAME);
                        GikoSys.Setting.Gestures.SaveGesture( GikoSys.Setting.GetGestureFileName );
                end;
 
@@ -1527,13 +1692,13 @@ begin
        end;
 end;
 // *************************************************************************
-// \83L\81[\90Ý\92è\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
+//! \83L\81[\90Ý\92è\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
 // *************************************************************************
 procedure TGikoDM.KotehanActionExecute(Sender: TObject);
 var
        Dlg: TKotehanDialog;
 begin
-       Dlg := TKotehanDialog.Create(Self);
+       Dlg := TKotehanDialog.Create(GikoForm);
        try
                Dlg.ShowModal;
        finally
@@ -1541,14 +1706,12 @@ begin
        end;
 end;
 // *************************************************************************
-// \83c\81[\83\8b\83o\81[\90Ý\92è\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
+//! \83c\81[\83\8b\83o\81[\90Ý\92è\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
 // *************************************************************************
 procedure TGikoDM.ToolBarSettingActionExecute(Sender: TObject);
 var
        Dlg: TToolBarSettingDialog;
        i: Integer;
-       //Component: TComponent;
-       ToolButton : TToolButton;
 begin
        Dlg := TToolBarSettingDialog.Create(GikoForm, GikoFormActionList);
        try
@@ -1586,59 +1749,7 @@ begin
                        SaveToolBarSetting(GikoForm.StdToolBar);
                        SaveToolBarSetting(GikoForm.ListToolBar);
                        //ListToolBar\82É\82¢\82é\82©\82à\82µ\82ê\82È\82¢\8di\8d\9e\82ÝComboBox\82ð\94z\92u
-                       GikoForm.SelectComboBoxPanel.Visible := False;
-                       try
-                               for i := GikoForm.ListToolBar.ControlCount - 1 downto 0 do
-                               begin
-                                       if GikoForm.ListToolBar.Controls[ i ].Action = SelectItemAction then
-                                       begin
-                                               GikoForm.SelectComboBoxPanel.Left :=
-                                                       GikoForm.ListToolBar.Controls[ i ].Left;
-                                               GikoForm.SelectComboBoxPanel.Width :=
-                                                       GikoSys.Setting.SelectComboBoxWidth;
-                                               GikoForm.SelectComboBoxPanel.Parent :=
-                                                       GikoForm.ListToolBar;
-                                               GikoForm.SelectComboBoxPanel.Visible := True;
-
-                                               GikoForm.SelectComboBox.Left := 0;
-                                               GikoForm.SelectComboBox.Top  := 0;
-                                               GikoForm.SelectComboBox.Height :=
-                                                       GikoForm.SelectComboBoxPanel.ClientHeight;
-                                               GikoForm.SelectComboBox.Width :=
-                                                       GikoForm.SelectComboBoxPanel.Width -
-                                                       GikoForm.SelectComboBoxSplitter.Width;
-
-
-                                               //\88ê\82Â\8c©\82¦\82È\82¢\83{\83^\83\93\82ð\93Ë\82Á\8d\9e\82Þ
-                                               ToolButton := TToolButton(GikoForm.ListToolBar.FindComponent('SelectComboBoxDummy'));
-                                               if ToolButton <> nil then begin
-                                                       ToolButton.Parent := nil;
-                                               end else begin
-                                                       ToolButton := TToolButton.Create(GikoForm.ListToolBar);
-                                                       ToolButton.Name := 'SelectComboBoxDummy';
-                                               end;
-
-                                               ToolButton.Style := tbsSeparator;
-                                               ToolButton.Width := 0;
-                                               ToolButton.Left  := GikoForm.ListToolBar.Controls[ i ].Left;
-                                               GikoForm.ListToolBar.InsertControl(ToolButton);
-                                               ToolButton.Visible := False;
-
-                                               // \83X\83\8c\83b\83h\8di\8d\9e\82Ì\97×\82É\83Z\83p\83\8c\81[\83^\82ª\82 \82é\8fê\8d\87\82Í\89B\82·
-                                               if (i + 1) < GikoForm.ListToolBar.ControlCount then
-                                                       if GikoForm.ListToolBar.Controls[ i + 1 ] is TToolButton then
-                                                               if TToolButton( GikoForm.ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then
-                                                                       GikoForm.ListToolBar.Controls[ i + 1 ].Visible := False;
-
-
-                                               // \83X\83\8c\83b\83h\8di\8d\9e\83{\83^\83\93\82ð\89B\82·
-                                               GikoForm.ListToolBar.Controls[ i ].Visible := False;
-
-                                               break;
-                                       end;
-                               end;
-                       except
-                       end;
+                       GikoForm.SetSelectComboBox;
                        GikoForm.ResetBandInfo( GikoForm.ListCoolBar, GikoForm.ListToolBar );
                        SaveToolBarSetting(GikoForm.BrowserToolBar);
                end;
@@ -1648,7 +1759,7 @@ begin
        end;
 end;
 // *************************************************************************
-// \83~\83\85\81[\83g
+//! \83~\83\85\81[\83g
 // *************************************************************************
 procedure TGikoDM.MuteActionExecute(Sender: TObject);
 begin
@@ -1656,7 +1767,7 @@ begin
 end;
 ////////////////////////////////\83c\81[\83\8b\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
 // *************************************************************************
-// \83X\83\8c\83b\83h\88ê\97\97\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
+//! \83X\83\8c\83b\83h\88ê\97\97\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
 // *************************************************************************
 procedure TGikoDM.TreeSelectBoradReloadExecute(Sender: TObject);
 var
@@ -1676,7 +1787,7 @@ begin
                GikoForm.DownloadList(Board);
 end;
 // *************************************************************************
-// \91I\91ð\82³\82ê\82½\83X\83\8c\83b\83h\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
+//! \91I\91ð\82³\82ê\82½\83X\83\8c\83b\83h\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
 // *************************************************************************
 procedure TGikoDM.TreeSelectThreadReloadExecute(Sender: TObject);
 var
@@ -1696,7 +1807,7 @@ begin
                GikoForm.DownloadContent(ThreadItem);
 end;
 // *************************************************************************
-// \91I\91ð\82³\82ê\82½\94Â\82ÌURL\82ð\83R\83s\81[\82·\82é
+//! \91I\91ð\82³\82ê\82½\94Â\82ÌURL\82ð\83R\83s\81[\82·\82é
 // *************************************************************************
 procedure TGikoDM.TreeSelectURLCopyExecute(Sender: TObject);
 var
@@ -1717,7 +1828,7 @@ begin
        Clipboard.AsText := s;
 end;
 // *************************************************************************
-// \91I\91ð\82³\82ê\82½\94Â\82Ì\96¼\91O\82ÆURL\82ð\83R\83s\81[\82·\82é
+//! \91I\91ð\82³\82ê\82½\94Â\82Ì\96¼\91O\82ÆURL\82ð\83R\83s\81[\82·\82é
 // *************************************************************************
 procedure TGikoDM.TreeSelectNameURLCopyExecute(Sender: TObject);
 var
@@ -1738,14 +1849,14 @@ begin
        Clipboard.AsText := s;
 end;
 // *************************************************************************
-// \82¨\8bC\82É\93ü\82è\82É\92Ç\89Á\82·\82é
+//! \82¨\8bC\82É\93ü\82è\82É\92Ç\89Á\82·\82é
 // *************************************************************************
 procedure TGikoDM.TreeSelectFavoriteAddActionExecute(Sender: TObject);
 begin
        GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ClickNode.Data));
 end;
 // *************************************************************************
-// \94Â\96¼\8c\9f\8dõ
+//! \94Â\96¼\8c\9f\8dõ
 // *************************************************************************
 procedure TGikoDM.TreeSelectSearchBoardNameExecute(Sender: TObject);
 var
@@ -1798,7 +1909,7 @@ begin
        end;
 end;
 // *************************************************************************
-// \91I\91ð\82³\82ê\82½\94Â\82Ì\96¼\91O\82ð\83R\83s\81[\82·\82é
+//! \91I\91ð\82³\82ê\82½\94Â\82Ì\96¼\91O\82ð\83R\83s\81[\82·\82é
 // *************************************************************************
 procedure TGikoDM.TreeSelectNameCopyExecute(Sender: TObject);
 var
@@ -1809,5 +1920,2756 @@ begin
        Clipboard.AsText := s;
 end;
 ////////////////////////////////\83c\83\8a\81[\83|\83b\83v\83A\83b\83v\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
+// *************************************************************************
+//! \83\8d\83O\83C\83\93\81^\83\8d\83O\83A\83E\83g\82ð\82·\82é
+// *************************************************************************
+procedure TGikoDM.LoginActionExecute(Sender: TObject);
+var
+       TmpCursor: TCursor;
+       msg : String;
+begin
+       if GikoSys.Dolib.Connected then begin
+               //\83\8d\83O\83A\83E\83g
+               GikoSys.Dolib.Disconnect;
+               LoginAction.Checked := False;
+               GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmLogout), nil, gmiOK);
+               LoginAction.Caption := '\83\8d\83O\83C\83\93(&L)';
+       end else begin
+               TmpCursor := GikoForm.ScreenCursor;
+               GikoForm.ScreenCursor := crHourGlass;
+               try
+                       //\92Ê\8fí\83\8d\83O\83C\83\93
+                       if not GikoSys.Setting.ForcedLogin then begin
+                               GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
+                               GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
+                               GikoSys.Dolib.Password := GikoSys.Setting.Password;
+                               if GikoSys.Setting.ReadProxy then begin
+                                       GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
+                                       GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
+                               end else begin
+                                       GikoSys.Dolib.ProxyAddress := '';
+                                       GikoSys.Dolib.ProxyPort := 0;
+                               end;
+                               if GikoSys.Dolib.Connect then begin
+                                       LoginAction.Checked := True;
+                                       GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmLogin) + GikoSys.Setting.UserID, nil, gmiOK);
+                                       LoginAction.Caption := '\83\8d\83O\83A\83E\83g(&L)';
+                                       //LoginToolButton.Style := tbsCheck;
+                               end else begin
+               //                      MsgBox(Handle, '\83\8d\83O\83C\83\93\8fo\97\88\82Ü\82¹\82ñ\82Å\82µ\82½', '\83G\83\89\81[', MB_OK or MB_ICONSTOP);
+                                       GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
+                                       GikoForm.PlaySound('Error');
+                                       LoginAction.Checked := False;
+                                       //LoginToolButton.Down := False;
+                                       ///LoginToolButton.Style := tbsButton;
+                               end;
+                       end else begin
+                               msg := '\8b­\90§\83\8d\83O\83C\83\93\83\82\81[\83h\82Å\82Í\81C\83T\81[\83o\82Ì\8fØ\96¾\8f\91\82Ì\97L\8cø\90«\82ð\83`\83F\83b\83N\82µ\82Ü\82¹\82ñ\81B' + #13#10
+                                               + '\8bU\91\95\83T\81[\83o\82Ì\8fê\8d\87\81A\82 \82È\82½\82Ì\83p\83X\83\8f\81[\83h\93\90\82Ü\82ê\82é\89Â\94\\90«\82ª\82 \82è\82Ü\82·\81B' + #13#10
+                                               + '\82±\82Ì\83\82\81[\83h\82Å\83\8d\83O\83C\83\93\82ð\8e\8e\82Ý\82Ü\82·\82©\81H' + #13#10;
+                               if MsgBox(GikoForm.Handle, msg, '\8cx\8d\90', MB_YESNO or MB_ICONEXCLAMATION) = IDYES  then begin
+                                       GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
+                                       GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
+                                       GikoSys.Dolib.Password := GikoSys.Setting.Password;
+                                       if GikoSys.Setting.ReadProxy then begin
+                                               GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
+                                               GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
+                                       end else begin
+                                               GikoSys.Dolib.ProxyAddress := '';
+                                               GikoSys.Dolib.ProxyPort := 0;
+                                       end;
+                                       //SSL\8fá\8aQ\97p\8b­\90§\83\8d\83O\83C\83\93
+                                       GikoSys.Dolib.ForcedConnect;
+                                       if GikoSys.Dolib.Connect then begin
+                                               LoginAction.Checked := True;
+                                               GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmForceLogin) + GikoSys.Setting.UserID, nil, gmiOK);
+                                               LoginAction.Caption := '\83\8d\83O\83A\83E\83g(&L)';
+                                               //LoginToolButton.Style := tbsCheck;
+                                               end else begin
+                       //                      MsgBox(Handle, '\83\8d\83O\83C\83\93\8fo\97\88\82Ü\82¹\82ñ\82Å\82µ\82½', '\83G\83\89\81[', MB_OK or MB_ICONSTOP);
+                                               GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
+                                               GikoForm.PlaySound('Error');
+                                               LoginAction.Checked := False;
+                                               //LoginToolButton.Down := False;
+                                               //LoginToolButton.Style := tbsButton;
+                                       end;
+                               end else begin
+                                       LoginAction.Checked := False;
+                                       //LoginToolButton.Down := False;
+                                       //LoginToolButton.Style := tbsButton;
+                               end;
+                       end;
+               finally
+                       GikoForm.ScreenCursor := TmpCursor;
+               end;
+       end;
+end;
+// *************************************************************************
+//! \83{\81[\83h\8dX\90V\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.NewBoardActionExecute(Sender: TObject);
+var
+       Dlg: TNewBoardDialog;
+       Msg: string;
+begin
+       if (EditorFormExists) then begin
+               Msg := '\83\8c\83X\83G\83f\83B\83^\82ð\91S\82Ä\95Â\82\82Ä\82­\82¾\82³\82¢';
+               MsgBox(GikoForm.Handle, Msg, MSG_ERROR, MB_OK or MB_ICONSTOP);
+               Exit;
+       end;
+       Dlg := TNewBoardDialog.Create(GikoForm);
+       try
+               Dlg.ShowModal;
+       finally
+               Dlg.Release;
+       end;
+end;
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\8dí\8f\9c\82·\82é
+// *************************************************************************
+procedure TGikoDM.LogDeleteActionExecute(Sender: TObject);
+const
+       DEL_MSG = '\81g^0\81h\82Ì\83\8d\83O\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
+       DEL_SAME_MSG = '\82±\82ê\82ç ^0 \8cÂ\82Ì\83X\83\8c\83b\83h\82Ì\83\8d\83O\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
+       DEL_TITLE = '\8dí\8f\9c\8am\94F';
+var
+       ThreadItem: TThreadItem;
+       TmpListItem: TListItem;
+       List: TList;
+       i: Integer;
+begin
+       List := TList.Create;
+       try
+               TmpListItem := GikoForm.ListView.Selected;
+               while TmpListItem <> nil do begin
+                       if TObject(TmpListItem.Data) is TThreadItem then begin
+                               ThreadItem := TThreadItem(TmpListItem.Data);
+                               if ThreadItem.IsLogFile then
+                                       List.Add(ThreadItem);
+                       end;
+                       TmpListItem := GikoForm.ListView.GetNextItem(TmpListItem, sdAll, [isSelected]);
+               end;
+
+               if GikoSys.Setting.DeleteMsg and (List.Count > 0) then begin
+                       if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
+                               if List.Count = 1 then begin
+                                       if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', TThreadItem( List[ 0 ] ).Title, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
+                                               Exit;
+                               end else begin
+                                       if MsgBox(GikoForm.Handle, StringReplace( DEL_SAME_MSG, '^0', IntToStr( List.Count ), [rfReplaceAll] ), DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> IDYES then
+                                               Exit;
+                               end;
+                       end;
+               end;
+
+               for i := 0 to List.Count - 1 do begin
+                       ThreadItem := TThreadItem(List[i]);
+                       GikoForm.DeleteHistory(ThreadItem);
+                       GikoForm.DeleteTab(ThreadItem);
+                       ThreadItem.DeleteLogFile;
+               end;
+        GikoForm.TreeView.Refresh;     // UnRead \82Ì\95\\8e¦\82ð\8dX\90V
+               GikoForm.ListView.Refresh;
+       finally
+               List.Free;
+       end;
+end;
+// *************************************************************************
+//! ActiveList\82ªTBoard\82Å\83X\83\8c\88ê\97\97\82Å\82P\82Â\88È\8fã\91I\91ð\82µ\82Ä\82¢\82é\82Æ\97L\8cø\82É\82È\82éAction\82Å\8b¤\92Ê
+// *************************************************************************
+procedure TGikoDM.LogDeleteActionUpdate(Sender: TObject);
+begin
+       TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
+                                                               and (GikoForm.ListView.SelCount > 0);
+end;
+// *************************************************************************
+//! \8di\8d\9e\82Ý\97\9a\97ð\82ð\8fÁ\8b\8e\82·\82é
+// *************************************************************************
+procedure TGikoDM.SelectTextClearActionExecute(Sender: TObject);
+const
+       DEL_MSG = '\8di\8d\9e\82Ý\91S\97\9a\97ð\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
+       DEL_TITLE = '\8dí\8f\9c\8am\94F';
+begin
+       if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
+               if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
+                       Exit;
+       GikoSys.Setting.SelectTextList.Clear;
+       GikoForm.SelectComboBox.Items.Clear;
+       GikoForm.SelectComboBox.Text := '';
+       GikoForm.SetListViewType( gvtAll );
+end;
+// *************************************************************************
+//! \83\8c\83X\83G\83f\83B\83^\82Ì\96¼\91O\97\9a\97ð\82ð\8fÁ\8b\8e\82·\82é
+// *************************************************************************
+procedure TGikoDM.NameTextClearActionExecute(Sender: TObject);
+const
+       DEL_MSG = '\83\8c\83X\83G\83f\83B\83^\96¼\91O\91S\97\9a\97ð\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
+       DEL_TITLE = '\8dí\8f\9c\8am\94F';
+begin
+       if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
+               if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
+                       Exit;
+       GikoSys.Setting.NameList.Clear;
+       ClearNameTextAllEditor
+end;
+// *************************************************************************
+//! \83\8c\83X\83G\83f\83B\83^\82Ì\83\81\81[\83\8b\97\9a\97ð\82ð\8fÁ\8b\8e\82·\82é
+// *************************************************************************
+procedure TGikoDM.MailTextClearActionExecute(Sender: TObject);
+const
+       DEL_MSG = '\83\8c\83X\83G\83f\83B\83^\83\81\81[\83\8b\91S\97\9a\97ð\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
+       DEL_TITLE = '\8dí\8f\9c\8am\94F';
+begin
+       if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
+               if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
+                       Exit;
+       GikoSys.Setting.MailList.Clear;
+       ClearMailAllEditor;
+end;
+// *************************************************************************
+//! \83M\83R\83i\83r\82ð\8fI\97¹\82·\82é
+// *************************************************************************
+procedure TGikoDM.ExitActionExecute(Sender: TObject);
+begin
+       GikoForm.Close;
+end;
+// *************************************************************************
+//! \82¨\8bC\82É\93ü\82è\82Ì\83G\83N\83X\83|\81[\83g\81@\8eÀ\8ds\91O\8f\88\97\9d
+// *************************************************************************
+procedure TGikoDM.ExportFavoriteFileBeforeExecute(Sender: TObject);
+begin
+       ExportFavoriteFile.Dialog.FileName := FavoriteDM.GetFavoriteFilePath;
+end;
+// *************************************************************************
+//! \82¨\8bC\82É\93ü\82è\82Ì\83G\83N\83X\83|\81[\83g\81@\8eÀ\8ds\8f\88\97\9d
+// *************************************************************************
+procedure TGikoDM.ExportFavoriteFileAccept(Sender: TObject);
+begin
+       if FavoriteDM.SaveFavoriteFile( ExportFavoriteFile.Dialog.FileName ) Then begin
+               ShowMessage('\83t\83@\83C\83\8b\82ð\8fo\97Í\82µ\82Ü\82µ\82½');
+       end else begin
+               ShowMessage('\83t\83@\83C\83\8b\82Ì\8fo\97Í\82É\8e¸\94s\82µ\82Ü\82µ\82½');
+       end;
+end;
+// *************************************************************************
+//! \91I\91ð\83X\83\8c\83b\83h\82ð\83t\83@\83C\83\8b\82É\95Û\91\82·\82é
+// *************************************************************************
+procedure TGikoDM.SelectThreadSaveToFile(dat: Boolean);
+var
+       List: TList;
+       i: Integer;
+       html: TStringList;
+       title: string;
+begin
+       List := TList.Create;
+       try
+               GikoForm.ScreenCursor := crHourGlass;
+               GikoForm.SelectListItem(List);
+               if ((GikoSys.Setting.ListOrientation = gloVertical) and
+                       (GikoSys.Setting.ListHeightState = glsMax)) or
+                       ((GikoSys.Setting.ListOrientation = gloHorizontal) and
+                       (GikoSys.Setting.ListWidthState = glsMax))      then
+                       ShowMessage('\83X\83\8c\83b\83h\88ê\97\97\82ð\95\\8e¦\82µ\82Ä\82­\82¾\82³\82¢')
+               else if(List.Count = 0) then
+                       ShowMessage('\83X\83\8c\83b\83h\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢')
+               else begin
+                       if dat then begin
+                               SaveDialog.Title := '\91I\91ð\83X\83\8c\83b\83h\82ðdat\82Ì\82Ü\82Ü\95Û\91¶';
+                               SaveDialog.Filter := 'DAT\83t\83@\83C\83\8b(*.dat)|*.dat';
+                       end else begin
+                               SaveDialog.Title := '\91I\91ð\83X\83\8c\83b\83h\82ðHTML\89»\82µ\82Ä\95Û\91¶';
+                               SaveDialog.Filter := 'HTML\83t\83@\83C\83\8b(*.html)|*.html';
+                       end;
+                       for i := 0 to List.Count - 1 do begin
+                               if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
+                                       if dat then begin
+                                               SaveDialog.FileName := TThreadItem(List[i]).FileName;
+                                       end else begin
+                                               SaveDialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';
+                                       end;
+                                       if SaveDialog.Execute then begin
+                                               if dat then begin
+                                                       CopyFile(PChar(TThreadItem(List[i]).FilePath),
+                                                                       PChar(SaveDialog.FileName), true);
+                                               end else begin
+                                                       html := TStringList.Create;
+                                                       title := TThreadItem(List[i]).Title;
+                                                       try
+                                                               HTMLCreater.CreateHTML3(html, TThreadItem(List[i]), title);
+                                                               html.SaveToFile(SaveDialog.FileName);
+                                                               THTMLCreate.SkinorCSSFilesCopy(ExtractFilePath(SaveDialog.FileName));
+                                                       finally
+                                                               html.Free;
+                                                       end;
+                                               end;
+                                       end;
+                               end;
+                       end;
+               end;
+       finally
+               GikoForm.ScreenCursor := crDefault;
+               List.Free;
+       end;
+end;
+// *************************************************************************
+//! \91I\91ð\83X\83\8c\83b\83h\82ðHTML\89»\82µ\82Ä\95Û\91
+// *************************************************************************
+procedure TGikoDM.SelectItemSaveForHTMLExecute(Sender: TObject);
+begin
+       SelectThreadSaveToFile(false);
+end;
+// *************************************************************************
+//! \91I\91ð\83X\83\8c\83b\83h\82ðDAT\8c`\8e®\82Ì\82Ü\82Ü\95Û\91
+// *************************************************************************
+procedure TGikoDM.SelectItemSaveForDatExecute(Sender: TObject);
+begin
+       SelectThreadSaveToFile(true);
+end;
+// *************************************************************************
+//! \83^\83u\82Ì\8f\87\94Ô\82ð\95Û\91
+// *************************************************************************
+procedure TGikoDM.TabsSaveActionExecute(Sender: TObject);
+const
+       Filename = 'tab.sav';
+       bFilename = '~tab.sav';
+var
+       SaveStringList: TStringList;
+begin
+       SaveStringList := TStringList.Create;
+       try
+               GetTabURLs(SaveStringList);
+        try
+            if FileExists( GikoSys.GetAppDir + Filename) then begin
+                CopyFile(PChar(GikoSys.GetAppDir + Filename),
+                    PChar(GikoSys.GetAppDir + bFilename), False);
+            end;
+        except
+        end;
+        SaveStringList.SaveToFile(GikoSys.GetAppDir + Filename);
+       finally
+               SaveStringList.Free;
+       end;
+end;
+// *************************************************************************
+//! \83u\83\89\83E\83U\83^\83u\82É\90Ý\92è\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ÌURL\8eæ\93¾
+// *************************************************************************
+procedure TGikoDM.GetTabURLs(AStringList: TStringList);
+var
+  rec : TBrowserRecord;
+  i : Integer;
+begin
+    for i := 0 to GikoForm.BrowserTab.Tabs.Count -1 do begin
+        try
+            rec := TBrowserRecord( GikoForm.BrowserTab.Tabs.Objects[ i ] );
+            if( rec <> nil) and (rec.Thread <> nil) then
+                AStringList.Add( rec.Thread.URL );
+        except
+        end;
+    end;
+end;
+// *************************************************************************
+//! \8ew\92è\82³\82ê\82½URL\82ð\8aJ\82«\81C\90æ\93ª\82Ì\83^\83u\82É\83t\83H\81[\83J\83X\82·\82é
+// *************************************************************************
+procedure TGikoDM.OpenURLs(AStringList: TStringList);
+var
+    GikoTab                    : TGikoTabAppend;
+    i, bound : Integer;
+       item        : TThreadItem;
+begin
+    if (AStringList <> nil) then begin
+        GikoTab := GikoSys.Setting.BrowserTabAppend;
+        try
+            bound    := AStringList.Count - 1;
+            if bound > -1 then begin
+                GikoSys.Setting.BrowserTabAppend := gtaLast;
+                for i := 0 to bound do begin
+                    item := BBSsFindThreadFromURL( AStringList[ i ] );
+                    if item <> nil then
+                        GikoForm.InsertBrowserTab( item, false );
+                end;
+                //\8dÅ\8f\89\82Ì\82P\96\87\82É\90Ý\92è
+                if (GikoSys.Setting.URLDisplay) and
+                    (GikoForm.BrowserTab.Tabs.Count > 0) then begin
+                                       GikoForm.AddressComboBox.Text :=
+                        TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[0]).Thread.URL;
+                end;
+            end;
+        finally
+            GikoSys.Setting.BrowserTabAppend := GikoTab;
+        end;
+    end;
+end;
+// *************************************************************************
+//! \83^\83u\82Ì\8f\87\94Ô\82ð\95\9c\8c³
+// *************************************************************************
+procedure TGikoDM.TabsOpenActionExecute(Sender: TObject);
+const
+       TABFILE = 'tab.sav';
+var
+       URLs                            : TStringList;
+       fileName                : string;
+begin
+    URLs := TStringList.Create();
+       try
+               fileName := GikoSys.GetAppDir + TABFILE;
+               if FileExists(fileName) then begin
+                   try
+                               URLs.LoadFromFile(fileName);
+                if (URLs.Count = 0) then begin
+                    // \8bó\82Ì\83t\83@\83C\83\8b\82Ì\8fê\8d\87\81C\83o\83b\83N\83A\83b\83v\82ð\8dí\8f\9c\82µ\82È\82¢\82½\82ß\82É\8dí\8f\9c
+                    SysUtils.DeleteFile(fileName);
+                end else begin
+                    OpenURLs(URLs);
+                end;
+               except
+                       on EFOpenError do ShowMessage('\83^\83u\83t\83@\83C\83\8b\82ª\8aJ\82¯\82Ü\82¹\82ñ');
+            end;
+        end;
+       finally
+        URLs.Free;
+       end;
+
+    if (GikoForm.BrowserTab.Tabs.Count = 0) and
+        (TabsOpenAction.Tag <> 1) then  begin
+        ShowMessage('\95\\8e¦\82·\82é\83^\83u\82ª\82 \82è\82Ü\82¹\82ñ\81B');
+    end;
+end;
+// *************************************************************************
+//! Be2ch\82É\83\8d\83O\83C\83\93/\83\8d\83O\83A\83E\83g\82·\82é
+// *************************************************************************
+procedure TGikoDM.BeLogInOutActionExecute(Sender: TObject);
+begin
+       GikoSys.Setting.BeLogin := not GikoSys.Setting.BeLogin;
+end;
+// *************************************************************************
+//! Be2ch\82É\83\8d\83O\83C\83\93/\83\8d\83O\83A\83E\83g\82·\82é\82ÌUpdate\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoDM.BeLogInOutActionUpdate(Sender: TObject);
+begin
+       if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin
+               if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true
+               else BeLogInOutAction.Checked := false;
+               BeLogInOutAction.Enabled := true
+       end else
+               BeLogInOutAction.Enabled := false;
+end;
+////////////////////////////////\83t\83@\83C\83\8b\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
+// *************************************************************************
+//! \83R\83R\82Ü\82Å\93Ç\82ñ\82¾
+// *************************************************************************
+procedure TGikoDM.KokomadeActionExecute(Sender: TObject);
+var
+       No: Integer;
+       ThreadItem: TThreadItem;
+begin
+       No := GikoForm.KokoPopupMenu.Tag;
+       if No = 0
+        then Exit;
+       ThreadItem := GikoForm.KokoPopupThreadItem;
+       if not Assigned(ThreadItem) then
+        Exit;
+       ThreadItem.Kokomade := No;
+       GikoForm.ActiveContent.Thread.ScrollTop := GikoForm.ActiveContent.Browser.OleObject.Document.Body.ScrollTop;
+       GikoForm.ActiveContent.Repaint := true;
+       GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
+       //INFO 2005/11/19 \88ê\92U\89B\95Á\81A\95K\97v\82È\82çGikoForm\82Ì\95û\82É\83\81\83\\83b\83h\82ð\92Ç\89Á\82·\82é
+       //Application.ProcessMessages;
+end;
+// *************************************************************************
+//! \91S\95\94\93Ç\82ñ\82¾
+// *************************************************************************
+procedure TGikoDM.ZenbuActionExecute(Sender: TObject);
+var
+       ThreadItem: TThreadItem;
+begin
+       ThreadItem := GikoForm.GetActiveContent(True);
+       if ThreadItem = nil then Exit;
+       ThreadItem.Kokomade := -1;
+       GikoForm.ActiveContent.Thread.ScrollTop := GikoForm.ActiveContent.Browser.OleObject.Document.Body.ScrollTop;
+       GikoForm.ActiveContent.Repaint := true;
+       GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
+       //INFO 2005/11/19 \88ê\92U\89B\95Á\81A\95K\97v\82È\82çGikoForm\82Ì\95û\82É\83\81\83\\83b\83h\82ð\92Ç\89Á\82·\82é
+       //Application.ProcessMessages;
+end;
+// *************************************************************************
+//! \83R\83R\82É\83\8c\83X
+// *************************************************************************
+procedure TGikoDM.KokoResActionExecute(Sender: TObject);
+var
+       Editor: TEditorForm;
+       Item: TThreadItem;
+       Number: Integer;
+begin
+       Number := GikoForm.KokoPopupMenu.Tag;
+       if Number = 0 then Exit;
+       Item := GikoForm.KokoPopupThreadItem;
+       if Item = nil then Exit;
+
+       Editor := TEditorForm.Create(GikoForm);
+       Editor.SetThreadItem(Item);
+       Editor.BodyEdit.Text := '>>' + IntToStr(Number) + #13#10;
+       Editor.Show;
+       Editor.BodyEdit.SetFocus;
+end;
+// *************************************************************************
+//! \91I\91ð\82µ\82½\83\8c\83X\82ð\83R\83s\81[\82·\82é
+// *************************************************************************
+procedure TGikoDM.KoreCopyExecute(Sender: TObject);
+begin
+       GikoForm.KonoresCopy(GikoForm.KokoPopupMenu.Tag, true);
+end;
+// *************************************************************************
+//! \91I\91ð\82µ\82½\83\8c\83X\82ð\83R\83s\81[\82·\82é
+// *************************************************************************
+procedure TGikoDM.SameIDResAnchorActionExecute(Sender: TObject);
+const
+    LIMIT = 20;
+var
+       ThreadItem : TThreadItem;
+       No : Integer;
+       AID: string;
+begin
+       No := GikoForm.KokoPopupMenu.Tag;
+       if No = 0 then Exit;
+       ThreadItem := GikoForm.KokoPopupThreadItem;
+       if ThreadItem = nil then Exit;
+
+    AID := GikoSys.GetResID(No, ThreadItem);
+    if not IsNoValidID(AID) then begin
+        GikoForm.ShowSameIDAncher(AID);
+    end;
+end;
+// *************************************************************************
+//! \82±\82Ì\83\8c\83X\82 \82Ú\81`\82ñ\81@\81i\92Ê\8fí\81j
+// *************************************************************************
+procedure TGikoDM.IndividualAbon1ActionExecute(Sender: TObject);
+begin
+       GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 1);
+end;
+// *************************************************************************
+//! \82±\82Ì\83\8c\83X\82 \82Ú\81`\82ñ\81@\81i\93§\96¾\81j
+// *************************************************************************
+procedure TGikoDM.IndividualAbon0ActionExecute(Sender: TObject);
+begin
+       GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 0);
+end;
+// *************************************************************************
+//! \82±\82Ì\83\8c\83X\82 \82Ú\81`\82ñ\89ð\8f\9c
+// *************************************************************************
+procedure TGikoDM.AntiIndividualAbonActionExecute(Sender: TObject);
+var
+       IndividualForm :TIndividualAbonForm;
+       ThreadItem : TThreadItem;
+       msg : String;
+       ReadList                : TStringList;
+       wordCount               : TWordCount;
+begin
+       IndividualForm := TIndividualAbonForm.Create(GikoForm);
+       try
+               ThreadItem := GikoForm.GetActiveContent(True);
+               ThreadItem.ScrollTop := GikoForm.ActiveContent.Browser.OleObject.Document.Body.ScrollTop;
+               if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
+                       if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
+                               ReadList                := TStringList.Create;
+                               wordCount               := TWordCount.Create;
+                               try
+{$IFDEF SPAM_FILTER_ENABLED}
+                                       // \83X\83p\83\80\82ð\89ð\8f\9c
+                                       ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
+                                       GikoSys.SpamCountWord( ReadList[ KokoPopupMenu.Tag - 1 ], wordCount );
+                                       GikoSys.SpamForget( wordCount, True );  // \83X\83p\83\80\82ð\89ð\8f\9c
+                                       GikoSys.SpamLearn( wordCount, False );  // \83n\83\80\82É\90Ý\92è
+{$ENDIF}
+                                       if IndividualForm.DeleteNG(GikoForm.KokoPopupMenu.Tag) then begin
+                                               GikoForm.ActiveContent.Repaint := true;
+                                               GikoForm.InsertBrowserTab( ThreadItem, True );
+                                       end;
+                               finally
+                                       wordCount.Free;
+                                       ReadList.Free;
+                               end;
+                       end else begin
+                               msg := '\82±\82Ì\83X\83\8c\83b\83h\82Å\82Í\8cÂ\95Ê\82 \82Ú\81`\82ñ\82ð\8ds\82Á\82Ä\82Ü\82¹\82ñ';
+                               MsgBox(GikoForm.Handle, msg, '\83\81\83b\83Z\81[\83W', MB_OK);
+                       end;
+               end;
+       finally
+               IndividualForm.Release;
+       end;
+end;
+// *************************************************************************
+//! \82±\82Ì\83\8c\83X\82 \82Ú\81`\82ñ\89ð\8f\9c\83\8c\83X\94Ô\8d\86\8ew\92è\81i\83_\83C\83A\83\8d\83O\95\\8e¦\81j
+// *************************************************************************
+procedure TGikoDM.AntiIndividualAbonDlgActionExecute(Sender: TObject);
+var
+       IndividualForm :TIndividualAbonForm;
+       ThreadItem : TThreadItem;
+       msg : String;
+       ReadList                : TStringList;
+       wordCount               : TWordCount;
+{$IFDEF SPAM_FILTER_ENABLED}
+       i : Integer;
+{$ENDIF}
+begin
+       IndividualForm := TIndividualAbonForm.Create(GikoForm);
+       try
+               ThreadItem := GikoForm.GetActiveContent(True);
+               ThreadItem.ScrollTop := GikoForm.ActiveContent.Browser.OleObject.Document.Body.ScrollTop;
+               if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
+                       if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
+                               if (IndividualForm.ShowModal = mrOK) then begin
+                                       ReadList                := TStringList.Create;
+                                       wordCount               := TWordCount.Create;
+                                       try
+{$IFDEF SPAM_FILTER_ENABLED}
+                                               // \83X\83p\83\80\82ð\89ð\8f\9c
+                                               ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
+                                               for i := 0 to IndividualForm.DeleteList.Count - 1 do begin
+                                                       GikoSys.SpamCountWord( ReadList[ StrToInt(IndividualForm.DeleteList[i]) - 1 ], wordCount );
+                                                       GikoSys.SpamForget( wordCount, True );  // \83X\83p\83\80\82ð\89ð\8f\9c
+                                                       GikoSys.SpamLearn( wordCount, False );  // \83n\83\80\82É\90Ý\92è
+                                               end;
+{$ENDIF}
+                                               if IndividualForm.FRepaint then begin
+                                                       GikoForm.ActiveContent.Repaint := true;
+                                                       GikoForm.InsertBrowserTab( ThreadItem, True );
+                                               end;
+                                       finally
+                                               wordCount.Free;
+                                               ReadList.Free;
+                                       end;
+                               end;
+                       end else begin
+                               msg := '\82±\82Ì\83X\83\8c\83b\83h\82Å\82Í\8cÂ\95Ê\82 \82Ú\81`\82ñ\82ð\8ds\82Á\82Ä\82Ü\82¹\82ñ';
+                               MsgBox(GikoForm.Handle, msg, '\83\81\83b\83Z\81[\83W', MB_OK);
+                       end;
+               end;
+       finally
+               IndividualForm.Release;
+       end;
+end;
+// *************************************************************************
+//! \82±\82ÌID\82 \82Ú\81`\82ñ\81@\92Ê\8fí
+// *************************************************************************
+procedure TGikoDM.IndividualAbonID1ActionExecute(Sender: TObject);
+begin
+       GikoForm.IndividualAbonID(1);
+end;
+// *************************************************************************
+//! \82±\82ÌID\82 \82Ú\81`\82ñ\81@\93§\96¾
+// *************************************************************************
+procedure TGikoDM.IndividualAbonID0ActionExecute(Sender: TObject);
+begin
+       GikoForm.IndividualAbonID(0);
+end;
+////////////////////////////////\83u\83\89\83E\83U\83|\83b\83v\83A\83b\83v\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
+// *************************************************************************
+//! \83M\83R\83i\83r\82Ì\83E\83F\83u\83T\83C\83g\82ð\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.GikoNaviWebPageActionExecute(Sender: TObject);
+begin
+       GikoSys.OpenBrowser(PROTOCOL_HTTP + URL_GIKONAVI, gbtAuto);
+end;
+// *************************************************************************
+//! \83\82\83i\83W\83\89\82Ì\83E\83F\83u\83T\83C\83g\82ð\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.MonazillaWebPageActionExecute(Sender: TObject);
+begin
+       GikoSys.OpenBrowser(PROTOCOL_HTTP + URL_MONAZILLA, gbtAuto);
+end;
+// *************************************************************************
+//! \82Q\82¿\82á\82ñ\82Ë\82é\83g\83b\83v\83y\81[\83W\82ð\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.BBS2chWebPageActionExecute(Sender: TObject);
+begin
+       GikoSys.OpenBrowser(PROTOCOL_HTTP + URL_2ch, gbtAuto);
+end;
+// *************************************************************************
+//! \83M\83R\83i\83r\82Ì\83t\83H\83\8b\83_\82ð\8aJ\82­
+// *************************************************************************
+procedure TGikoDM.GikoFolderOpenActionExecute(Sender: TObject);
+begin
+       GikoSys.CreateProcess('explorer.exe', '/e,"' + GikoSys.GetAppDir + '"');
+end;
+// *************************************************************************
+//! \83o\81[\83W\83\87\83\93\8fî\95ñ\82ð\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.AboutActionExecute(Sender: TObject);
+var
+       Dlg: TAboutDialog;
+begin
+       Dlg := TAboutDialog.Create(GikoForm);
+       try
+               Dlg.ShowModal;
+       finally
+               Dlg.Release;
+       end;
+end;
+// *************************************************************************
+//! \83M\83R\83i\83r\82Ì\83w\83\8b\83v\82ð\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.GikoHelpActionExecute(Sender: TObject);
+var
+       FileName: string;
+begin
+       FileName := GikoSys.GetAppDir + 'batahlp.chm';
+       if not FileExists(FileName) then begin
+               MsgBox(
+                       GikoForm.Handle,
+                       '\83w\83\8b\83v\82ª\8c©\82Â\82©\82è\82Ü\82¹\82ñ\82Å\82µ\82½' + #13#10 +
+                       '\83w\83\8b\83v\83t\83@\83C\83\8b\82ð\83M\83R\83i\83r\82Ì\83t\83H\83\8b\83_\82É\92u\82¢\82Ä\82­\82¾\82³\82¢' + #13#10 +
+                       '\83w\83\8b\83v\82Í\83M\83R\83i\83r\82Ì\83T\83C\83g\82É\92u\82¢\82Ä\82 \82è\82Ü\82·',
+                       MSG_ERROR,
+                       MB_ICONSTOP);
+               Exit;
+       end;
+       ShellExecute(GikoForm.Handle, 'open', PChar(FileName), '', PChar(GikoSys.GetAppDir), SW_SHOW);
+end;
+// *************************************************************************
+//! \83M\83R\83i\83rWiki\82Ì\83E\83F\83u\83T\83C\83g\82ð\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.WikiFAQWebPageActionExecute(Sender: TObject);
+begin
+       GikoSys.OpenBrowser(PROTOCOL_HTTP + URL_Wiki, gbtAuto);
+end;
+////////////////////////////////\83w\83\8b\83v\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
+// *************************************************************************
+//! \83\8a\83X\83g\94Ô\8d\86\95\\8e¦\82ð\95Ï\8dX\82·\82é
+// *************************************************************************
+procedure TGikoDM.ListNumberVisibleActionExecute(Sender: TObject);
+begin
+       GikoSys.Setting.ListViewNo := ListNumberVisibleAction.Checked;
+       GikoForm.ListView.Refresh;
+end;
+// *************************************************************************
+//! \8fã\88Ê\83t\83H\83\8b\83_\82É\88Ú\93®\82·\82é
+// *************************************************************************
+procedure TGikoDM.UpFolderActionExecute(Sender: TObject);
+begin
+       if GikoForm.GetActiveList is TBoard then begin
+               if TBoard(GikoForm.GetActiveList).ParentCategory <> nil then
+                       GikoForm.SelectTreeNode(TBoard(GikoForm.GetActiveList).ParentCategory, True);
+       end else if GikoForm.GetActiveList is TCategory then begin
+               GikoForm.SelectTreeNode(TCategory(GikoForm.GetActiveList).ParenTBBS, True);
+       end;
+end;
+// *************************************************************************
+//! \8fã\88Ê\83t\83H\83\8b\83_\82É\88Ú\93®\82·\82éUpDate\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoDM.UpFolderActionUpdate(Sender: TObject);
+begin
+       UpFolderAction.Enabled := not (GikoForm.GetActiveList is TBBS) and
+        (GikoForm.GetActiveList <> BoardGroup.SpecialBoard);
+end;
+// *************************************************************************
+//! \95\\8e¦\81@\95\\8e¦\83\8a\83X\83g\82Ì\83\82\81[\83h\95Ï\8dX
+// *************************************************************************
+procedure TGikoDM.IconStyleExecute(Sender: TObject);
+begin
+       case GikoForm.ListView.ViewStyle of
+               vsIcon: SmallIconAction.Execute;
+               vsSmallIcon: ListIconAction.Execute;
+               vsList: DetailIconAction.Execute;
+               vsReport: LargeIconAction.Execute;
+       end;
+end;
+// *************************************************************************
+//! SelectComboBox\82Ì\92l\82ð\83N\83\8a\83A\82·\82é
+// *************************************************************************
+procedure TGikoDM.ClearSelectComboBox;
+begin
+       if GikoForm.SelectComboBoxPanel.Visible then begin
+               GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
+               GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
+               GikoForm.ListView.SetFocus;
+       end;
+end;
+// *************************************************************************
+//! \83X\83\8c\83b\83h\82ð\82·\82×\82Ä\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.AllItemActionExecute(Sender: TObject);
+begin
+       try
+               if GikoForm.ViewType <> gvtAll then
+                       GikoForm.SetListViewType(gvtAll);
+               GikoSys.Setting.ThreadRange := gtrAll;
+               AllItemAction.Checked           := True;
+               // SelectComboBox \82Ì\97\9a\97ð\82ð\8dX\90V\82µ\82Ä\82¨\82­
+               GikoForm.ModifySelectList;
+               // SelectComboBox \82Ì\92l\82ð\83N\83\8a\83A
+               ClearSelectComboBox;
+       except
+       end;
+end;
+// *************************************************************************
+//! \83\8d\83O\97L\82è\83X\83\8c\83b\83h\82Ì\82Ý\82ð\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.LogItemActionExecute(Sender: TObject);
+begin
+       try
+               if GikoForm.ViewType <> gvtLog then
+                       GikoForm.SetListViewType(gvtLog);
+               GikoSys.Setting.ThreadRange     := gtrLog;
+               LogItemAction.Checked := True;
+               // SelectComboBox \82Ì\97\9a\97ð\82ð\8dX\90V\82µ\82Ä\82¨\82­
+               GikoForm.ModifySelectList;
+               // SelectComboBox \82Ì\92l\82ð\83N\83\8a\83A
+               ClearSelectComboBox;
+       except
+       end;
+end;
+// *************************************************************************
+//! \90V\92\85\83X\83\8c\83b\83h\82Ì\82Ý\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.NewItemActionExecute(Sender: TObject);
+begin
+       try
+
+               if GikoForm.ViewType <> gvtNew then
+                       GikoForm.SetListViewType(gvtNew);
+               GikoSys.Setting.ThreadRange     := gtrNew;
+               NewItemAction.Checked := True;
+               // SelectComboBox \82Ì\97\9a\97ð\82ð\8dX\90V\82µ\82Ä\82¨\82­
+               GikoForm.ModifySelectList;
+               // SelectComboBox \82Ì\92l\82ð\83N\83\8a\83A
+               ClearSelectComboBox;
+       except
+       end;
+end;
+// *************************************************************************
+//! DAT\97\8e\82¿\83X\83\8c\83b\83h\82Ì\82Ý\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.ArchiveItemActionExecute(Sender: TObject);
+begin
+       try
+               if GikoForm.ViewType <> gvtArch then
+                       GikoForm.SetListViewType(gvtArch);
+               GikoSys.Setting.ThreadRange     := gtrArch;
+               ArchiveItemAction.Checked := True;
+               // SelectComboBox \82Ì\97\9a\97ð\82ð\8dX\90V\82µ\82Ä\82¨\82­
+               GikoForm.ModifySelectList;
+               // SelectComboBox \82Ì\92l\82ð\83N\83\8a\83A
+               ClearSelectComboBox;
+       except
+       end;
+end;
+// *************************************************************************
+//! \90\91\83X\83\8c\83b\83h\82Ì\82Ý\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.LiveItemActionExecute(Sender: TObject);
+begin
+       try
+               if GikoForm.ViewType <> gvtLive then
+                       GikoForm.SetListViewType(gvtLive);
+               GikoSys.Setting.ThreadRange     := gtrLive;
+               LiveItemAction.Checked := True;
+               // SelectComboBox \82Ì\97\9a\97ð\82ð\8dX\90V\82µ\82Ä\82¨\82­
+               GikoForm.ModifySelectList;
+               // SelectComboBox \82Ì\92l\82ð\83N\83\8a\83A
+               ClearSelectComboBox;
+       except
+       end;
+end;
+
+// *************************************************************************
+//! \83X\83\8c\83b\83h\82Ì\95\\8e¦\94Í\88Í\82ð\90Ý\92è
+// *************************************************************************
+procedure TGikoDM.ThreadRangeActionExecute(Sender: TObject);
+begin
+       case GikoSys.Setting.ThreadRange of
+       gtrAll: AllItemAction.Execute;
+       gtrLog: LogItemAction.Execute;
+       gtrNew: NewItemAction.Execute;
+       gtrArch: ArchiveItemAction.Execute;
+       gtrLive: LiveItemAction.Execute;
+       end;
+end;
+// *************************************************************************
+//! \83X\83\8c\83b\83h\8di\8d\9e\82Ý\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.SelectItemActionExecute(Sender: TObject);
+var
+       idx: Integer;
+       Dlg: TListSelectDialog;
+begin
+       try
+               if GikoForm.SelectComboBoxPanel.Visible then begin
+                       if GikoForm.SelectComboBoxPanel.Left + GikoForm.SelectComboBoxPanel.Width < GikoForm.ListToolBar.Width then begin
+                               // SelectComboBox \82ª\82 \82é\8fê\8d\87\82Í\83t\83H\81[\83J\83X\82ð\88Ú\82·
+                               if GikoSys.Setting.ListOrientation = gloHorizontal then begin
+                                       if GikoSys.Setting.ListWidthState = glsMax then
+                                               BrowserMinAction.Execute;
+                               end else begin
+                                       if GikoSys.Setting.ListHeightState = glsMax then
+                                               BrowserMinAction.Execute;
+                               end;
+                               GikoForm.SelectComboBox.SetFocus;
+                               exit;
+                       end;
+               end;
+       except
+       end;
+
+       if GikoForm.SelectComboBox.Text = SELECTCOMBOBOX_NAME then begin
+               GikoForm.SelectComboBox.Text := '';
+               GikoForm.SelectComboBox.Color := clWindow;
+       end;
+
+       AllItemAction.Checked := False;
+       LogItemAction.Checked := False;
+       NewItemAction.Checked := False;
+       //SelectItemAction.Checked := True;
+       GikoForm.ModifySelectList;
+       Dlg := TListSelectDialog.Create(GikoForm);
+       try
+               Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
+               Dlg.SelectComboBox.Text := GikoForm.SelectComboBox.Text;
+               Dlg.ShowModal;
+               if Dlg.ModalResult = mrCancel then begin
+                       if Length( GikoForm.SelectComboBox.Text ) = 0 then begin
+                               AllItemAction.Checked := True;
+                               GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
+                               GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
+                       end;
+
+                       if GikoForm.GetActiveList is TBoard then
+                               GikoForm.SetListViewType(gvtUser, TBoard(GikoForm.GetActiveList).ParentCategory.ParenTBBS.SelectText , Dlg.KubetsuCheckBox.Checked);
+               end else begin
+                       idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
+                       if idx <> -1 then
+                               GikoSys.Setting.SelectTextList.Delete(idx);
+                       GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
+                       while Dlg.SelectComboBox.Items.Count > 100 do begin
+                               Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
+                       end;
+
+                       if Length( Dlg.SelectComboBox.Text ) = 0 then begin
+                               GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
+                               GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
+                       end else begin
+                               GikoForm.SelectComboBox.Text := Dlg.SelectComboBox.Text;
+                               GikoForm.SelectComboBox.Color := clWindow;
+                       end;
+                       GikoForm.SetListViewType(gvtUser, Dlg.SelectComboBox.Text, Dlg.KubetsuCheckBox.Checked);
+               end;
+       finally
+               Dlg.Release;
+       end;
+end;
+// *************************************************************************
+//! \90V\83X\83\8c\8f\91\82«\8d\9e\82Ý\83E\83B\83\93\83h\83E\82ð\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.ThreadEditorActionExecute(Sender: TObject);
+var
+       Editor: TEditorForm;
+begin
+       if not (GikoForm.GetActiveList is TBoard) then
+               Exit;
+       Editor := TEditorForm.Create(GikoForm);
+       Editor.SetBoard(TBoard(GikoForm.GetActiveList));
+       Editor.Show;
+       Editor.BodyEdit.SetFocus;
+end;
+// *************************************************************************
+//! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\94Â\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.BoardIEActionExecute(Sender: TObject);
+var
+       URL: string;
+begin
+       if GikoForm.GetActiveList is TBoard then begin
+               URL := TBoard(GikoForm.GetActiveList).URL;
+               GikoSys.OpenBrowser(URL, gbtAuto);
+       end;
+end;
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ÌURL\82ð\83R\83s\81[\82·\82é
+// *************************************************************************
+procedure TGikoDM.SelectItemURLCopyActionExecute(Sender: TObject);
+var
+       List: TList;
+       i: Integer;
+       s: string;
+begin
+       s := '';
+       List := TList.Create;
+       try
+               GikoForm.SelectListItem(List);
+               for i := 0 to List.Count - 1 do begin
+                       if TObject(List[i]) is TBoard then
+                               s := s + TBoard(List[i]).URL + #13#10
+                       else if TObject(List[i]) is TThreadItem then
+                               s := s + TThreadItem(List[i]).URL + #13#10;
+               end;
+               if s <> '' then
+                       Clipboard.AsText := s;
+       finally
+               List.Free;
+       end;
+end;
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ÌURL\82ð\83R\83s\81[\82·\82éUpdate\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoDM.SelectItemURLCopyActionUpdate(Sender: TObject);
+begin
+       if ((GikoForm.GetActiveList is TBoard) or
+               (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
+               TAction(Sender).Enabled := True
+       else
+               TAction(Sender).Enabled := False;
+end;
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82Ä\82¢\82é\94Â\82Ì\96¼\91O\82ð\83R\83s\81[\82·\82é
+// *************************************************************************
+procedure TGikoDM.SelectItemNameCopyActionExecute(Sender: TObject);
+var
+       List: TList;
+       i: Integer;
+       s: string;
+begin
+       s := '';
+       List := TList.Create;
+       try
+               GikoForm.SelectListItem(List);
+               for i := 0 to List.Count - 1 do begin
+            if TObject(List[i]) is TCategory then
+                s := s + TCategory(List[i]).Title + #13#10
+                       else if TObject(List[i]) is TBoard then
+                               s := s + TBoard(List[i]).Title + #13#10
+                       else if TObject(List[i]) is TThreadItem then
+                               s := s + TThreadItem(List[i]).Title + #13#10;
+               end;
+               if s <> '' then
+                       Clipboard.AsText := s;
+       finally
+               List.Free;
+       end;
+end;
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82Ä\82¢\82é\94Â\82Ì\96¼\91O\82ð\83R\83s\81[\82·\82éUpdate\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoDM.SelectItemNameCopyActionUpdate(Sender: TObject);
+begin
+       if ((GikoForm.GetActiveList is TBBS) or
+        (GikoForm.GetActiveList is TBoard) or
+               (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
+               TAction(Sender).Enabled := True
+       else
+               TAction(Sender).Enabled := False;
+end;
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\96¼\91O\82ÆURL\82ð\83R\83s\81[\82·\82é
+// *************************************************************************
+procedure TGikoDM.SelectItemNameURLCopyActionExecute(Sender: TObject);
+var
+       List: TList;
+       i: Integer;
+       s: string;
+begin
+       s := '';
+       List := TList.Create;
+       try
+               GikoForm.SelectListItem(List);
+               for i := 0 to List.Count - 1 do begin
+                       if TObject(List[i]) is TBoard then
+                               s := s + TBoard(List[i]).Title + #13#10 + TBoard(List[i]).URL + #13#10
+                       else if TObject(List[i]) is TThreadItem then
+                               s := s + TThreadItem(List[i]).Title + #13#10 + TThreadItem(List[i]).URL + #13#10;
+               end;
+               if s <> '' then
+                       Clipboard.AsText := s;
+       finally
+               List.Free;
+       end;
+end;
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\88ê\97\97\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
+// *************************************************************************
+procedure TGikoDM.SelectListReloadActionExecute(Sender: TObject);
+var
+       i: Integer;
+       List: TList;
+       msg: string;
+       shiftDown: Boolean;
+begin
+       shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
+    GikoForm.ActiveListColumnSave;
+       if GikoForm.GetActiveList is TCategory then begin
+               List := TList.Create;
+               try
+                       GikoForm.SelectListItem(List);
+                       if List.Count > 5 then begin
+                               msg := '5\8cÂ\88È\8fã\82Í\8ew\92è\82Å\82«\82Ü\82¹\82ñ' + #13#10
+                                                + '\82Q\82¿\82á\82ñ\82Ë\82é\95\89\89×\8cy\8c¸\82É\82²\8b¦\97Í\82­\82¾\82³\82¢';
+                               MsgBox(GikoForm.Handle, msg, '\8cx\8d\90', MB_ICONEXCLAMATION);
+                               Exit;
+                       end;
+                       for i := 0 to List.Count - 1 do begin
+                               if TObject(List[i]) is TBoard then
+                                       GikoForm.DownloadList(TBoard(List[i]), shiftDown);
+                       end;
+               finally
+                       List.Free;
+               end;
+       end else if GikoForm.GetActiveList is TBoard then begin
+               GikoForm.DownloadList(TBoard(GikoForm.GetActiveList), shiftDown);
+       end;
+end;
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\88ê\97\97\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82éUpdate\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoDM.SelectListReloadActionUpdate(Sender: TObject);
+begin
+       if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
+               TAction(Sender).Enabled := True
+       else if GikoForm.GetActiveList is TBoard then begin
+               TAction(Sender).Enabled :=
+            (GikoForm.GetActiveList <> BoardGroup.SpecialBoard);
+       end else
+               TAction(Sender).Enabled := False;
+end;
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
+// *************************************************************************
+procedure TGikoDM.SelectThreadReloadActionExecute(Sender: TObject);
+var
+       List: TList;
+       i: Integer;
+       msg: string;
+       shiftDown: Boolean;
+begin
+       shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
+       List := TList.Create;
+       try
+               GikoForm.SelectListItem(List);
+               if List.Count > 10 then begin
+                       msg := '10\8cÂ\88È\8fã\82Í\8ew\92è\82Å\82«\82Ü\82¹\82ñ' + #13#10
+                                        + '\82Q\82¿\82á\82ñ\82Ë\82é\95\89\89×\8cy\8c¸\82É\82²\8b¦\97Í\82­\82¾\82³\82¢';
+                       MsgBox(GikoForm.Handle, msg, '\8cx\8d\90', MB_ICONEXCLAMATION);
+                       Exit;
+               end;
+               for i := 0 to List.Count - 1 do begin
+                       if TObject(List[i]) is TThreadItem then
+                               GikoForm.DownloadContent(TThreadItem(List[i]), shiftDown);
+               end;
+       finally
+               List.Free;
+       end;
+end;
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82éUpdate\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoDM.SelectThreadReloadActionUpdate(Sender: TObject);
+begin
+       TAction(Sender).Enabled :=
+               (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0);
+end;
+// *************************************************************************
+//! \83X\83\8c\83b\83h\8f\84\89ñ\97\\96ñ
+// *************************************************************************
+procedure TGikoDM.SelectReservActionExecute(Sender: TObject);
+begin
+       //INFO 2005/11/19 \83_\83~\81[\81H\81@by \82à\82\82ã
+       // \82±\82Ì\83R\83\81\83\93\83g\8dí\8f\9c\82µ\82Ä\82Í\91Ê\96Ú
+end;
+// *************************************************************************
+//! \83X\83\8c\83b\83h\8f\84\89ñ\97\\96ñUpdate\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoDM.SelectReservActionUpdate(Sender: TObject);
+var
+       i: Integer;
+       List: TList;
+begin
+       if (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0) then begin
+               List := TList.Create;
+               try
+                       GikoForm.SelectListItem(List);
+                       for i := 0 to List.Count - 1 do begin
+                               if TObject(List[i]) is TThreadItem then begin
+                                       if TThreadItem(List[i]).IsLogFile then begin
+                                               SelectReservAction.Enabled := True;
+                                               Exit;
+                                       end;
+                               end;
+                       end;
+                       SelectReservAction.Enabled := False;
+               finally
+                       List.Free;
+               end;
+       end else if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
+               SelectReservAction.Enabled := True
+       else
+               SelectReservAction.Enabled := False;
+end;
+// *************************************************************************
+//! \91I\91ð\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82É\90V\82µ\82¢\96¼\91O\82Å\8f\84\89ñ\97\\96ñ
+// *************************************************************************
+procedure TGikoDM.SelectNewRoundNameExecute(Sender: TObject);
+var
+       s: string;
+       Dlg: TRoundNameDialog;
+               cnt: Integer;
+
+begin
+       //\8cÄ\82Ñ\8fo\82µ\8c³\82ª\81ATAction\82ÅListView\82É\91I\91ð\82ª\82¢\82È\82¯\82ê\82Î\81AEXIT\82·\82é
+       if (Sender is TAction) and (GikoForm.ListView.Selected = nil) then
+               Exit;
+
+       //\93o\98^\8fã\8cÀ\83`\83F\83b\83N
+       cnt := RoundList.Count[grtBoard];
+       cnt := cnt + RoundList.Count[grtItem];
+       if cnt > 500 then begin
+                       MsgBox(GikoForm.Handle, '\8f\84\89ñ\82Í500\88È\8fã\93o\98^\82Å\82«\82Ü\82¹\82ñ', MSG_ERROR, MB_OK or MB_ICONSTOP);
+                       Exit;
+       end;
+
+       Dlg := TRoundNameDialog.Create(GikoForm);
+       try
+               Dlg.ShowModal;
+               if Dlg.ModalResult <> mrCancel then begin
+                       s := Trim(Dlg.RoundNameEdit.Text);
+                       if (Sender is TMenuItem) then begin
+                               GikoForm.SetSelectItemRound(True, s, TMenuItem(Sender).Parent.Name);
+                       end else if (Sender is TAction) then begin
+                               if (GikoForm.ListView.Selected <> nil) then begin
+                                       if (TObject(GikoForm.ListView.Selected.Data) is TThreadItem) then begin
+                                               GikoForm.SetSelectItemRound(True, s,
+                                                       TThreadItem(GikoForm.ListView.Selected.Data).Title);
+                                       end else if (TObject(GikoForm.ListView.Selected.Data) is TBoard) then begin
+                                               GikoForm.SetSelectItemRound(True, s,
+                                                       TBoard(GikoForm.ListView.Selected.Data).Title);
+                                       end;
+                               end;
+                       end;
+                       GikoForm.ListView.Refresh;
+               end;
+       finally
+               Dlg.Free;
+       end;
+end;
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82Ä\82¢\83X\83\8c\83b\83h\82Ì\8f\84\89ñ\82ð\8dí\8f\9c\82·\82é
+// *************************************************************************
+procedure TGikoDM.SelectDeleteRoundExecute(Sender: TObject);
+var
+       s : String;
+begin
+       if (Sender is TMenuItem) then begin
+               try
+                       GikoForm.SetSelectItemRound(False, '', TMenuItem(Sender).Parent.Name);
+               except
+               end;
+       end else if (Sender is TAction) then begin
+               try
+                       if GikoForm.ListView.Selected <> nil then begin
+                               if (TObject(GikoForm.ListView.Selected.Data) is TThreadItem) then begin
+                                       s := TThreadItem(GikoForm.ListView.Selected.Data).Title;
+                               end else if (TObject(GikoForm.ListView.Selected.Data) is TBoard) then begin
+                                       s := TBoard(GikoForm.ListView.Selected.Data).Title;
+                               end;
+                               GikoForm.SetSelectItemRound(False, '', s);
+
+                       end;
+               except
+               end;
+       end;
+       GikoForm.ListView.Refresh;
+end;
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82Ä\82¢\82é\94Â\82ð\82¨\8bC\82É\93ü\82è\82É\92Ç\89Á\82·\82é
+// *************************************************************************
+procedure TGikoDM.BoardFavoriteAddActionExecute(Sender: TObject);
+begin
+       if TObject(GikoForm.ListView.Selected.Data) is TBoard then
+               GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ListView.Selected.Data));
+end;
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82Ä\82¢\82é\94Â\82ð\82¨\8bC\82É\93ü\82è\82É\92Ç\89Á\82·\82éUpdate\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoDM.BoardFavoriteAddActionUpdate(Sender: TObject);
+begin
+       BoardFavoriteAddAction.Enabled :=
+               (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0);
+end;
+// *************************************************************************
+//! Explorer\82ÅLog\83t\83H\83\8b\83_\82ð\8aJ\82­
+// *************************************************************************
+procedure TGikoDM.LogFolderOpenActionExecute(Sender: TObject);
+var
+       List: TList;
+begin
+       if ((GikoSys.Setting.ListOrientation = gloVertical) and
+               (GikoSys.Setting.ListHeightState = glsMax)) or
+               ((GikoSys.Setting.ListOrientation = gloHorizontal) and
+               (GikoSys.Setting.ListWidthState = glsMax))      then begin
+               if(GikoForm.GetActiveContent <> nil) then begin
+                       GikoSys.CreateProcess('explorer.exe', '/e,"' + ExtractFilePath(GikoForm.GetActiveContent.FilePath) + '"');
+               end;
+       end else if GikoForm.GetActiveList is TCategory then begin
+               List := TList.Create;
+               try
+                       GikoForm.SelectListItem(List);
+                       GikoSys.CreateProcess('explorer.exe', '/e,"' + ExtractFilePath(TBoard(List[0]).FilePath) + '"');
+               finally
+                       List.Free;
+               end;
+       end else if GikoForm.GetActiveList is TBoard then begin
+               GikoSys.CreateProcess('explorer.exe', '/e,"' + ExtractFilePath(TBoard(GikoForm.GetActiveList).FilePath) + '"');
+       end;
+
+end;
+// *************************************************************************
+//! ActiveList\82ªTBoard\82©TCategory\82Å\83X\83\8c\88ê\97\97\82Å\82P\82Â\88È\8fã\91I\91ð\82µ\82Ä\82¢\82é\82Æ\97L\8cø\82É\82È\82éActionde\8b¤\92Ê
+// *************************************************************************
+procedure TGikoDM.LogFolderOpenActionUpdate(Sender: TObject);
+begin
+       if (((GikoForm.GetActiveList is TBoard) and
+        (GikoForm.GetActiveList <> BoardGroup.SpecialBoard))
+        or (GikoForm.GetActiveList is TCategory))
+               and (GikoForm.ListView.SelCount > 0) then
+               TAction(Sender).Enabled := True
+       else
+               TAction(Sender).Enabled := False;
+end;
+// *************************************************************************
+//! Header.txt\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.BrowsBoradHeadActionExecute(Sender: TObject);
+var
+       RefURL, URL : string;
+       List : TList;
+begin
+       RefURL := '';
+       if GikoForm.GetActiveList is TCategory then begin
+               List := TList.Create;
+               try
+                       GikoForm.SelectListItem(List);
+                       RefURL := TBoard(List[0]).URL;
+               finally
+                       List.Free;
+               end;
+       end else if GikoForm.GetActiveList is TBoard then begin
+               RefURL := TBoard(GikoForm.GetActiveList).URL
+       end;
+       if RefURL <> '' then begin
+               if RefURL[Length(RefURL)] <> '/' then
+                       URL     := RefURL + '/' + 'head.txt'
+               else
+                       URL     := RefURL + 'head.txt';
+
+               GikoForm.MoveToURL(URL);
+       end else begin
+               ShowMessage('\94Â\82ð\93Á\92è\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½\81B');
+       end;
+
+end;
+// *************************************************************************
+//! \83X\83\8c\88ê\97\97\82Ì\95\\8e¦\82µ\82Ä\82¢\82é\93à\97e\82É\82µ\82½\82ª\82Á\82Ä\81A\83\\81[\83g\83J\83\89\83\80\82Ì\88Ê\92u\82Æ\95û\8cü\82ð\8eæ\93¾\82·\82é
+// *************************************************************************
+function TGikoDM.GetSortProperties(List: TObject;
+ var vSortOrder: Boolean): Boolean;
+begin
+       Result := True;
+       if (List <> nil) then begin
+               if (List is TBBS) then begin
+                       vSortOrder := GikoSys.Setting.BBSSortOrder;
+               end else if (List is TCategory) then begin
+                       vSortOrder := GikoSys.Setting.CategorySortOrder;
+               end else if (List is TBoard) then begin
+                       vSortOrder := GikoSys.Setting.BoardSortOrder;
+               end else begin
+                       Result := False;
+               end;
+       end else begin
+               Result := False;
+       end;
+end;
+// *************************************************************************
+//! \8c»\8dÝ\82Ì\83J\83\89\83\80\82ð\83\\81[\83g\82·\82é
+// *************************************************************************
+procedure TGikoDM.SortActiveColumnActionExecute(Sender: TObject);
+var
+       i       : Integer;
+       so : boolean;
+begin
+       if GetSortProperties(GikoForm.GetActiveList, so) then begin
+               for i := 0 to GikoForm.ListView.Columns.Count - 1 do begin
+                       if (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT1) or
+                               (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT2) then begin
+                               so := not so;
+                               TListViewUtils.ListViewSort(nil, GikoForm.ListView,
+                                        GikoForm.ListView.Column[ i ], ListNumberVisibleAction.Checked,
+                                        so);
+                               break;
+                       end;
+               end;
+       end;
+end;
+// *************************************************************************
+//! \89E\97×\82Ì\83J\83\89\83\80\82ð\83\\81[\83g
+// *************************************************************************
+procedure TGikoDM.SortNextColumnActionExecute(Sender: TObject);
+var
+       i, id   : Integer;
+begin
+       for i := 0 to GikoForm.ListView.Columns.Count - 1 do begin
+               if (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT1) or
+                       (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT2) then begin
+                       id := i + 1;
+                       if id > GikoForm.ListView.Columns.Count - 1 then
+                               id := 0;
+                       TListViewUtils.ListViewSort( nil, GikoForm.ListView,
+                               GikoForm.ListView.Column[ id ], ListNumberVisibleAction.Checked,
+                               id = 0);
+                       break;
+               end;
+       end;
+end;
+// *************************************************************************
+//! \8d\97×\82Ì\83J\83\89\83\80\82ð\83\\81[\83g
+// *************************************************************************
+procedure TGikoDM.SortPrevColumnActionExecute(Sender: TObject);
+var
+       i, id   : Integer;
+begin
+       for i := 0 to GikoForm.ListView.Columns.Count - 1 do begin
+               if (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT1) or
+                       (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT2) then begin
+                       id := i - 1;
+                       if id < 0 then
+                               id := GikoForm.ListView.Columns.Count - 1;
+                       TListViewUtils.ListViewSort( nil, GikoForm.ListView,
+                               GikoForm.ListView.Column[ id ], ListNumberVisibleAction.Checked,
+                               id = 0);
+                       break;
+               end;
+       end;
+end;
+////////////////////////////////\94Â\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
+// *************************************************************************
+//! \95W\8f\80\83c\81[\83\8b\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
+// *************************************************************************
+procedure TGikoDM.StdToolBarVisibleActionExecute(Sender: TObject);
+var
+       CoolBand: TCoolBand;
+begin
+       CoolBand := GikoForm.GetCoolBand(GikoForm.MainCoolBar, GikoForm.StdToolBar);
+       if CoolBand = nil then
+               Exit;
+       GikoSys.Setting.StdToolBarVisible := StdToolBarVisibleAction.Checked;
+       CoolBand.Visible := GikoSys.Setting.StdToolBarVisible;
+       GikoForm.StdToolBarVisiblePMenu.Checked := GikoSys.Setting.StdToolBarVisible;
+end;
+// *************************************************************************
+//! \83A\83h\83\8c\83X\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
+// *************************************************************************
+procedure TGikoDM.AddressBarVisibleActionExecute(Sender: TObject);
+var
+       CoolBand: TCoolBand;
+begin
+       CoolBand := GikoForm.GetCoolBand(GikoForm.MainCoolBar, GikoForm.AddressToolBar);
+       if CoolBand = nil then
+               Exit;
+       GikoSys.Setting.AddressBarVisible := AddressBarVisibleAction.Checked;
+       CoolBand.Visible := GikoSys.Setting.AddressBarVisible;
+       GikoForm.AddressToolBarVisiblePMenu.Checked := GikoSys.Setting.AddressBarVisible;
+end;
+// *************************************************************************
+//! \83\8a\83\93\83N\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
+// *************************************************************************
+procedure TGikoDM.LinkBarVisibleActionExecute(Sender: TObject);
+var
+       CoolBand: TCoolBand;
+begin
+       CoolBand := GikoForm.GetCoolBand(GikoForm.MainCoolBar, GikoForm.LinkToolBar);
+       if CoolBand = nil then
+               Exit;
+       GikoSys.Setting.LinkBarVisible := LinkBarVisibleAction.Checked;
+       CoolBand.Visible := GikoSys.Setting.LinkBarVisible;
+       GikoForm.LinkToolBarVisiblePMenu.Checked := GikoSys.Setting.LinkBarVisible;
+end;
+// *************************************************************************
+//! \83\8a\83X\83g\83c\81[\83\8b\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
+// *************************************************************************
+procedure TGikoDM.ListToolBarVisibleActionExecute(Sender: TObject);
+var
+       CoolBand: TCoolBand;
+begin
+       CoolBand := GikoForm.GetCoolBand(GikoForm.ListCoolBar, GikoForm.ListToolBar);
+       if CoolBand = nil then
+               Exit;
+       CoolBand.Visible := ListToolBarVisibleAction.Checked;
+       GikoSys.Setting.ListToolBarVisible := ListToolBarVisibleAction.Checked;
+end;
+// *************************************************************************
+//! \83\8a\83X\83g\96¼\8fÌ\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
+// *************************************************************************
+procedure TGikoDM.ListNameBarVisibleActionExecute(Sender: TObject);
+var
+       CoolBand: TCoolBand;
+begin
+       CoolBand := GikoForm.GetCoolBand(GikoForm.ListCoolBar, GikoForm.ListNameToolBar);
+       if CoolBand = nil then
+               Exit;
+       CoolBand.Visible := ListNameBarVisibleAction.Checked;
+       GikoSys.Setting.ListNameBarVisible := ListNameBarVisibleAction.Checked;
+end;
+// *************************************************************************
+//! \83u\83\89\83E\83U\83c\81[\83\8b\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
+// *************************************************************************
+procedure TGikoDM.BrowserToolBarVisibleActionExecute(Sender: TObject);
+var
+       CoolBand: TCoolBand;
+begin
+       CoolBand := GikoForm.GetCoolBand(GikoForm.BrowserCoolBar, GikoForm.BrowserToolBar);
+       if CoolBand = nil then
+               Exit;
+       CoolBand.Visible := BrowserToolBarVisibleAction.Checked;
+       GikoSys.Setting.BrowserToolBarVisible := BrowserToolBarVisibleAction.Checked;
+end;
+// *************************************************************************
+//! \83u\83\89\83E\83U\96¼\8fÌ\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
+// *************************************************************************
+procedure TGikoDM.BrowserNameBarVisibleActionExecute(Sender: TObject);
+var
+       CoolBand: TCoolBand;
+begin
+       CoolBand := GikoForm.GetCoolBand(GikoForm.BrowserCoolBar, GikoForm.BrowserNameToolBar);
+       if CoolBand = nil then
+               Exit;
+       CoolBand.Visible := BrowserNameBarVisibleAction.Checked;
+       GikoSys.Setting.BrowserNameBarVisible := BrowserNameBarVisibleAction.Checked;
+end;
+// *************************************************************************
+//! \83\81\83b\83Z\81[\83W\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
+// *************************************************************************
+procedure TGikoDM.MsgBarVisibleActionExecute(Sender: TObject);
+begin
+       GikoForm.MessageSplitter.Visible := MsgBarVisibleAction.Checked;
+       GikoForm.MessagePanel.Top :=
+               GikoForm.MessageSplitter.Top + GikoForm.MessageSplitter.Height;
+       GikoForm.MessageSplitter.Top := GikoForm.MessagePanel.Top + 1;
+       GikoForm.MessagePanel.Visible := MsgBarVisibleAction.Checked;
+       GikoSys.Setting.MessageBarVisible := MsgBarVisibleAction.Checked;
+end;
+// *************************************************************************
+//! \83\81\83b\83Z\81[\83W\83o\81[\82ð\95Â\82\82é
+// *************************************************************************
+procedure TGikoDM.MsgBarCloseActionExecute(Sender: TObject);
+begin
+       MsgBarVisibleAction.Execute;
+end;
+// *************************************************************************
+//! \83X\83e\81[\83^\83X\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
+// *************************************************************************
+procedure TGikoDM.StatusBarVisibleActionExecute(Sender: TObject);
+begin
+       GikoForm.StatusBar.Visible := StatusBarVisibleAction.Checked;
+       GikoSys.Setting.StatusBarVisible := StatusBarVisibleAction.Checked;
+end;
+// *************************************************************************
+//! \83L\83\83\83r\83l\83b\83g\82Ì\95\\8e¦\82ð\8cf\8e¦\94Â\82É\82·\82é
+// *************************************************************************
+procedure TGikoDM.CabinetBBSActionExecute(Sender: TObject);
+begin
+
+       if GikoForm.CabinetPanel.Visible then begin
+               if GikoForm.TreeType = gtt2ch then begin
+                       GikoForm.CabinetVisible( False );
+
+                       CabinetBBSAction.Checked := False;
+               end else begin
+                       CabinetBBSAction.Checked := True;
+               end;
+       end else begin
+               GikoForm.CabinetVisible( True );
+               CabinetBBSAction.Checked := True;
+       end;
+
+       if GikoForm.ActiveBBS = nil then
+               GikoForm.ShowBBSTree( BBSs[ 0 ] )
+       else
+               GikoForm.ShowBBSTree( GikoForm.ActiveBBS );
+
+end;
+// *************************************************************************
+//! \83L\83\83\83r\83l\83b\83g\82Ì\95\\8e¦\82ð\97\9a\97ð\83\8a\83X\83g\82É\82·\82é
+// *************************************************************************
+procedure TGikoDM.CabinetHistoryActionExecute(Sender: TObject);
+begin
+       GikoForm.ShowHistoryTree;
+end;
+// *************************************************************************
+//! \83L\83\83\83r\83l\83b\83g\82Ì\95\\8e¦\82ð\82¨\8bC\82É\93ü\82è\83\8a\83X\83g\82É\82·\82é
+// *************************************************************************
+procedure TGikoDM.CabinetFavoriteActionExecute(Sender: TObject);
+var
+       i, b : Integer;
+       item : TMenuItem;
+begin
+
+       if GikoForm.CabinetPanel.Visible then begin
+               if GikoForm.TreeType = gttFavorite then begin
+                       GikoForm.CabinetVisible( False );
+                       CabinetFavoriteAction.Checked := False;
+               end else begin
+                       CabinetFavoriteAction.Checked := True;
+               end;
+       end else begin
+               GikoForm.CabinetVisible( True );
+               CabinetFavoriteAction.Checked := True;
+       end;
+
+       // BBS...BBS, History, Favorite
+       GikoSys.Setting.CabinetIndex := GikoForm.CabinetSelectPopupMenu.Items.Count - 1;
+
+       b := GikoForm.CabinetSelectPopupMenu.Items.Count - 1;
+       for i := 0 to b do begin
+               item := GikoForm.CabinetSelectPopupMenu.Items[ i ];
+               if item is TBBSMenuItem then begin
+                       item.Checked := False;
+                       // CabinetMenu \82Í CabinetSelectPopupMenu \82Æ\93¯\82\82Æ\8c\88\82ß\82¤\82¿\82µ\82¿\82á\82¤
+                       GikoForm.CabinetMenu.Items[ i ].Checked := False;
+               end;
+       end;
+
+       // \83L\83\83\83r\83l\83b\83g\83c\81[\83\8b\83o\81[\8by\82Ñ\83L\83\83\83r\83l\83b\83g\82Ì\95\\8e¦\90Ø\91Ö
+       GikoForm.HistoryToolBar.Hide;
+       GikoForm.FavoriteToolBar.Show;
+       GikoForm.TreeView.Visible := False;
+       GikoForm.FavoriteTreeView.Visible := True;
+
+       GikoForm.CabinetSelectToolButton.Caption := '\82¨\8bC\82É\93ü\82è';
+       GikoForm.TreeType := gttFavorite;
+
+       // \83\81\83j\83\85\81[\8by\82Ñ\83{\83^\83\93\82Ì\83`\83F\83b\83N\82ð\90Ý\92è
+       CabinetBBSAction.Checked := False;
+       CabinetHistoryAction.Checked := False;
+
+       // \82¨\8bC\82É\93ü\82è\82Ì\83c\83\8a\81[\82ð\93W\8aJ
+       GikoForm.FavoriteTreeView.Items.GetFirstNode.Expanded := True;
+
+end;
+// *************************************************************************
+//! \83L\83\83\83r\83l\83b\83g\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
+// *************************************************************************
+procedure TGikoDM.CabinetVisibleActionExecute(Sender: TObject);
+begin
+       case GikoForm.TreeType of
+       gttHistory:             CabinetHistoryAction.Execute;
+       gttFavorite:    CabinetFavoriteAction.Execute;
+       else
+               CabinetBBSAction.Execute;
+       end;
+end;
+// *************************************************************************
+//! \83L\83\83\83r\83l\83b\83g\82ð\95Â\82\82é
+// *************************************************************************
+procedure TGikoDM.CabinetCloseActionExecute(Sender: TObject);
+begin
+       //INFO 2005/11/19 \82±\82Ì\83A\83N\83V\83\87\83\93\82É\82Í\89½\82à\90Ý\92è\82³\82ê\82Ä\82¢\82È\82©\82Á\82½\81@\82à\82\82ã
+end;
+// *************************************************************************
+//! \83\8a\83X\83g\82ð\91å\82«\82¢\83A\83C\83R\83\93\95\\8e¦\82É\82·\82é
+// *************************************************************************
+procedure TGikoDM.LargeIconActionExecute(Sender: TObject);
+begin
+       GikoForm.ListView.ViewStyle := vsIcon;
+       LargeIconAction.Checked := True;
+end;
+// *************************************************************************
+//! \83\8a\83X\83g\82ð\8f¬\82³\82¢\83A\83C\83R\83\93\95\\8e¦\82É\82·\82é
+// *************************************************************************
+procedure TGikoDM.SmallIconActionExecute(Sender: TObject);
+begin
+       GikoForm.ListView.ViewStyle := vsSmallIcon;
+       SmallIconAction.Checked := True;
+end;
+// *************************************************************************
+//! \83\8a\83X\83g\82ð\88ê\97\97\95\\8e¦\82É\82·\82é
+// *************************************************************************
+procedure TGikoDM.ListIconActionExecute(Sender: TObject);
+begin
+       GikoForm.ListView.ViewStyle := vsList;
+       ListIconAction.Checked := True;
+end;
+// *************************************************************************
+//! \83\8a\83X\83g\82ð\8fÚ\8d×\95\\8e¦\82É\82·\82é
+// *************************************************************************
+procedure TGikoDM.DetailIconActionExecute(Sender: TObject);
+begin
+       GikoForm.ListView.ViewStyle := vsReport;
+       DetailIconAction.Checked := True;
+end;
+// *************************************************************************
+//! \83_\83E\83\93\83\8d\81[\83h\82ð\92\86\8e~\82·\82é
+// *************************************************************************
+procedure TGikoDM.StopActionExecute(Sender: TObject);
+begin
+       GikoForm.FControlThread.DownloadAbort;
+       if GikoForm.WorkCount <> 0 then GikoForm.WorkCount := 0;
+       try
+               GikoForm.Animate.Active := False;
+       except
+       end;
+       GikoForm.ScreenCursor := crDefault;
+end;
+// *************************************************************************
+//! \83\8a\83X\83g\82Æ\83u\83\89\83E\83U\82Ì\8fc\89¡\94z\92u\82ð\95Ï\8dX\82·\82é
+// *************************************************************************
+procedure TGikoDM.ArrangeActionExecute(Sender: TObject);
+begin
+       if ArrangeAction.Checked then begin
+               //\8fc
+               GikoForm.ViewPanel.Align := alNone;
+               GikoForm.ListSplitter.Align := alNone;
+               GikoForm.ThreadPanel.Align := alNone;
+
+               GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
+               GikoForm.ViewPanel.Align := alLeft;
+
+               GikoForm.ListSplitter.Width := 5;
+               GikoForm.ListSplitter.Align := alLeft;
+
+               GikoForm.ViewPanel.Left := -10;
+
+               GikoForm.ThreadPanel.Align := alClient;
+
+               GikoSys.Setting.ListOrientation := gloHorizontal;
+               case GikoSys.Setting.ListWidthState of
+                       glsMax: begin
+                               BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
+                               BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
+                               GikoForm.ViewPanel.Width := 1;
+                       end;
+                       glsNormal: begin
+                               BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
+                               BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
+                       end;
+                       glsMin: begin
+                               BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
+                               BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
+                               GikoForm.ViewPanel.Width := GikoForm.ThreadMainPanel.Width - 80;
+                       end;
+               end;
+       end else begin
+               //\89¡
+               GikoForm.ViewPanel.Align := alNone;
+               GikoForm.ListSplitter.Align := alNone;
+               GikoForm.ThreadPanel.Align := alNone;
+
+               GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
+               GikoForm.ViewPanel.Align := alTop;
+
+               GikoForm.ListSplitter.Height := 5;
+               GikoForm.ListSplitter.Align := alTop;
+
+               GikoForm.ViewPanel.Top := -10;
+
+               GikoForm.ThreadPanel.Align := alClient;
+               GikoSys.Setting.ListOrientation := gloVertical;
+               case GikoSys.Setting.ListHeightState of
+                       glsMax: begin
+                               BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
+                               BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
+                               GikoForm.ViewPanel.Height := 1;
+                       end;
+                       glsNormal: begin
+                               BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
+                               BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
+                       end;
+                       glsMin: begin
+                               BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
+                               BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
+                               GikoForm.ViewPanel.Height :=
+                                       GikoForm.ThreadMainPanel.Height - GikoForm.BrowserCoolBar.Height - 7;
+                       end;
+               end;
+       end;
+end;
+// *************************************************************************
+//! \83y\83C\83\93\82Ì\83T\83C\83Y\82ð\8f\89\8aú\89»\82·\82é
+// *************************************************************************
+procedure TGikoDM.PaneInitActionExecute(Sender: TObject);
+begin
+       GikoForm.CabinetPanel.Width := 150;
+       GikoForm.MessagePanel.Height := 40;
+
+       GikoForm.BrowserSizeWidth := 200;
+       GikoForm.BrowserSizeHeight := 200;
+       if ArrangeAction.Checked then begin
+               GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
+       end else begin
+               GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
+       end;
+       if GikoSys.Setting.ListOrientation = gloHorizontal then begin
+               if GikoSys.Setting.ListHeightState = glsMax then begin
+                       BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
+                       GikoSys.Setting.ListHeightState := glsNormal;
+               end;
+       end else begin
+               if GikoSys.Setting.ListWidthState = glsMax then begin
+                       BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
+                       GikoSys.Setting.ListWidthState := glsNormal;
+               end;
+       end;
+end;
+// *************************************************************************
+//! \83u\83\89\83E\83U\83^\83u\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
+// *************************************************************************
+procedure TGikoDM.BrowserTabVisibleActionExecute(Sender: TObject);
+begin
+       GikoSys.Setting.BrowserTabVisible := BrowserTabVisibleAction.Checked;
+       GikoForm.SetBrowserTabState;
+end;
+// *************************************************************************
+//! \83u\83\89\83E\83U\83^\83u\82ð\8fã\82É\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.BrowserTabTopActionExecute(Sender: TObject);
+begin
+       BrowserTabBottomAction.Checked := False;
+       BrowserTabTopAction.Checked := True;
+       GikoSys.Setting.BrowserTabPosition := gtpTop;
+       GikoForm.SetBrowserTabState;
+end;
+// *************************************************************************
+//! \83u\83\89\83E\83U\83^\83u\82ð\89º\82É\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.BrowserTabBottomActionExecute(Sender: TObject);
+begin
+       BrowserTabTopAction.Checked := False;
+       BrowserTabBottomAction.Checked := True;
+       GikoSys.Setting.BrowserTabPosition := gtpBottom;
+       GikoForm.SetBrowserTabState;
+end;
+// *************************************************************************
+//! \83u\83\89\83E\83U\83^\83u\82Ì\83X\83^\83C\83\8b\82ð\83^\83u\83X\83^\83C\83\8b\82É\82·\82é
+// *************************************************************************
+procedure TGikoDM.BrowserTabTabStyleActionExecute(Sender: TObject);
+begin
+       BrowserTabButtonStyleAction.Checked := False;
+       BrowserTabFlatStyleAction.Checked := False;
+       BrowserTabTabStyleAction.Checked := True;
+       GikoSys.Setting.BrowserTabStyle := gtsTab;
+       GikoForm.SetBrowserTabState;
+end;
+// *************************************************************************
+//! \83u\83\89\83E\83U\83^\83u\82Ì\83X\83^\83C\83\8b\82ð\83{\83^\83\93\83X\83^\83C\83\8b\82É\82·\82é
+// *************************************************************************
+procedure TGikoDM.BrowserTabButtonStyleActionExecute(Sender: TObject);
+begin
+       BrowserTabTabStyleAction.Checked := False;
+       BrowserTabFlatStyleAction.Checked := False;
+       BrowserTabButtonStyleAction.Checked := True;
+       GikoSys.Setting.BrowserTabStyle := gtsButton;
+       GikoForm.SetBrowserTabState;
+end;
+// *************************************************************************
+//! \83u\83\89\83E\83U\83^\83u\82Ì\83X\83^\83C\83\8b\82ð\83t\83\89\83b\83g\83{\83^\83\93\83X\83^\83C\83\8b\82É\82·\82é
+// *************************************************************************
+procedure TGikoDM.BrowserTabFlatStyleActionExecute(Sender: TObject);
+begin
+       BrowserTabFlatStyleAction.Checked := True;
+       BrowserTabTabStyleAction.Checked := False;
+       BrowserTabButtonStyleAction.Checked := False;
+       GikoSys.Setting.BrowserTabStyle := gtsFlat;
+       GikoForm.SetBrowserTabState;
+end;
+// *************************************************************************
+//! \83u\83\89\83E\83U\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
+// *************************************************************************
+procedure TGikoDM.SetFocusForBrowserActionExecute(Sender: TObject);
+begin
+    GikoForm.ActiveContent.Browser.SetFocus;
+end;
+// *************************************************************************
+//! \83u\83\89\83E\83U\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82éUpdate\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoDM.SetFocusForBrowserActionUpdate(Sender: TObject);
+begin
+       if( GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil) and
+               (GikoForm.ActiveContent.Browser <> GikoForm.BrowserNullTab.Browser) then
+               TAction(Sender).Enabled := true
+       else
+               TAction(Sender).Enabled := false;
+end;
+// *************************************************************************
+//! \83X\83\8c\83b\83h\88ê\97\97\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
+// *************************************************************************
+procedure TGikoDM.SetFocusForThreadListActionExecute(Sender: TObject);
+begin
+       if GikoForm.ActiveContent <> nil then
+               GikoForm.WebBrowserClick(GikoForm.ActiveContent.Browser); //\88ê\89ñBrowser\82É\93\96\82Ä\82È\82¢\82Æ\93®\82©\82È\82¢\82Æ\82«\82ª\82 \82é
+       GikoForm.ListView.SetFocus;
+
+       if( GikoForm.ListView.Items.Count > 0 ) and (GikoForm.ListView.ItemFocused = nil) then
+               GikoForm.ListView.Items.Item[0].Selected := true; //\91I\91ð\83A\83C\83e\83\80\82ª\96³\82¢\82Æ\82«\82Í\90æ\93ª\82Ì\82ð\91I\91ð\82·\82é
+
+       //\83X\83N\83\8d\81[\83\8b\82³\82¹\82é
+       if (GikoForm.ListView.ItemFocused <> nil) then begin
+               GikoForm.ListView.ItemFocused.MakeVisible(False);
+       end;
+end;
+// *************************************************************************
+//! \83L\83\83\83r\83l\83b\83g\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
+// *************************************************************************
+procedure TGikoDM.SetFocusForCabinetActionExecute(Sender: TObject);
+begin
+       if GikoForm.ActiveContent <> nil then
+               GikoForm.WebBrowserClick(GikoForm.ActiveContent.Browser); //\88ê\89ñBrowser\82É\93\96\82Ä\82È\82¢\82Æ\93®\82©\82È\82¢\82Æ\82«\82ª\82 \82é
+       if GikoForm.TreeView.Visible then begin
+               GikoForm.TreeView.SetFocus;
+               if(GikoForm.TreeView.Items.Count > 0) and ( GikoForm.TreeView.Selected = nil ) then
+                       GikoForm.TreeView.Items.Item[0].Selected := true;
+       end else if GikoForm.FavoriteTreeView.Visible then begin
+               GikoForm.FavoriteTreeView.SetFocus;
+               if(GikoForm.FavoriteTreeView.Items.Count > 0) and (GikoForm.FavoriteTreeView.Selected = nil) then
+                       GikoForm.FavoriteTreeView.Items.Item[0].Selected := true;
+       end;
+end;
+// *************************************************************************
+//! \83L\83\83\83r\83l\83b\83g\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82éUpdate\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoDM.SetFocusForCabinetActionUpdate(Sender: TObject);
+begin
+       SetFocusForCabinetAction.Enabled := GikoForm.CabinetPanel.Visible;
+end;
+// *************************************************************************
+//! \83X\83\8c\83b\83h\88ê\97\97\82ð\8dÅ\91å\89»\82µ\82Ä\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
+// *************************************************************************
+procedure TGikoDM.ThreadlistMaxAndFocusActionExecute(Sender: TObject);
+begin
+       BrowserMinAction.Execute;
+       SetFocusForThreadListAction.Execute;
+end;
+// *************************************************************************
+//! \83X\83\8c\95\\8e¦\82ð\8dÅ\91å\89»\82µ\82Ä\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
+// *************************************************************************
+procedure TGikoDM.BrowserMaxAndFocusActionExecute(Sender: TObject);
+begin
+       BrowserMaxAction.Execute;
+       SetFocusForBrowserAction.Execute;
+end;
+// *************************************************************************
+//! \83X\83\8c\83b\83h\88ê\97\97\82Ì\91I\91ð\82ð\8dí\8f\9c\82·\82é
+// *************************************************************************
+procedure TGikoDM.UnSelectedListViewActionExecute(Sender: TObject);
+begin
+       if GikoForm.ListView.Selected <> nil then begin
+               GikoForm.ListView.Selected.Focused := True;
+               GikoForm.ListView.Selected := nil;
+       end;
+end;
+////////////////////////////////\95\\8e¦\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\8aù\93Ç\82É\82·\82é
+// *************************************************************************
+procedure TGikoDM.KidokuActionExecute(Sender: TObject);
+begin
+       SetThreadReadProperty(true);
+end;
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\96¢\93Ç\82É\82·\82é
+// *************************************************************************
+procedure TGikoDM.MidokuActionExecute(Sender: TObject);
+begin
+       SetThreadReadProperty(false);
+end;
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\96¢\93Ç\81E\8aù\93Ç\82ð\90Ý\92è\82·\82é   true : \8aù\93Ç false : \96¢\93Ç
+// *************************************************************************
+procedure TGikoDM.SetThreadReadProperty(read: Boolean);
+var
+       List: TList;
+       i: Integer;
+begin
+       List := TList.Create;
+       try
+               GikoForm.SelectListItem(List);
+               for i := 0 to List.Count - 1 do begin
+                       if TObject(List[i]) is TThreadItem then begin
+                               if (TThreadItem(List[i]).IsLogFile) then begin
+                                       TThreadItem(List[i]).UnRead := not read;
+                               end;
+                       end;
+               end;
+               if GikoForm.TreeView.Visible then
+                       GikoForm.TreeView.Refresh;
+               if GikoForm.ListView.Visible then
+                       GikoForm.ListView.Refresh;
+       finally
+               List.Free;
+       end;
+end;
+// *************************************************************************
+//! \83\8a\83X\83g\82ð\91S\82Ä\91I\91ð\82·\82é
+// *************************************************************************
+procedure TGikoDM.AllSelectActionExecute(Sender: TObject);
+begin
+       GikoForm.ListViewAllSelect;
+end;
+// *************************************************************************
+//! \83\8a\83X\83g\82ð\91S\82Ä\91I\91ð\82·\82éUpdate\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoDM.AllSelectActionUpdate(Sender: TObject);
+begin
+       AllSelectAction.Enabled := GikoForm.ListView.SelCount > 0;
+end;
+////////////////////////////////\95Ò\8fW\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
+//! \83X\83\8c\83b\83h\82Ì\83T\83C\83Y\82ð\8dÄ\8cv\8eZ\82·\82é
+procedure TGikoDM.ThreadSizeCalcForFileActionExecute(Sender: TObject);
+const
+       RECALC_MES : String = '\83X\83\8c\83b\83h\82Ì\97e\97Ê\82ð\83t\83@\83C\83\8b\82©\82ç\8dÄ\8cv\8eZ\82µ\82Ü\82·\81B'#13#10 +
+                                                       '\82±\82Ì\91\80\8dì\92\86\81A\83M\83R\83i\83r\82Ì\91¼\82Ì\91\80\8dì\82ð\82·\82é\82Æ\83f\81[\83^\82ª\94j\89ó\82³\82ê\82é\8b°\82ê\82ª\82 \82è\82Ü\82·\81B' +
+                                                       '\82Ü\82½\82±\82Ì\91\80\8dì\82Í\81A\94ñ\8fí\82É\8e\9e\8aÔ\82ª\82©\82©\82é\8fê\8d\87\82ª\82 \82è\82Ü\82·\82ª\81A\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
+       RECALC_TITLE : String = '\83X\83\8c\83b\83h\82Ì\97e\97Ê\82ð\83t\83@\83C\83\8b\82©\82ç\8dÄ\8cv\8eZ';
+       LIMIT_SIZE = 1024;
+var
+       limitSize : Integer;
+       limitStr  : String;
+begin
+{ \82Ü\82¸\81A\8e\9e\8aÔ\82ª\82©\82©\82é\82±\82Æ\82ð\8cx\8d\90\82·\82é\83\81\83b\83Z\81[\83W\82ð\8fo\97Í
+  \8dÄ\8cv\8eZ\82·\82é\83X\83\8c\83b\83h\82Ì\83T\83C\83Y\82Ìè\87\92l\81i\83f\83t\83H\83\8b\83g1024B)\82ð\8am\94F
+  \83v\83\89\83O\83C\83\93\82ð\97\98\97p\82µ\82È\82¢\82Æ\82±\82ë\82Å\91S\82Ä\82Ì\83\8d\83O\97L\82è\83X\83\8c\83b\83h\82ð\8c\9f\8dõ
+  è\87\92l\88È\89º\82Ì\83T\83C\83Y\82Ì\8fê\8d\87\81ADAT\82Ì\83t\83@\83C\83\8b\83T\83C\83Y\82Æ\94ä\8ar\81A\82¸\82ê\82Ä\82¢\82ê\82Î\81A
+  DAT\82Ì\83t\83@\83C\83\8b\83T\83C\83Y\82Å\8dX\90V\82·\82é
+}
+       if MsgBox(GikoForm.Handle, RECALC_MES,
+               RECALC_TITLE, MB_YESNO or MB_ICONWARNING) = ID_YES then begin
+               //è\87\92l\82Ì\8am\94F
+               limitSize := LIMIT_SIZE;
+               limitStr  := IntToStr(limitSize);
+               if InputQuery('è\87\92l\93ü\97Í', '\8ew\92è\82µ\82½\90\94\92l B\88È\89º\82Ì\97e\97Ê\82Ì\83X\83\8c\83b\83h\82Ì\82Ý\8dÄ\8cv\8eZ\82µ\82Ü\82·', limitStr) then begin
+                       limitSize := StrToInt(MojuUtils.ZenToHan(limitStr));
+                       if (limitSize < 0) then begin
+                               ShowMessage('è\87\92l\82É\95\89\82Í\8ew\92è\82Å\82«\82Ü\82¹\82ñ\81I');
+                               ThreadSizeCalcForFileActionExecute(nil);
+                       end else begin
+                               RecalcThreadSize(limitSize);
+                       end;
+               end;
+       end;
+end;
+//! limit\82æ\82è\82à\83T\83C\83Y\82Ì\8f¬\82³\82¢\83X\83\8c\83b\83h\82Ì\97e\97Ê\82ðDAT\83t\83@\83C\83\8b\82©\82ç\8cv\8eZ
+procedure TGikoDM.RecalcThreadSize(limit : Integer);
+var
+       i, j, tmpSize : Integer;
+       Obj   : TObject;
+       Board : TBoard;
+       Thread: TThreadItem;
+       dat   : TStringList;
+begin
+       // \8dÄ\8cv\8eZ\83X\83^\81[\83g\81@\83v\83\89\83O\83C\83\93\82ð\97\98\97p\82µ\82È\82¢\82Æ\82±\82ë\82ð\91S\95\94\8c©\82é\81I
+       GikoForm.ScreenCursor := crHourGlass;
+       try
+               GikoForm.ProgressBar.Max := BoardGroups[0].Count;
+               for i := 0 to BoardGroups[0].Count - 1 do begin
+                       Obj := BoardGroups[0].Objects[i];
+                       if (Obj <> nil) then begin
+                               Board := TBoard(Obj);
+                               if not Board.IsThreadDatRead then begin
+                                       GikoSys.ReadSubjectFile(Board);
+                               end;
+                               for j := 0 to Board.Count - 1 do begin
+                                       Thread := Board.Items[j];
+                                       if (Thread <> nil) and (Thread.IsLogFile)
+                                               and (Thread.Size <= limit) then begin
+                                               dat := TStringList.Create;
+                                               try
+                                                       tmpSize := Thread.Size;
+                                                       try
+                                                               dat.LoadFromFile(Thread.GetThreadFileName);
+                                                               tmpSize := Length(dat.Text);
+                                                               tmpSize := tmpSize - dat.Count;
+                                                       except
+                                                       end;
+                                                       Thread.Size := tmpSize;
+                                               finally
+                                                       dat.Free;
+                                               end;
+                                       end;
+                               end;
+                       end;
+                       GikoForm.ProgressBar.StepBy(1);
+               end;
+       finally
+               GikoForm.ScreenCursor := crDefault;
+       end;
+       GikoForm.ProgressBar.Position := 0;
+       ShowMessage('\8cv\8eZ\8fI\97¹\82µ\82Ü\82µ\82½\81B');
+end;
+// *************************************************************************
+//! \93ü\97Í\83A\83V\83X\83g\82Ì\90Ý\92è\83t\83H\81[\83\80\82ð\8cÄ\82Ñ\8fo\82·
+// *************************************************************************
+procedure TGikoDM.SetInputAssistActionExecute(Sender: TObject);
+var
+       form : TInputAssistForm;
+begin
+       form := TInputAssistForm.Create(GikoForm);
+       try
+               form.SetUpFromMain;
+               form.ShowModal;
+       finally
+               form.Release;
+       end;
+end;
+// *************************************************************************
+//! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\8c\9f\8dõ\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.OpenFindDialogActionExecute(Sender: TObject);
+begin
+       if( GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil) then begin
+        GikoForm.ActiveContent.OpenFindDialog;
+       end;
+end;
+
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82Ä\82¢\82é\82¨\8bC\82É\93ü\82è\82Ì\95\\8e¦\96¼\82ð\83R\83s\81[\82·\82é
+// *************************************************************************
+procedure TGikoDM.FavoriteTreeViewItemNameCopyActionExecute(
+  Sender: TObject);
+begin
+       if GikoForm.ClickNode = nil then Exit;
+
+       Clipboard.AsText :=
+                       GikoForm.ClickNode.Text + #13#10;
+end;
+
+// *************************************************************************
+//! \95\\8e¦\82³\82ê\82Ä\82¢\82é\82·\82×\82Ä\82Ì\83\8c\83X\83G\83f\83B\83^\82ð\95Â\82\82é
+// *************************************************************************
+procedure TGikoDM.CloseAllEditorActionExecute(Sender: TObject);
+var
+    i : Integer;
+begin
+    if ( EditorFormExists ) then begin
+       //\83X\83N\83\8a\81[\83\93\8fã\82Ì\91S\82Ä\82Ì\83t\83H\81[\83\80\82©\82ç\81AEditorForm\82ð\95Â\82\82é
+           for i := Screen.CustomFormCount - 1 downto 0 do begin
+               if TObject(Screen.CustomForms[i]) is TEditorForm then begin
+                TEditorForm(Screen.CustomForms[i]).Close;
+               end;
+           end;
+    end;
+end;
+// *************************************************************************
+//! \83X\83N\83\8a\81[\83\93\8fã\82É\83\8c\83X\83G\83f\83B\83^\82ª\82¢\82½\8fê\8d\87\81C\97L\8cø\82É\82È\82é
+// *************************************************************************
+procedure TGikoDM.CloseAllEditorActionUpdate(Sender: TObject);
+begin
+    if (Sender is TAction) then begin
+        TAction(Sender).Enabled := EditorFormExists;
+    end;
+end;
+// *************************************************************************
+//! \83X\83N\83\8a\81[\83\93\8fã\82ÉEditorForm\82ª\82¢\82é\82©
+// *************************************************************************
+function TGikoDM.EditorFormExists(): boolean;
+var
+       i : Integer;
+begin
+       Result := false;
+       //\83X\83N\83\8a\81[\83\93\8fã\82Ì\91S\82Ä\82Ì\83t\83H\81[\83\80\82©\82ç\81AEditorForm\82ð\92T\82·
+       for i := Screen.CustomFormCount - 1 downto 0 do begin
+               if (Screen.CustomForms[i] is TEditorForm) then begin
+                       Result := true;
+                       Break;
+               end;
+       end;
+end;
+
+// *************************************************************************
+//! \83X\83N\83\8a\81[\83\93\8fã\82É\82¢\82é\82·\82×\82Ä\82ÌEditorForm\82©\82ç\96¼\91O\82Ì\97\9a\97ð\82ð\8dí\8f\9c\82·\82é
+// *************************************************************************
+procedure TGikoDM.ClearNameTextAllEditor();
+var
+       i : Integer;
+begin
+       for i := 0 to Screen.CustomFormCount - 1 do begin
+               if (Screen.CustomForms[i] is TEditorForm) then begin
+                       TEditorForm(Screen.CustomForms[i]).NameComboBox.Items.Clear;
+        end;
+       end;
+end;
+// *************************************************************************
+//! \83X\83N\83\8a\81[\83\93\8fã\82É\82¢\82é\82·\82×\82Ä\82ÌEditorForm\82©\82ç\83\81\81[\83\8b\97\9a\97ð\82ð\8dí\8f\9c\82·\82é
+// *************************************************************************
+procedure TGikoDM.ClearMailAllEditor();
+var
+       i : Integer;
+begin
+       for i := 0 to Screen.CustomFormCount - 1 do begin
+               if TObject(Screen.CustomForms[i]) is TEditorForm then
+                       TEditorForm(Screen.CustomForms[i]).MailComboBox.Items.Clear;
+       end;
+end;
+
+// *************************************************************************
+//! \83\8a\83\93\83N\97\9a\97ð\82ð\96ß\82é\82Ì\8dX\90V\8f\88\97\9d
+// *************************************************************************
+procedure TGikoDM.PrevMoveHistoryUpdate(Sender: TObject);
+begin
+      PrevMoveHistory.Enabled :=
+          (MoveHisotryManager.HisotryIndex > 0)
+end;
+// *************************************************************************
+//! \83\8a\83\93\83N\97\9a\97ð\82ð\96ß\82é
+// *************************************************************************
+procedure TGikoDM.PrevMoveHistoryExecute(Sender: TObject);
+begin
+    if ( GikoForm.BrowserTab.TabIndex >= 0 ) then begin
+        BackToHistory(MoveHisotryManager.getPrevItem
+            (TBrowserRecord(GikoForm.BrowserTab.Tabs
+                    .Objects[GikoForm.BrowserTab.TabIndex])));
+    end else begin
+        BackToHistory(MoveHisotryManager.getPrevItem( nil ) );
+    end;
+end;
+//! \83\8a\83\93\83N\97\9a\97ð\8f\88\97\9d
+procedure TGikoDM.BackToHistory(item: TMoveHistoryItem);
+var
+    browser : TWebBrowser;
+    doc : IHTMLDocument2;
+begin
+    if ( item <> nil ) then begin
+        if ( GikoForm.GetActiveContent = item.ThreadItem ) then begin
+            browser := TBrowserRecord(GikoForm.BrowserTab.Tabs
+                .Objects[GikoForm.BrowserTab.TabIndex]).Browser;
+            if (browser <> nil) then begin
+                try
+                    doc := browser.ControlInterface.Document as IHTMLDocument2;
+                    (doc.body as IHTMLElement2).ScrollTop := item.ScrollTop;
+                except
+                end;
+            end;
+        end else begin
+            //URL\82É\88Ú\93®
+            MoveURLWithHistory(item.ThreadItem.URL, True);
+        end;
+    end;
+end;
+//! \97\9a\97ð\8f\88\97\9d\82Â\82«URL\88Ú\93®
+procedure TGikoDM.MoveURLWithHistory(URL : String; KeyMask: Boolean = False);
+var
+    idx : Integer;
+begin
+    //URL\82É\88Ú\93®
+    GikoForm.MoveToURL(URL, KeyMask);
+    //\88È\89º\81A\97\9a\97ð\82Ì\8f\88\97\9d
+    idx := GikoForm.AddressComboBox.Items.IndexOf(URL);
+    if idx = -1 then begin
+        GikoForm.AddressComboBox.Items.Insert(0, URL);
+        if GikoForm.AddressComboBox.Items.Count > GikoSys.Setting.AddressHistoryCount then
+            GikoForm.AddressComboBox.Items.Delete(GikoForm.AddressComboBox.Items.Count - 1);
+    end else begin
+        GikoForm.AddressComboBox.Items.Delete(idx);
+        GikoForm.AddressComboBox.Items.Insert(0, URL);
+    end;
+end;
+// *************************************************************************
+//! \83\8a\83\93\83N\97\9a\97ð\82ð\90i\82Þ\82Ì\8dX\90V\8f\88\97\9d
+// *************************************************************************
+procedure TGikoDM.NextMoveHistoryUpdate(Sender: TObject);
+begin
+    NextMoveHistory.Enabled :=
+          (MoveHisotryManager.HisotryIndex < MoveHisotryManager.Count - 1);
+end;
+// *************************************************************************
+//! \83\8a\83\93\83N\97\9a\97ð\82ð\90i\82Þ
+// *************************************************************************
+procedure TGikoDM.NextMoveHistoryExecute(Sender: TObject);
+begin
+    BackToHistory(MoveHisotryManager.getNextItem);
+end;
+// *************************************************************************
+//! \83A\83N\83e\83B\83u\97v\91f\82Ì\83N\83\8a\83b\83N
+// *************************************************************************
+procedure TGikoDM.ClickActiveElementActionExecute(Sender: TObject);
+var
+    browser : TWebBrowser;
+    elem : IHTMLElement;
+    doc : IHTMLDocument2;
+begin
+    if (GikoForm.GetActiveContent <> nil) then begin
+        if (GikoForm.BrowserTab.Tabs.Count > 0) and
+            (GikoForm.BrowserTab.TabIndex >= 0) then begin
+            browser := TBrowserRecord(GikoForm.BrowserTab.Tabs
+                .Objects[GikoForm.BrowserTab.TabIndex]).Browser;
+            if (browser <> nil) then begin
+                try
+                    doc := browser.ControlInterface.Document as IHTMLDocument2;
+                    if Assigned(doc) then begin
+                        elem := doc.activeElement;
+                        if Assigned(elem) then begin
+                            elem.click;
+                        end;
+                    end;
+                except
+                end;
+            end;
+
+        end;
+    end;
+end;
+//! \81«\83L\81[\82Ì\83G\83~\83\85\83\8c\81[\83g\83A\83N\83V\83\87\83\93
+procedure TGikoDM.VKDownActionExecute(Sender: TObject);
+begin
+    keybd_event(VK_DOWN, 0, KEYEVENTF_EXTENDEDKEY, 0);
+    keybd_event(VK_DOWN, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
+end;
+//! \81ª\83L\81[\82Ì\83G\83~\83\85\83\8c\81[\83g\83A\83N\83V\83\87\83\93
+procedure TGikoDM.VKUpActionExecute(Sender: TObject);
+begin
+    keybd_event(VK_UP, 0, KEYEVENTF_EXTENDEDKEY, 0);
+    keybd_event(VK_UP, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
+end;
+//! \81¨\83L\81[\82Ì\83G\83~\83\85\83\8c\81[\83g\83A\83N\83V\83\87\83\93
+procedure TGikoDM.VKRightActionExecute(Sender: TObject);
+begin
+    keybd_event(VK_RIGHT, 0, KEYEVENTF_EXTENDEDKEY, 0);
+    keybd_event(VK_RIGHT, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
+end;
+//! \81©\83L\81[\82Ì\83G\83~\83\85\83\8c\81[\83g\83A\83N\83V\83\87\83\93
+procedure TGikoDM.VKLeftActionExecute(Sender: TObject);
+begin
+    keybd_event(VK_LEFT, 0, KEYEVENTF_EXTENDEDKEY, 0);
+    keybd_event(VK_LEFT, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
+end;
+//! \83^\83X\83N\83g\83\8c\83C\82É\8ai\94[\82·\82é
+procedure TGikoDM.StoredTaskTrayActionExecute(Sender: TObject);
+begin
+    GikoForm.StoredTaskTray;
+    StoredTaskTrayAction.Tag := -1;
+end;
+
+{
+\breif  \83\8a\83\93\83N\83C\83\81\81[\83W\8eæ\93¾
+\83C\83\81\81[\83W\82Í\81C*.jpg, *.jpeg, *.gif, *.png
+}
+procedure TGikoDM.AllImageLinkToClipbordActionExecute(Sender: TObject);
+var
+    links : IHTMLElementCollection;
+    urls, exts : TStringList;
+begin
+    links := GetActiveThreadLinks;
+    if (links <> nil) then begin
+        urls := TStringList.Create;
+        exts := TStringList.Create;
+        try
+            exts.CaseSensitive := False;
+            exts.Sorted := True;
+            exts.Delimiter := ';';
+            exts.DelimitedText := '.gif;.jpg;.jpeg;.png';
+            GetLinkURLs(links, urls, 0, exts);
+            Clipboard.SetTextBuf(urls.GetText);
+        finally
+            exts.Free;
+            urls.Free;
+        end;
+    end;
+end;
+
+{
+\breif  \90V\92\85\83\8c\83X\82Ì\83\8a\83\93\83N\83C\83\81\81[\83W\8eæ\93¾
+\83C\83\81\81[\83W\82Í\81C*.jpg, *.jpeg, *.gif, *.png
+}
+procedure TGikoDM.NewImageLinkToClipBoardActionExecute(Sender: TObject);
+var
+    links : IHTMLElementCollection;
+    urls, exts : TStringList;
+    ThreadItem : TThreadItem;
+begin
+    ThreadItem := GikoForm.GetActiveContent;
+    links := GetActiveThreadLinks;
+    if (ThreadItem <> nil) and (links <> nil) then begin
+        urls := TStringList.Create;
+        exts := TStringList.Create;
+        try
+            exts.CaseSensitive := False;
+            exts.Sorted := True;
+            exts.Delimiter := ';';
+            exts.DelimitedText := '.gif;.jpg;.jpeg;.png';
+
+            GetLinkURLs(links, urls,
+                (ThreadItem.Count - ThreadItem.NewResCount + 1), exts );
+            Clipboard.SetTextBuf(urls.GetText);
+        finally
+            exts.Free;
+            urls.Free;
+        end;
+    end;
+end;
+{
+\breif  \83\8a\83\93\83NURL\8eæ\93¾
+\91Î\8fÛ\8ag\92£\8eq\82Í\81A\8fÚ\8d×\90Ý\92è\82Å\90Ý\92è\82³\82ê\82Ä\82¢\82é
+}
+procedure TGikoDM.AllLinkToClipboardActionExecute(Sender: TObject);
+var
+    links : IHTMLElementCollection;
+    urls, exts : TStringList;
+begin
+    links := GetActiveThreadLinks;
+    if (links <> nil) then begin
+        urls := TStringList.Create;
+        exts := TStringList.Create;
+        try
+            exts.CaseSensitive := False;
+            exts.Sorted := True;
+            exts.Delimiter := ';';
+            exts.DelimitedText :=
+                MojuUtils.CustomStringReplace(GikoSys.Setting.ExtList, '*', '');
+            GetLinkURLs(links, urls, 0, exts);
+            Clipboard.SetTextBuf(urls.GetText);
+        finally
+            exts.Free;
+            urls.Free;
+        end;
+    end;
+end;
+{
+\breif  \90V\92\85\83\8c\83X\83\8a\83\93\83NURL\8eæ\93¾
+\91Î\8fÛ\8ag\92£\8eq\82Í\81A\8fÚ\8d×\90Ý\92è\82Å\90Ý\92è\82³\82ê\82Ä\82¢\82é
+}
+procedure TGikoDM.NewLinkToClipboardActionExecute(Sender: TObject);
+var
+    links : IHTMLElementCollection;
+    urls, exts : TStringList;
+    ThreadItem : TThreadItem;
+begin
+    ThreadItem := GikoForm.GetActiveContent;
+    links := GetActiveThreadLinks;
+    if (ThreadItem <> nil) and (links <> nil) then begin
+        urls := TStringList.Create;
+        exts := TStringList.Create;
+        try
+            exts.CaseSensitive := False;
+            exts.Sorted := True;
+            exts.Delimiter := ';';
+            exts.DelimitedText :=
+                MojuUtils.CustomStringReplace(GikoSys.Setting.ExtList, '*', '');
+            GetLinkURLs(links, urls,
+                (ThreadItem.Count - ThreadItem.NewResCount + 1), exts );
+            Clipboard.SetTextBuf(urls.GetText);
+        finally
+            exts.Free;
+            urls.Free;
+        end;
+    end;
+end;
+
+{
+\brief  \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\82·\82×\82Ä\82Ì\83\8a\83\93\83N\82ð\8eæ\93¾\82·\82é\81B
+\return IHTMLElementCollection  \83\8a\83\93\83N\82Ì\83R\83\8c\83N\83V\83\87\83\93
+}
+function TGikoDM.GetActiveThreadLinks : IHTMLElementCollection;
+var
+    browser : TWebBrowser;
+    doc : IHTMLDocument2;
+begin
+    Result := nil;
+    if (GikoForm.GetActiveContent <> nil) then begin
+        if (GikoForm.BrowserTab.Tabs.Count > 0) and
+            (GikoForm.BrowserTab.TabIndex >= 0) then begin
+            browser := TBrowserRecord(GikoForm.BrowserTab.Tabs
+                .Objects[GikoForm.BrowserTab.TabIndex]).Browser;
+            if (browser <> nil) then begin
+                try
+                    doc := browser.ControlInterface.Document as IHTMLDocument2;
+                    if Assigned(doc) then begin
+                        Result := doc.links;
+                    end;
+                except
+                    Result := nil;
+                end;
+            end;
+
+        end;
+    end;
+end;
+{
+\brief  \83\8a\83\93\83N\82ÌURL\82ð\8eæ\93¾\82·\82é
+\param  links   \8eæ\93¾\82·\82é\83\8a\83\93\83N\82Ì\91S\91Ì\82Ì\83R\83\8c\83N\83V\83\87\83\93
+\param  URLs    \8eæ\93¾\82µ\82½URL\82Ì\95Û\91\90æ
+\param  Start   \90Ý\92è\82µ\82½\83\8c\83X\94Ô\8d\86\88È\8d~\82ð\8eæ\93¾( > 0)
+\param  Exts    \8eæ\93¾\82·\82é\83\8a\83\93\83N\82Ì\8ag\92£\8eq
+}
+procedure TGikoDM.GetLinkURLs(links : IHTMLElementCollection;
+        URLs : TStringList; const Start: Integer; Exts : TStringList);
+var
+    index ,i, j : Integer;
+    item : IHTMLElement;
+    url, ext : string;
+begin
+    if (links <> nil) then begin
+        index := 0;
+        for i := 0 to links.length - 1 do begin
+            item := links.item(i, 0) as IHTMLElement;
+            if (item <> nil) then begin
+                url := item.getAttribute('href', 0);
+                // \83\8c\83X\82Ì\94Ô\8d\86\82ð\8dX\90V
+                if (Pos('menu:', url) > 0) then begin
+                    index := StrToInt64Def(
+                        Copy(url, 6, Length(url)), index + 1
+                    );
+                end else begin
+                    // \8aJ\8en\83\8c\83X\94Ô\8d\86\88È\8d~\82©\83`\83F\83b\83N
+                    if (index >= Start) then begin
+                        ext := ExtractFileExt( AnsiLowerCase(url) );
+                        // \8ag\92£\8eq\82ð\83`\83F\83b\83N
+                        if Exts.Find(ext, j) then begin
+                            urls.Add(url)
+                        end;
+                    end;
+                end;
+            end;
+        end;
+    end;
+end;
+{
+\brief  \83A\83h\83\8c\83X\83o\81[\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
+\param  Sender   \83C\83x\83\93\83g\82Ì\94­\90\8c³
+}
+procedure TGikoDM.SetForcusForAddresBarActionExecute(Sender: TObject);
+begin
+    if ( GikoForm.AddressToolBar.Visible ) then begin
+        GikoForm.AddressComboBox.SetFocus;
+    end
+end;
+{
+\brief  \88Ú\93]\82µ\82½\94Â\82ÌURL\82ð\8eæ\93¾\82·\82é\83_\83C\83A\83O\83\89\83\80\82ð\95\\8e¦\82·\82é
+}
+procedure TGikoDM.NewBoardSearchActionExecute(Sender: TObject);
+var
+    form : TNewBoardURLForm;
+       Msg: string;
+begin
+       if (EditorFormExists) then begin
+               Msg := '\83\8c\83X\83G\83f\83B\83^\82ð\91S\82Ä\95Â\82\82Ä\82­\82¾\82³\82¢';
+               MsgBox(GikoForm.Handle, Msg, MSG_ERROR, MB_OK or MB_ICONSTOP);
+               Exit;
+       end;
+    form := TNewBoardURLForm.Create(Self);
+    try
+        form.ShowModal;
+    finally
+        form.Release;
+    end;
+end;
+//! \83u\83\89\83E\83U\82ð1\83y\81[\83W\95ª\83X\83N\83\8d\81[\83\8b\82³\82¹\82é
+procedure TGikoDM.ScrollPageDownActionExecute(Sender: TObject);
+begin
+    GikoForm.BrowserMovement(GikoForm.BrowserPanel.Height);
+end;
+//! \83u\83\89\83E\83U\82ð1\83y\81[\83W\95ª\83X\83N\83\8d\81[\83\8b\82³\82¹\82é
+procedure TGikoDM.ScrollPageUpActionExecute(Sender: TObject);
+begin
+    GikoForm.BrowserMovement(-GikoForm.BrowserPanel.Height);
+end;
+
+
+//! \82±\82Ì\83\8c\83X\82ÌID\82ðNG\83\8f\81[\83h\82É\92Ç\89Á\82·\82é\81i\93§\96¾)
+procedure TGikoDM.AddIDtoNGWord0ActionExecute(Sender: TObject);
+begin
+    GikoForm.AddIDtoNGWord(true);
+end;
+//! \82±\82Ì\83\8c\83X\82ÌID\82ðNG\83\8f\81[\83h\82É\92Ç\89Á\82·\82é
+procedure TGikoDM.AddIDtoNGWord1ActionExecute(Sender: TObject);
+begin
+    GikoForm.AddIDtoNGWord(false);
+end;
+//! \83N\83\8a\83b\83v\83{\81[\83h\82Ì\95\8e\9a\97ñ\82ðID\82Æ\82µ\82Ä\93¯\88êID\83\8c\83X\83A\83\93\83J\81[\95\\8e¦
+procedure TGikoDM.ExtractSameIDActionExecute(Sender: TObject);
+var
+    ID: String;
+begin
+    ID := Trim(Clipboard.AsText);
+    if (Length(ID) > 0) then begin
+        if not IsNoValidID(ID) then begin
+            GikoForm.ShowSameIDAncher(ID);
+        end;
+    end;
+end;
+//! \83^\83u\82Ì\83X\83\8c\83b\83h\88ê\97\97\82ð\95\\8e¦\82·\82é
+procedure TGikoDM.ShowTabListActionExecute(Sender: TObject);
+var
+    i : Integer;
+begin
+    GikoForm.ListView.Items.BeginUpdate;
+    GikoForm.ListView.Items.Clear;
+    BoardGroup.SpecialBoard.Clear;
+       for i := GikoForm.BrowserTab.Tabs.Count - 1 downto 0 do begin
+        BoardGroup.SpecialBoard.Add(
+               TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Thread);
+       end;
+    GikoForm.ListView.Items.EndUpdate;
+    GikoForm.SetActiveList(BoardGroup.SpecialBoard);
+end;
+//! \8bt\8eQ\8fÆ\82µ\82Ä\82¢\82é\83\8c\83X\82ð\92Ç\89Á\82·\82é
+procedure TGikoDM.DereferenceResActionExecute(Sender: TObject);
+var
+       i, currentNo, No : Integer;
+    links : IHTMLElementCollection;
+    threadItem : TThreadItem;
+    item : IHTMLElement;
+    url, url2 : string;
+    resNo : TStringList;
+    alreadyExist : Boolean;
+       PathRec: TPathRec;
+begin
+       No := GikoForm.KokoPopupMenu.Tag;
+       if No = 0 then Exit;
+
+    ThreadItem := GikoForm.KokoPopupThreadItem;
+    // \83A\83N\83e\83B\83u\83^\83u\82©\82ç\91S\82Ä\82Ì\83\8a\83\93\83N\82ð\8eæ\93¾\82·\82é
+    links := GetActiveThreadLinks;
+    if (ThreadItem <> nil) and (links <> nil) then begin
+        resNo := TStringList.Create;
+        try
+            currentNo := 0;
+            alreadyExist := False;
+            // \83\8a\83\93\83N\82ð\91S\82Ä\91\96\8d¸\82·\82é
+            for i := 0 to links.length - 1 do begin
+                item := links.item(i, 0) as IHTMLElement;
+                if (item <> nil) then begin
+                    url := item.getAttribute('href', 0);
+                    // \83\8c\83X\82Ì\94Ô\8d\86\82ð\8dX\90V
+                    if (Pos('menu:', url) > 0) then begin
+                        currentNo := StrToInt64Def(
+                            Copy(url, 6, Length(url)), currentNo + 1
+                        );
+                        alreadyExist := False;
+                    end else if (currentNo <> -1) and (not alreadyExist) then begin
+                        // IE7\91Î\89\9e
+                        if Pos('about:..', url) = 1 then begin
+                            url := 'about:blank..' + Copy( url, Length('about:..')+1, Length(url) )
+                        end;
+                        // \8e©\95ª\82Ö\82Ì\83\8a\83\93\83N\82©\82ç\83\8c\83X\83|\83b\83v\97p\82Ì\94Ô\8d\86\8eæ\93¾
+                        if Pos('about:blank..', url) = 1 then begin
+                            // No \94Ô\82Ö\82Ì\83\8a\83\93\83N\82ª\82 \82ê\82Î\8eQ\8fÆ\82 \82è
+                            url2 := THTMLCreate.GetRespopupURL(url, ThreadItem.URL);
+                                       PathRec := Gikosys.Parse2chURL2(url2);
+                            if (not PathRec.FNoParam) then begin
+                                Gikosys.GetPopupResNumber(url2,PathRec.FSt,PathRec.FTo);
+                                       end;
+                            // \91Î\8fÛ\83\8c\83X\82à\82µ\82­\82Í\82»\82ê\82ð\8aÜ\82Þ\82È\82ç\8eQ\8fÆ\82 \82è\82Æ\82·\82é
+                            if (PathRec.FSt = No) or
+                                ((PathRec.FSt <= No) and (PathRec.FTo >= No))  then begin
+                                alreadyExist := True;
+                                resNo.Add(IntToStr(currentNo));
+                            end;
+                        end;
+                    end;
+                end;
+            end;
+            // \96³\90§\8cÀ\82È\82Ì\82Å-1\8cÅ\92è
+            GikoForm.ActiveContent.IDAnchorPopup(
+                GikoSys.CreateResAnchor(resNo, ThreadItem, -1));
+        finally
+            resNo.Clear;
+            resNo.Free;
+        end;
+    end;
+end;
+
+procedure TGikoDM.UpdateGikonaviActionExecute(Sender: TObject);
+var
+    form : TUpdateCheckForm;
+       Msg: string;
+    shutdown: boolean;
+begin
+       if (EditorFormExists) then begin
+               Msg := '\83\8c\83X\83G\83f\83B\83^\82ð\91S\82Ä\95Â\82\82Ä\82­\82¾\82³\82¢';
+               MsgBox(GikoForm.Handle, Msg, MSG_ERROR, MB_OK or MB_ICONSTOP);
+               Exit;
+       end;
+    GikoForm.UpdateExePath := '';
+    GikoForm.UpdateExeArgs := '';
+    form := TUpdateCheckForm.Create(Self);
+    try
+        form.ShowModal;
+        shutdown := form.Allowshutdown;
+        if shutdown then begin
+            GikoForm.UpdateExePath := form.ExecPath;
+            GikoForm.UpdateExeArgs := form.ExecArgs;
+        end;
+    finally
+        form.Release;
+    end;
+    if shutdown then begin
+        // \83M\83R\83i\83r\8fI\97¹
+        GikoForm.Close;
+    end;
+
+end;
+//! \82±\82Ì\83\8c\83X\82ÌURL\83R\83s\81[\81iPATH_INFO)
+procedure TGikoDM.konoURLPATHActionExecute(Sender: TObject);
+var
+    No : Integer;
+    ThreadItem : TThreadItem;
+    URL, Protocol, Host, Path, Document, Port, Bookmark : String;
+begin
+       No := GikoForm.KokoPopupMenu.Tag;
+       if No = 0 then Exit;
+
+    ThreadItem := GikoForm.KokoPopupThreadItem;
+    if (ThreadItem.ParentBoard.Is2ch) or not (Pos('?', ThreadItem.URL) > 0) then begin
+        GikoSys.ParseURI(ThreadItem.URL,Protocol, Host, Path, Document, Port, Bookmark);
+        URL := Protocol + '://' + Host + Path + IntToStr(No);
+    end else begin
+        if Pos('?', ThreadItem.URL) > 0 then begin
+            URL := Copy(ThreadItem.URL, 1, Pos('?', ThreadItem.URL)-1);
+            // \82Ü\82¿BBS\97p\8f\88\92u
+            URL := MojuUtils.CustomStringReplace(URL, 'read.pl', 'read.cgi');
+            URL := URL + '/' + ThreadItem.ParentBoard.BBSID + '/' + ChangeFileExt(ThreadItem.FileName, '')  + '/' + IntToStr(No);
+        end;
+    end;
+    Clipboard.SetTextBuf( PChar(URL) );
+end;
+//! \82±\82Ì\83\8c\83X\82ÌURL\83R\83s\81[\81iQuery_STRING)
+procedure TGikoDM.konoURLQueryActionExecute(Sender: TObject);
+var
+    No : Integer;
+    ThreadItem : TThreadItem;
+    URL, Protocol, Host, Path, Document, Port, Bookmark : String;
+begin
+       No := GikoForm.KokoPopupMenu.Tag;
+       if No = 0 then Exit;
+
+    ThreadItem := GikoForm.KokoPopupThreadItem;
+    // 2ch\82Æ\82µ\82½\82ç\82Î\82Í\81A\83\8c\83X\94Ô\8d\86\82ð\82¤\82Ü\82­\8f\88\97\9d\82µ\82Ä\82­\82ê\82È\82¢\82Ì\82Å\97\98\97p\95s\89Â
+    if ThreadItem.ParentBoard.Is2ch or not (Pos('?', ThreadItem.URL) > 0) then begin
+        GikoSys.ParseURI(ThreadItem.URL, Protocol, Host, Path, Document, Port, Bookmark);
+        URL := Protocol + '://' + Host + '/test/read.cgi?bbs=' + ThreadItem.ParentBoard.BBSID
+            + '&key=' + ChangeFileExt(ThreadItem.FileName, '') + '&st=' + IntToStr(No) + '&to=' + IntToStr(No);
+    end else begin
+        URL := ThreadItem.URL;
+        // \82Ü\82¿BBS
+        if Pos('&LAST=', URL) > 0 then begin
+            URL := Copy(URL, 1, Pos('&LAST=', URL) - 1);
+            URL := URL + '&START=' + IntToStr(No) + '&END=' + IntToStr(No);
+        end;
+        // \82»\82Ì\91¼\8aO\95\94\94Â
+        if Pos('&ls=', URL) > 0 then begin
+            URL := Copy(URL, 1, Pos('&ls=', URL) - 1);
+            URL := URL + '&st=' + IntToStr(No) + '&to=' + IntToStr(No);
+        end;
+
+    end;
+    Clipboard.SetTextBuf( PChar(URL) );
+end;
+//! \82±\82Ì\83\8c\83X\82ÌURL\83R\83s\81[\81iQuery_STRING\81j\82Ì\97\98\97p\83`\83F\83b\83N
+procedure TGikoDM.konoURLQueryActionUpdate(Sender: TObject);
+const
+       LIVEDOOR_URL = 'http://jbbs.livedoor.jp/';
+begin
+    // 2ch\82Æ\82µ\82½\82ç\82Î\82Í\97\98\97p\82Å\82«\82È\82¢\82æ\82¤\82É\82·\82é\81i\82¤\82Ü\82­\83\8c\83X\8ew\92è\82Å\82«\82È\82¢\82Ì\82Å\81j
+    konoURLQueryAction.Enabled := false;
+    if (GikoForm.KokoPopupThreadItem <> nil) then begin
+        konoURLQueryAction.Enabled := not GikoForm.KokoPopupThreadItem.ParentBoard.Is2ch;
+        if konoURLQueryAction.Enabled then begin
+            konoURLQueryAction.Enabled := not (Pos(LIVEDOOR_URL, GikoForm.KokoPopupThreadItem.URL) = 1);
+        end;
+    end;
+end;
+
 end.