interface
uses
- SysUtils, Classes, ExtActns, StdActns, ActnList, ImgList, Controls;
+ SysUtils, Classes, ExtActns, StdActns, ActnList, ImgList, Controls,
+{$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;
- 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;
- 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;
- 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;
- 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;
- 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;
- 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;
- 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;
- 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);
- procedure FavoriteArrangeActionExecute(Sender: TObject);
- procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);
+ 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;
+ 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;
+ 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;
+ 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;
+ 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;
+ 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;
+ SetFocusForBrowserAction: 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;
+ 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 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 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 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é
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é
+ procedure DependActiveCntentLogActionUpdate(Sender: TObject);
+ //! 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,
- Giko, GikoSystem, GikoUtil,
- FavoriteArrange;
-
+ Windows, Math, Clipbrd,
+ Giko, GikoUtil, BoardGroup,
+ FavoriteArrange, Favorite, MojuUtils,
+ Editor, ListSelect, Search, Option, Round,
+ KeySetting, Gesture, Kotehan, ToolBarSetting,
+ ToolBarUtil, NewBoard, HTMLCreate, IndividualAbon,
+ GikoBayesian, About, ShellAPI,
+ RoundName, RoundData, Menus, ListViewUtils,
+ ThreadControl, GikoMessage, InputAssist,
+ DefaultFileManager, Forms, NewBoardURL, UpdateCheck;
const
- USER_SETLINKBAR = WM_USER + 2003;
-
+ MSG_ERROR : string = '\83G\83\89\81[';
+
{$R *.dfm}
// *************************************************************************
-// NG\83\8f\81[\83h\95Ò\8fW
+//! 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é
+// *************************************************************************
+procedure TGikoDM.DependActiveCntentLogActionUpdate(Sender: TObject);
+begin
+ TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil)
+ and (GikoForm.GetActiveContent.IsLogFile);
+end;
+// *************************************************************************
+//! 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
// *************************************************************************
procedure TGikoDM.EditNGActionExecute(Sender: TObject);
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
- //\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;
+ //\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;
// *************************************************************************
-// TAction\82ÅGetActiveContent\82ªnil\88È\8aO\82Å\97L\8cø\82É\82È\82é
+//! \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.DependActiveCntentActionUpdate(Sender: TObject);
+procedure TGikoDM.MoveToActionExecute(Sender: TObject);
begin
- TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil);
+ //\83A\83h\83\8c\83X\83R\83\93\83{\83{\83b\83N\83X\82©\82çURL\82ð\8eæ\93¾
+ //URL\82É\88Ú\93®
+ 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
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
except
end;
end;
+// *************************************************************************
+//! \82¨\8bC\82É\93ü\82è\82Ì\96¼\91O\82ð\95Ò\8fW\82·\82é
+// *************************************************************************
+procedure TGikoDM.FavoriteTreeViewRenameActionExecute(Sender: TObject);
+var
+ node : TTreeNode;
+begin
+
+ if GikoForm.ClickNode = nil then
+ Exit;
+ if GikoForm.ClickNode.IsFirstNode then
+ Exit;
+ if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then
+ Exit;
+ GikoForm.FavoriteTreeView.ReadOnly := False;
+ if (GikoForm.TreeType = gttFavorite) and (GikoForm.CabinetPanel.Visible) then begin
+ node := GikoForm.ClickNode.Parent;
+ while node <> nil do begin
+ node.Expanded := True;
+ node := node.Parent;
+ end;
+ GikoForm.ClickNode.EditText;
+ 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é
+// *************************************************************************
+procedure TGikoDM.FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
+var
+ NewFavFolder: TFavoriteFolder;
+ Node: TTreeNode;
+begin
+
+ if GikoForm.ClickNode = nil then
+ Exit;
+
+ try
+ if not (TObject(GikoForm.ClickNode.Data) is TFavoriteFolder) then begin
+ GikoForm.FavoriteTreeView.Selected := GikoForm.ClickNode.Parent;
+ GikoForm.ClickNode := GikoForm.ClickNode.Parent;
+ end;
+
+ NewFavFolder := TFavoriteFolder.Create;
+ Node := GikoForm.FavoriteTreeView.Items.AddChildObject(GikoForm.ClickNode, '\90V\82µ\82¢\83t\83H\83\8b\83_', NewFavFolder);
+ Node.ImageIndex := 14;
+ Node.SelectedIndex := 14;
+ // 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é
+// *************************************************************************
+procedure TGikoDM.FavoriteTreeViewDeleteActionExecute(Sender: TObject);
+const
+ DEL_LINK_MSG = '\81g\83\8a\83\93\83N\81h\82Í\83\8a\83\93\83N\83o\81[\97p\83t\83H\83\8b\83_\82Å\82·\81B\8dí\8f\9c\82µ\82Ä\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
+ DEL_MSG = '\81g^0\81h\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 GikoForm.ClickNode = nil then
+ Exit;
+ if GikoForm.ClickNode.IsFirstNode then
+ Exit;
+ if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
+ if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then begin
+ if MsgBox(GikoForm.Handle, DEL_LINK_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
+ Exit;
+ end else begin
+ if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', GikoForm.ClickNode.Text, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
+ Exit;
+ end;
+ 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
+// *************************************************************************
+procedure TGikoDM.FavoriteTreeViewBrowseFolderActionExecute(
+ Sender: TObject);
+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é
+// *************************************************************************
+procedure TGikoDM.FavoriteTreeViewReloadActionExecute(Sender: TObject);
+var
+ FavThread: TFavoriteThreadItem;
+ FavBoard: TFavoriteBoardItem;
+ shiftDown: Boolean;
+begin
+ 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 );
+ 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 );
+ GikoForm.DownloadList(FavBoard.Item, shiftDown);
+ end;
+
+end;
+// *************************************************************************
+//! \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);
+begin
+
+ if GikoForm.ClickNode = nil then Exit;
+
+ 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é\82¨\8bC\82É\93ü\82è\82Ì\96¼\91O\82ð\83R\83s\81[\82·\82é
+// *************************************************************************
+procedure TGikoDM.FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
+begin
+
+ if GikoForm.ClickNode = nil then Exit;
+
+ 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é\82¨\8bC\82É\93ü\82è\82Ì\96¼\91O\82ÆURL\82ð\83R\83s\81[\82·\82é
+// *************************************************************************
+procedure TGikoDM.FavoriteTreeViewNameURLCopyActionExecute(
+ Sender: TObject);
+var
+ favItem : TFavoriteItem;
+begin
+
+ if GikoForm.ClickNode = nil then Exit;
+
+ 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é\82¨\8bC\82É\93ü\82è\83X\83\8c\83b\83h\82ð\8dí\8f\9c\82·\82é
+// *************************************************************************
+procedure TGikoDM.FavoriteTreeViewLogDeleteActionExecute(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_TITLE = '\8dí\8f\9c\8am\94F';
+var
+ ThreadItem: TThreadItem;
+ FavThread: TFavoriteThreadItem;
+begin
+
+ if GikoForm.ClickNode = nil then Exit;
+ if not (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then Exit;
+
+ FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
+ ThreadItem := FavThread.Item;
+
+ try
+ if GikoSys.Setting.DeleteMsg then begin
+ if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
+ if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', GikoForm.ClickNode.Text, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
+ Exit;
+ end;
+
+ GikoForm.DeleteHistory(ThreadItem);
+ GikoForm.DeleteTab(ThreadItem);
+ ThreadItem.DeleteLogFile;
+
+ GikoForm.ListView.Refresh;
+ finally
+ end;
+
+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é
+// *************************************************************************
+procedure TGikoDM.FavoriteTreeViewBrowseThreadActionExecute(
+ Sender: TObject);
+var
+ threadItem : TThreadItem;
+begin
+
+ if GikoForm.ClickNode = nil then Exit;
+
+ if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
+
+ threadItem := TFavoriteThreadItem( GikoForm.ClickNode.Data ).Item;
+ if threadItem = nil then
+ Exit;
+ GikoSys.OpenBrowser( threadItem.URL, gbtAuto );
+
+ 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¦
+// *************************************************************************
+procedure TGikoDM.OnlyAHundredResActionExecute(Sender: TObject);
+begin
+ if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
+ and (GikoForm.ActiveContent.Browser.Busy) then Exit;
+
+ GikoForm.ResRangeMenuSelect := 100;
+ OnlyAHundredResAction.Checked := True;
+ //\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¦
+// *************************************************************************
+procedure TGikoDM.OnlyKokoResActionExecute(Sender: TObject);
+begin
+ if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
+ and (GikoForm.ActiveContent.Browser.Busy) then Exit;
+
+ GikoForm.ResRangeMenuSelect := Ord( grrKoko );
+ OnlyKokoResAction.Checked := True;
+
+ //\81@\95\\8e¦\94Í\88Í\82ð\90Ý\92è\82·\82é
+ SetResRange(Ord( grrKoko ));
+end;
+// *************************************************************************
+//! \90V\92\85\83\8c\83X\82Ì\82Ý\95\\8e¦
+// *************************************************************************
+procedure TGikoDM.OnlyNewResActionExecute(Sender: TObject);
+begin
+ if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
+ and (GikoForm.ActiveContent.Browser.Busy) then Exit;
+
+ GikoForm.ResRangeMenuSelect := Ord( grrNew );
+ OnlyNewResAction.Checked := True;
+
+ //\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é
+// *************************************************************************
+procedure TGikoDM.BrowserMaxActionExecute(Sender: TObject);
+begin
+ if GikoSys.Setting.ListOrientation = gloHorizontal then begin
+ case GikoSys.Setting.ListWidthState of
+ glsMax: begin
+ //\92Ê\8fí\95\\8e¦\82É\82·\82é
+ SetThreadAreaHorNormal;
+ end;
+ glsMin, glsNormal: begin
+ //\8dÅ\91å\95\\8e¦\82É\82·\82é
+ SetThreadAreaHorizontal(glsMax);
+ end;
+ end;
+ end else begin
+ case GikoSys.Setting.ListHeightState of
+ glsMax: begin
+ //\92Ê\8fí\95\\8e¦\82É\82·\82é
+ SetThreadAreaVerNormal;
+ end;
+ glsMin, glsNormal: begin
+ //\8dÅ\91å\95\\8e¦\82É\82·\82é
+ 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é
+// *************************************************************************
+procedure TGikoDM.BrowserMinActionExecute(Sender: TObject);
+begin
+ if GikoSys.Setting.ListOrientation = gloHorizontal then begin
+ case GikoSys.Setting.ListWidthState of
+ glsMax, glsNormal: begin
+ //\8dÅ\8f¬\95\\8e¦\82É\82·\82é
+ SetThreadAreaHorizontal(glsMin);
+ end;
+ glsMin: begin
+ //\92Ê\8fí\95\\8e¦\82É\82·\82é
+ SetThreadAreaHorNormal;
+ end;
+ end;
+ end else begin
+ case GikoSys.Setting.ListHeightState of
+ glsMax, glsNormal: begin
+ //\8dÅ\8f¬\95\\8e¦\82É\82·\82é
+ SetThreadAreaVertical(glsMin);
+ end;
+ glsMin: begin
+ //\92Ê\8fí\95\\8e¦\82É\82·\82é
+ 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é
+// *************************************************************************
+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é
+// *************************************************************************
+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é
+// *************************************************************************
+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é
+// *************************************************************************
+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
+// *************************************************************************
+procedure TGikoDM.ScrollKokoActionUpdate(Sender: TObject);
+begin
+ ScrollKokoAction.Enabled := (GikoForm.GetActiveContent <> nil)
+ and (GikoForm.GetActiveContent.IsLogFile)
+ 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é
+// *************************************************************************
+procedure TGikoDM.EditorActionExecute(Sender: TObject);
+var
+ Editor: TEditorForm;
+ Item: TThreadItem;
+begin
+ Item := GikoForm.GetActiveContent;
+ if Item = nil then Exit;
+ Editor := TEditorForm.Create(GikoForm.GetMainForm);
+ Editor.SetThreadItem(Item);
+ Editor.Show;
+ Editor.BodyEdit.SetFocus;
+end;
+// *************************************************************************
+//! \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é
+// *************************************************************************
+procedure TGikoDM.ShowThreadActionExecute(Sender: TObject);
+var
+ ThreadItem: TThreadItem;
+begin
+ ThreadItem := GikoForm.GetActiveContent;
+ if ThreadItem = nil then Exit;
+ 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é
+// *************************************************************************
+procedure TGikoDM.ShowBoardActionExecute(Sender: TObject);
+var
+ ThreadItem: TThreadItem;
+begin
+ ThreadItem := GikoForm.GetActiveContent;
+ if ThreadItem = nil then Exit;
+ 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é
+// *************************************************************************
+procedure TGikoDM.URLCopyActionExecute(Sender: TObject);
+var
+ s: string;
+begin
+ s := '';
+ if TObject(GikoForm.GetActiveContent) is TBoard then
+ s := s + TBoard(GikoForm.GetActiveContent).URL + #13#10
+ else if TObject(GikoForm.GetActiveContent) is TThreadItem then
+ s := s + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
+ if s <> '' then
+ Clipboard.AsText := s;
+end;
+// *************************************************************************
+//! \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
+ s: string;
+begin
+ s := '';
+ if TObject(GikoForm.GetActiveContent) is TBoard then
+ s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10
+ else if TObject(GikoForm.GetActiveContent) is TThreadItem then
+ s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10;
+ if s <> '' then
+ 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é
+// *************************************************************************
+procedure TGikoDM.NameURLCopyActionExecute(Sender: TObject);
+var
+ s: string;
+begin
+ s := '';
+ if TObject(GikoForm.GetActiveContent) is TBoard then
+ s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10 + TBoard(GikoForm.GetActiveContent).URL + #13#10
+ else if TObject(GikoForm.GetActiveContent) is TThreadItem then
+ s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10 + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
+ if s <> '' then
+ 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é
+// *************************************************************************
+procedure TGikoDM.ItemReloadActionExecute(Sender: TObject);
+var
+ ThreadItem: TThreadItem;
+ shiftDown: Boolean;
+begin
+ ThreadItem := GikoForm.GetActiveContent;
+ shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
+ if ThreadItem <> nil then
+ GikoForm.DownloadContent(ThreadItem, shiftDown);
+end;
+// *************************************************************************
+//! \8c»\8dÝ\8aJ\82¢\82Ä\82¢\82é\83^\83u\82ð\95Â\82¶\82é
+// *************************************************************************
+procedure TGikoDM.BrowserTabCloseActionExecute(Sender: TObject);
+var
+ idx: Integer;
+begin
+ idx := GikoForm.BrowserTab.TabIndex;
+ if idx <> -1 then begin
+ if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
+ GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
+ end;
+ end;
+end;
+// *************************************************************************
+//! \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é
+// *************************************************************************
+procedure TGikoDM.NotSelectTabCloseActionExecute(Sender: TObject);
+var
+ i: Integer;
+ idx: Integer;
+begin
+ idx := GikoForm.BrowserTab.TabIndex;
+ if idx = -1 then Exit;
+ GikoForm.BrowserTab.Tabs.BeginUpdate;
+ for i := GikoForm.BrowserTab.Tabs.Count - 1 downto GikoForm.BrowserTab.TabIndex + 1 do begin
+ TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
+ GikoForm.BrowserTab.Tabs.Delete(i);
+ end;
+ if idx > 0 then begin
+ for i := GikoForm.BrowserTab.TabIndex - 1 downto 0 do begin
+ TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
+ GikoForm.BrowserTab.Tabs.Delete(i);
+ end;
+ end;
+ 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
+// *************************************************************************
+procedure TGikoDM.NotSelectTabCloseActionUpdate(Sender: TObject);
+begin
+ TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
+end;
+// *************************************************************************
+//! \91S\82Ä\82Ì\83^\83u\82ð\95Â\82¶\82é
+// *************************************************************************
+procedure TGikoDM.AllTabCloseActionExecute(Sender: TObject);
+var
+ i: Integer;
+begin
+ if GikoSys.Setting.ShowDialogForAllTabClose then
+ if(MessageDlg('\91S\82Ä\82Ì\83^\83u\82ð\95Â\82¶\82Ä\82æ\82ë\82µ\82¢\82Å\82·\82©\81H', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then
+ Exit;
+
+ GikoForm.ActiveContent := nil;
+ GikoForm.BrowserNullTab.Thread := nil;
+ GikoForm.BrowserTab.OnChange := nil;
+ GikoForm.BrowserTab.Tabs.BeginUpdate;
+ for i := GikoForm.BrowserTab.Tabs.Count - 1 downto 0 do begin
+ TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
+ end;
+ GikoForm.BrowserTab.Tabs.Clear;
+ GikoForm.BrowserTab.Tabs.EndUpdate;
+ GikoForm.BrowserTab.OnChange := GikoForm.BrowserTabChange;
+ GikoForm.SetContent(GikoForm.BrowserNullTab);
+ 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é
+// *************************************************************************
+procedure TGikoDM.ActiveLogDeleteActionExecute(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_TITLE = '\8dí\8f\9c\8am\94F';
+var
+ idx: Integer;
+ ThreadItem: TThreadItem;
+begin
+ idx := GikoForm.BrowserTab.TabIndex;
+ if idx <> -1 then begin
+ if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
+ ThreadItem := TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]).Thread;
+ if GikoSys.Setting.DeleteMsg then
+ if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
+ 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;
+ end;
+ end;
+end;
+// *************************************************************************
+//! \88ê\94Ô\8d¶\82Ì\83^\83u\82ð\91I\91ð\82·\82é
+// *************************************************************************
+procedure TGikoDM.LeftmostTabSelectActionExecute(Sender: TObject);
+begin
+ if GikoForm.BrowserTab.Tabs.Count > 0 then begin
+ GikoForm.BrowserTab.TabIndex := 0;
+ GikoForm.BrowserTab.OnChange(nil);
+ end;
+end;
+// *************************************************************************
+//! \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
+ TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
+ and (GikoForm.BrowserTab.TabIndex <> 0);
+end;
+// *************************************************************************
+//! \8d¶\82Ì\83^\83u\82ð\91I\91ð\82·\82é
+// *************************************************************************
+procedure TGikoDM.LeftTabSelectActionExecute(Sender: TObject);
+begin
+ if GikoForm.BrowserTab.Tabs.Count > 0 then begin
+ if GikoForm.BrowserTab.TabIndex = -1 then begin
+ GikoForm.BrowserTab.TabIndex := 0;
+ GikoForm.BrowserTab.OnChange(nil);
+ end else if GikoForm.BrowserTab.TabIndex > 0 then begin
+ GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex - 1;
+ GikoForm.BrowserTab.OnChange(nil);
+ 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é
+// *************************************************************************
+procedure TGikoDM.RightTabSelectActionExecute(Sender: TObject);
+begin
+ if GikoForm.BrowserTab.Tabs.Count > 0 then begin
+ if GikoForm.BrowserTab.TabIndex = -1 then begin
+ GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
+ GikoForm.BrowserTab.OnChange(nil);
+ 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 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;
+// *************************************************************************
+//! \89E\82Ì\83^\83u\82ð\91I\91ð\82·\82éUpdate\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoDM.RightTabSelectActionUpdate(Sender: TObject);
+begin
+ 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é
+// *************************************************************************
+procedure TGikoDM.RightmostTabSelectActionExecute(Sender: TObject);
+begin
+ if GikoForm.BrowserTab.Tabs.Count > 0 then begin
+ GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
+ GikoForm.BrowserTab.OnChange(nil);
+ end;
+end;
+// *************************************************************************
+//! \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
+ if TObject(GikoForm.ListView.Selected.Data) is TThreadItem then
+ 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
+// *************************************************************************
+procedure TGikoDM.ThreadFavoriteAddActionUpdate(Sender: TObject);
+begin
+ TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
+ and (GikoForm.ListView.SelCount > 0);
+end;
+// *************************************************************************
+//! \83\8c\83X\82Ì\93à\97e\82ð\8di\82è\8d\9e\82Þ
+// *************************************************************************
+procedure TGikoDM.SelectResActionExecute(Sender: TObject);
+var
+ Dlg: TListSelectDialog;
+ FilterList : TStringList;
+ idx : Integer;
+begin
+ Dlg := TListSelectDialog.Create(GikoForm);
+ try
+ Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
+ Dlg.SelectComboBox.Text := GikoForm.SelectResWord;
+ Dlg.ShowModal;
+ if Dlg.ModalResult = mrOK then begin
+ SelectResAction.Checked := True;
+ if Length( Dlg.SelectComboBox.Text ) = 0 then begin
+ // \8bó\93ü\97Í\82Å OK \82Í\8di\82è\8d\9e\82Ý\89ð\8f\9c\82Æ\93¯\88Ó\8b`
+ ResRangeAction.Execute;
+ end else begin
+ GikoSys.ResRange := Ord( grrSelect );
+
+ // \8dÅ\8cã\82É\90Ý\92è\82µ\82½\82à\82Ì\82ð\8ao\82¦\82Ä\82¨\82
+ GikoForm.SelectResWord := Dlg.SelectComboBox.Text;
+
+ // \8c\9f\8dõ\97\9a\97ð\82Ì\8dX\90V
+ 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;
+
+ try
+ if GikoForm.SelectComboBoxPanel.Visible then
+ GikoForm.SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
+ except
+ end;
+
+ // \83t\83B\83\8b\83^\82Ì\90Ý\92è
+ FilterList := TStringList.Create;
+ try
+ GikoSys.FSelectResFilter.Reverse := True;
+ FilterList.Delimiter := ' '; //\8bæ\90Ø\82è\8eq\82ð\94¼\8ap\83X\83y\81[\83X\82É\90Ý\92è
+ FilterList.DelimitedText := Dlg.SelectComboBox.Text;
+
+ GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
+ finally
+ FilterList.Free;
+ end;
+ GikoForm.RepaintAllTabsBrowser();
+ end;
+ end else begin
+ // \83L\83\83\83\93\83Z\83\8b
+ if GikoSys.ResRange <> Ord( grrSelect ) then
+ ResRangeAction.Execute;
+ end;
+ finally
+ Dlg.Release;
+ end;
+
+end;
+// *************************************************************************
+//! \91S\82Ä\82Ì\83\8c\83X\82ð\95\\8e¦\82·\82é
+// *************************************************************************
+procedure TGikoDM.AllResActionExecute(Sender: TObject);
+begin
+ if(GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil )
+ and (GikoForm.ActiveContent.Browser.Busy) then Exit;
+
+ GikoForm.ResRangeMenuSelect := Ord( grrAll );
+ AllResAction.Checked := True;
+
+ //\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è
+// *************************************************************************
+procedure TGikoDM.ResRangeActionExecute(Sender: TObject);
+begin
+ case GikoForm.ResRangeMenuSelect of
+ Ord( grrAll ): AllResAction.Execute;
+ Ord( grrKoko ): OnlyKokoResAction.Execute;
+ Ord( grrNew ): OnlyNewResAction.Execute;
+ 100: OnlyAHundredResAction.Execute;
+ end;
+
+end;
+// *************************************************************************
+//! \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Ô
+// *************************************************************************
+procedure TGikoDM.JumpToNumOfResActionExecute(Sender: TObject);
+var
+ str: string;
+ res: integer;
+begin
+ str := '1';
+ if( InputQuery('\8ew\92è\82µ\82½\94Ô\8d\86\82Ì\83\8c\83X\82É\94ò\82Ô', '\94Ô\8d\86\82ð\93ü\97Í\82µ\82Ä\82\82¾\82³\82¢', str) ) then begin
+ str := ZenToHan(str);
+ res := StrToIntDef(str, -1);
+ if (res > 0) and (res <= GikoForm.GetActiveContent.Count) then begin
+ GikoForm.ActiveContent.Move(IntToStr(res));
+ SetFocusForBrowserAction.Execute;
+ end else if res > GikoForm.GetActiveContent.Count then begin
+ 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é
+// *************************************************************************
+procedure TGikoDM.RightTabCloseActionExecute(Sender: TObject);
+var
+ i: Integer;
+ idx: Integer;
+begin
+ idx := GikoForm.BrowserTab.TabIndex;
+ if idx = -1 then Exit;
+ GikoForm.BrowserTab.Tabs.BeginUpdate;
+ for i := GikoForm.BrowserTab.Tabs.Count - 1 downto idx + 1 do begin
+ TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
+ GikoForm.BrowserTab.Tabs.Delete(i);
+ end;
+ GikoForm.BrowserTab.Tabs.EndUpdate;
+end;
+// *************************************************************************
+//! \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é
+// *************************************************************************
+procedure TGikoDM.LeftTabCloseActionExecute(Sender: TObject);
+var
+ i: Integer;
+ idx: Integer;
+begin
+ idx := GikoForm.BrowserTab.TabIndex;
+ if idx = -1 then Exit;
+ GikoForm.BrowserTab.Tabs.BeginUpdate;
+ if idx > 0 then begin
+ for i := idx - 1 downto 0 do begin
+ TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
+ GikoForm.BrowserTab.Tabs.Delete(i);
+ end;
+ end;
+ GikoForm.BrowserTab.Tabs.EndUpdate;
+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é
+// *************************************************************************
+procedure TGikoDM.SearchActionExecute(Sender: TObject);
+var
+ chk: TObject;
+begin
+
+ if GikoForm.SearchDialog = nil then begin
+ if (GikoForm.GetActiveList is TCategory) or (GikoForm.GetActiveList is TBoard) then
+ chk := GikoForm.GetActiveList
+ else
+ chk := nil;
+
+ GikoForm.SearchDialog := TSearchDialog.Create(GikoForm, chk);
+ GikoForm.SearchDialog.SearchComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
+ end;
+
+ try
+ GikoForm.SearchDialog.Show;
+ except
+ end;
+end;
+// *************************************************************************
+//! \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(GikoForm);
+ try
+ Dlg.ShowModal;
+ finally
+ Dlg.Release;
+ end;
+end;
+// *************************************************************************
+//! \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(GikoForm);
+ try
+ Dlg.ShowModal;
+ finally
+ Dlg.Release;
+ end;
+end;
+// *************************************************************************
+//! \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(GikoForm);
+ try
+ if Dlg.ShowModal = mrOk then begin
+ 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;
+
+ finally
+ Dlg.Release;
+ MouseGesture.UnHook;
+ MouseGesture.OnGestureStart := GikoForm.OnGestureStart;
+ MouseGesture.OnGestureMove := GikoForm.OnGestureMove;
+ MouseGesture.OnGestureEnd := GikoForm.OnGestureEnd;
+ if GikoSys.Setting.GestureEnabled then begin
+ GikoSys.Setting.Gestures.ClearGesture;
+ GikoSys.Setting.Gestures.LoadGesture(
+ GikoSys.Setting.GetGestureFileName, GikoFormActionList );
+ MouseGesture.SetHook( GikoForm.Handle );
+ end;
+ end;
+end;
+// *************************************************************************
+//! \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(GikoForm);
+ try
+ Dlg.ShowModal;
+ finally
+ Dlg.Release;
+ end;
+end;
+// *************************************************************************
+//! \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;
+begin
+ Dlg := TToolBarSettingDialog.Create(GikoForm, GikoFormActionList);
+ try
+ Dlg.AddToolBar(GikoForm.StdToolBar, gttStandard);
+ Dlg.AddToolBar(GikoForm.ListToolBar, gttList);
+ Dlg.AddToolBar(GikoForm.BrowserToolBar, gttBrowser);
+ case GikoForm.ToolBarSettingSender of
+ tssMain: Dlg.ToolBarIndex := 0;
+ tssList: Dlg.ToolBarIndex := 1;
+ tssBrowser: Dlg.ToolBarIndex := 2;
+ end;
+ if Dlg.ShowModal = mrOK then begin
+ GikoForm.SetToolBarPopup;
+
+ //\8dÅ\93K\95\9d\82ð\8dÄ\90Ý\92è\82·\82é\82½\82ß\82É\93K\93\96\82È\83v\83\8d\83p\83e\83B\82ð\82¢\82¶\82\82é
+ for i := 0 to GikoForm.MainCoolBar.Bands.Count - 1 do begin
+ GikoForm.MainCoolBar.Bands[i].MinWidth :=
+ GikoForm.MainCoolBar.Bands[i].MinWidth + 1;
+ GikoForm.MainCoolBar.Bands[i].MinWidth :=
+ GikoForm.MainCoolBar.Bands[i].MinWidth - 1;
+ end;
+ for i := 0 to GikoForm.ListCoolBar.Bands.Count - 1 do begin
+ GikoForm.ListCoolBar.Bands[i].MinWidth :=
+ GikoForm.ListCoolBar.Bands[i].MinWidth + 1;
+ GikoForm.ListCoolBar.Bands[i].MinWidth :=
+ GikoForm.ListCoolBar.Bands[i].MinWidth - 1;
+ end;
+ for i := 0 to GikoForm.BrowserCoolBar.Bands.Count - 1 do begin
+ GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
+ GikoForm.BrowserCoolBar.Bands[i].MinWidth + 1;
+ GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
+ GikoForm.BrowserCoolBar.Bands[i].MinWidth - 1;
+ end;
+
+ 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.SetSelectComboBox;
+ GikoForm.ResetBandInfo( GikoForm.ListCoolBar, GikoForm.ListToolBar );
+ SaveToolBarSetting(GikoForm.BrowserToolBar);
+ end;
+ finally
+ Dlg.Release;
+ GikoForm.ToolBarSettingSender := tssNone;
+ end;
+end;
+// *************************************************************************
+//! \83~\83\85\81[\83g
+// *************************************************************************
+procedure TGikoDM.MuteActionExecute(Sender: TObject);
+begin
+ GikoSys.Setting.Mute := not GikoSys.Setting.Mute;
+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é
+// *************************************************************************
+procedure TGikoDM.TreeSelectBoradReloadExecute(Sender: TObject);
+var
+ Board: TBoard;
+ TmpTreeNode: TTreeNode;
+begin
+ TmpTreeNode := GikoForm.ClickNode;
+ GikoForm.TreeView.Selected := GikoForm.ClickNode;
+ Board := nil;
+
+ if TObject(TmpTreeNode.Data) is TBoard then
+ Board := TBoard(TmpTreeNode.Data)
+ else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then
+ Board := TFavoriteBoardItem(TmpTreeNode.Data).Item;
+
+ if Board <> nil then
+ 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é
+// *************************************************************************
+procedure TGikoDM.TreeSelectThreadReloadExecute(Sender: TObject);
+var
+ ThreadItem: TThreadItem;
+ TmpTreeNode: TTreeNode;
+begin
+ TmpTreeNode := GikoForm.ClickNode;
+ GikoForm.TreeView.Selected := GikoForm.ClickNode;
+ ThreadItem := nil;
+
+ if TObject(TmpTreeNode.Data) is TThreadItem then
+ ThreadItem := TThreadItem(TmpTreeNode.Data)
+ else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then
+ ThreadItem := TFavoriteThreadItem(TmpTreeNode.Data).Item;
+
+ if ThreadItem <> nil then
+ GikoForm.DownloadContent(ThreadItem);
+end;
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82½\94Â\82ÌURL\82ð\83R\83s\81[\82·\82é
+// *************************************************************************
+procedure TGikoDM.TreeSelectURLCopyExecute(Sender: TObject);
+var
+ TmpTreeNode: TTreeNode;
+ s: string;
+begin
+ TmpTreeNode := GikoForm.ClickNode;
+ GikoForm.TreeView.Selected := GikoForm.ClickNode;
+ if TObject(TmpTreeNode.Data) is TBoard then begin
+ s := TBoard(TmpTreeNode.Data).URL + #13#10;
+ end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
+ s := TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
+ end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
+ s := TThreadItem(TmpTreeNode.Data).URL + #13#10;
+ end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
+ s := TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
+ end;
+ Clipboard.AsText := s;
+end;
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82½\94Â\82Ì\96¼\91O\82ÆURL\82ð\83R\83s\81[\82·\82é
+// *************************************************************************
+procedure TGikoDM.TreeSelectNameURLCopyExecute(Sender: TObject);
+var
+ TmpTreeNode: TTreeNode;
+ s: string;
+begin
+ TmpTreeNode := GikoForm.ClickNode;
+ GikoForm.TreeView.Selected := GikoForm.ClickNode;
+ if TObject(TmpTreeNode.Data) is TBoard then begin
+ s := TBoard(TmpTreeNode.Data).Title + #13#10 + TBoard(TmpTreeNode.Data).URL + #13#10;
+ end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
+ s := TFavoriteBoardItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
+ end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
+ s := TThreadItem(TmpTreeNode.Data).Title + #13#10 + TThreadItem(TmpTreeNode.Data).URL + #13#10;
+ end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
+ s := TFavoriteThreadItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
+ end;
+ Clipboard.AsText := s;
+end;
+// *************************************************************************
+//! \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õ
+// *************************************************************************
+procedure TGikoDM.TreeSelectSearchBoardNameExecute(Sender: TObject);
+var
+ s : String;
+ msg : String;
+ CurItem : TTreeNode;
+ next : boolean;
+begin
+ if InputQuery('\94Â\96¼\8c\9f\8dõ','\94Â\96¼\82Ì\93ü\97Í',s) then begin
+ next := true;
+ while next do begin
+ if GikoForm.TreeView.Selected = nil then
+ CurItem := GikoForm.TreeView.Items.GetFirstNode
+ else begin
+ CurItem := GikoForm.TreeView.Selected.GetNext;
+ if CurItem = nil then
+ CurItem := GikoForm.TreeView.Items.GetFirstNode;
+ end;
+ while CurItem <> nil do begin
+ if (CurItem.ImageIndex <> 2) and (VaguePos(s,CurItem.Text) <> 0) then begin
+ break;
+ end;
+ CurItem := CurItem.GetNext;
+ end;
+ try
+ if CurItem = nil then begin
+ msg := '\90æ\93ª\82É\96ß\82è\82Ü\82·\82©\81H';
+ if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes then begin
+ CurItem := GikoForm.TreeView.Items.GetFirstNode;
+ end else begin
+ Exit;
+ end;
+ GikoForm.TreeView.Select(CurItem);
+ GikoForm.TreeView.SetFocus;
+ end else begin
+ GikoForm.TreeView.Select(CurItem);
+ GikoForm.TreeView.SetFocus;
+ msg := '\8e\9f\82É\8ds\82«\82Ü\82·\82©\81H';
+ if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes then begin
+ next := true;
+ end else begin
+ next := false;
+ end;
+ end;
+
+ except
+ Exit;
+ end;
+ end;
+ end;
+end;
+// *************************************************************************
+//! \91I\91ð\82³\82ê\82½\94Â\82Ì\96¼\91O\82ð\83R\83s\81[\82·\82é
+// *************************************************************************
+procedure TGikoDM.TreeSelectNameCopyExecute(Sender: TObject);
+var
+ s: string;
+begin
+ GikoForm.TreeView.Selected := GikoForm.ClickNode;
+ s := GikoForm.ClickNode.Text;
+ 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.
-end.