Develop and Download Open Source Software

Browse CVS Repository

Diff of /gikonavigoeson/gikonavi/Giko.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.516 by h677, Sat Jun 25 15:09:46 2005 UTC revision 1.517 by h677, Mon Jul 18 03:55:14 2005 UTC
# Line 425  type Line 425  type
425                  ReloadAction: TAction;                  ReloadAction: TAction;
426                  GoFowardAction: TAction;                  GoFowardAction: TAction;
427                  GoBackAction: TAction;                  GoBackAction: TAction;
                 SelectComboBoxSplitter: TImage;  
428                  IndividualAbon1: TMenuItem;                  IndividualAbon1: TMenuItem;
429                  N41: TMenuItem;                  N41: TMenuItem;
430                  IndividualAbon2: TMenuItem;                  IndividualAbon2: TMenuItem;
# Line 560  type Line 559  type
559          SortNextColumnAction: TAction;          SortNextColumnAction: TAction;
560      SortPrevColumnAction: TAction;      SortPrevColumnAction: TAction;
561      BeLogInOutAction: TAction;      BeLogInOutAction: TAction;
562        UnSelectedListViewAction: TAction;
563        SelectComboBoxPanel: TPanel;
564        SelectComboBoxSplitter: TImage;
565        ToolButton1: TToolButton;
566        N74: TMenuItem;
567                                  procedure FormCreate(Sender: TObject);                                  procedure FormCreate(Sender: TObject);
568                  procedure FormDestroy(Sender: TObject);                  procedure FormDestroy(Sender: TObject);
569                  procedure CabinetPanelHide(Sender: TObject);                  procedure CabinetPanelHide(Sender: TObject);
# Line 639  type Line 643  type
643                  procedure SelectListReloadActionExecute(Sender: TObject);                  procedure SelectListReloadActionExecute(Sender: TObject);
644                  procedure SelectThreadReloadActionExecute(Sender: TObject);                  procedure SelectThreadReloadActionExecute(Sender: TObject);
645                  procedure SelectListReloadActionUpdate(Sender: TObject);                  procedure SelectListReloadActionUpdate(Sender: TObject);
                 procedure AllItemActionUpdate(Sender: TObject);  
                 procedure LogItemActionUpdate(Sender: TObject);  
                 procedure NewItemActionUpdate(Sender: TObject);  
                 procedure SelectItemActionUpdate(Sender: TObject);  
646                  procedure UpFolderActionUpdate(Sender: TObject);                  procedure UpFolderActionUpdate(Sender: TObject);
647                  procedure FormResize(Sender: TObject);                  procedure FormResize(Sender: TObject);
                 procedure ScrollTopActionUpdate(Sender: TObject);  
                 procedure ScrollLastActionUpdate(Sender: TObject);  
                 procedure ScrollNewActionUpdate(Sender: TObject);  
648                  procedure ScrollKokoActionUpdate(Sender: TObject);                  procedure ScrollKokoActionUpdate(Sender: TObject);
                 procedure EditorActionUpdate(Sender: TObject);  
                 procedure IEActionUpdate(Sender: TObject);  
                 procedure ShowThreadActionUpdate(Sender: TObject);  
                 procedure ShowBoardActionUpdate(Sender: TObject);  
649                  procedure SelectThreadReloadActionUpdate(Sender: TObject);                  procedure SelectThreadReloadActionUpdate(Sender: TObject);
                 procedure ItemReloadActionUpdate(Sender: TObject);  
650                  procedure LogDeleteActionExecute(Sender: TObject);                  procedure LogDeleteActionExecute(Sender: TObject);
651                  procedure KokomadeActionExecute(Sender: TObject);                  procedure KokomadeActionExecute(Sender: TObject);
652                  procedure ZenbuActionExecute(Sender: TObject);                  procedure ZenbuActionExecute(Sender: TObject);
653                  procedure KokoResActionExecute(Sender: TObject);                  procedure KokoResActionExecute(Sender: TObject);
654                  procedure ListPopupMenuPopup(Sender: TObject);                  procedure ListPopupMenuPopup(Sender: TObject);
655                  procedure SelectItemURLCopyActionExecute(Sender: TObject);                  procedure SelectItemURLCopyActionExecute(Sender: TObject);
                 procedure SelectItemURLCopyActionUpdate(Sender: TObject);  
656                  procedure AllSelectActionUpdate(Sender: TObject);                  procedure AllSelectActionUpdate(Sender: TObject);
                 procedure LogDeleteActionUpdate(Sender: TObject);  
657                  procedure BrowserTabCloseActionExecute(Sender: TObject);                  procedure BrowserTabCloseActionExecute(Sender: TObject);
658                  procedure NotSelectTabCloseActionExecute(Sender: TObject);                  procedure NotSelectTabCloseActionExecute(Sender: TObject);
659                  procedure TreeSelectBoradReloadExecute(Sender: TObject);                  procedure TreeSelectBoradReloadExecute(Sender: TObject);
# Line 697  type Line 687  type
687                  procedure ArrangeActionExecute(Sender: TObject);                  procedure ArrangeActionExecute(Sender: TObject);
688                  procedure NameURLCopyActionExecute(Sender: TObject);                  procedure NameURLCopyActionExecute(Sender: TObject);
689                  procedure SelectItemNameURLCopyActionExecute(Sender: TObject);                  procedure SelectItemNameURLCopyActionExecute(Sender: TObject);
                 procedure URLCopyActionUpdate(Sender: TObject);  
                 procedure NameURLCopyActionUpdate(Sender: TObject);  
                 procedure BrowserTabCloseActionUpdate(Sender: TObject);  
                 procedure NotSelectTabCloseActionUpdate(Sender: TObject);  
690                  procedure AllTabCloseActionUpdate(Sender: TObject);                  procedure AllTabCloseActionUpdate(Sender: TObject);
                 procedure SelectItemNameURLCopyActionUpdate(Sender: TObject);  
691                  procedure ActiveLogDeleteActionExecute(Sender: TObject);                  procedure ActiveLogDeleteActionExecute(Sender: TObject);
                 procedure ActiveLogDeleteActionUpdate(Sender: TObject);  
692                  procedure ListNameBarVisibleActionExecute(Sender: TObject);                  procedure ListNameBarVisibleActionExecute(Sender: TObject);
693                  procedure BrowserNameBarVisibleActionExecute(Sender: TObject);                  procedure BrowserNameBarVisibleActionExecute(Sender: TObject);
694                  procedure TreeSelectNameURLCopyExecute(Sender: TObject);                  procedure TreeSelectNameURLCopyExecute(Sender: TObject);
# Line 719  type Line 703  type
703                  procedure LeftTabSelectActionExecute(Sender: TObject);                  procedure LeftTabSelectActionExecute(Sender: TObject);
704                  procedure RightTabSelectActionExecute(Sender: TObject);                  procedure RightTabSelectActionExecute(Sender: TObject);
705                  procedure RightmostTabSelectActionExecute(Sender: TObject);                  procedure RightmostTabSelectActionExecute(Sender: TObject);
                 procedure LeftmostTabSelectActionUpdate(Sender: TObject);  
706                  procedure LeftTabSelectActionUpdate(Sender: TObject);                  procedure LeftTabSelectActionUpdate(Sender: TObject);
707                  procedure RightTabSelectActionUpdate(Sender: TObject);                  procedure RightTabSelectActionUpdate(Sender: TObject);
                 procedure RightmostTabSelectActionUpdate(Sender: TObject);  
708                  procedure FavoriteMenuClick(Sender: TObject);                  procedure FavoriteMenuClick(Sender: TObject);
709                  procedure FavoriteAddActionExecute(Sender: TObject);                  procedure FavoriteAddActionExecute(Sender: TObject);
                 procedure FavoriteAddActionUpdate(Sender: TObject);  
710                  procedure BoardFavoriteAddActionExecute(Sender: TObject);                  procedure BoardFavoriteAddActionExecute(Sender: TObject);
711                  procedure BoardFavoriteAddActionUpdate(Sender: TObject);                  procedure BoardFavoriteAddActionUpdate(Sender: TObject);
712                  procedure ThreadFavoriteAddActionExecute(Sender: TObject);                  procedure ThreadFavoriteAddActionExecute(Sender: TObject);
                 procedure ThreadFavoriteAddActionUpdate(Sender: TObject);  
713                  procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);                  procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);
714                  procedure FavoriteArrangeActionExecute(Sender: TObject);                  procedure FavoriteArrangeActionExecute(Sender: TObject);
715                  procedure MainCoolBarResize(Sender: TObject);                  procedure MainCoolBarResize(Sender: TObject);
# Line 769  type Line 749  type
749                          RebarChevron: PNMRebarChevron);                          RebarChevron: PNMRebarChevron);
750                  procedure ListViewColumnInfo(Sender: TObject; var Column: PLVColumnA);                  procedure ListViewColumnInfo(Sender: TObject; var Column: PLVColumnA);
751                  procedure ThreadEditorActionExecute(Sender: TObject);                  procedure ThreadEditorActionExecute(Sender: TObject);
                 procedure ThreadEditorActionUpdate(Sender: TObject);  
752                  procedure ToolBarSettingActionExecute(Sender: TObject);                  procedure ToolBarSettingActionExecute(Sender: TObject);
753                  procedure NameCopyActionExecute(Sender: TObject);                  procedure NameCopyActionExecute(Sender: TObject);
754                  procedure BoardIEActionExecute(Sender: TObject);                  procedure BoardIEActionExecute(Sender: TObject);
755                  procedure SelectItemNameCopyActionExecute(Sender: TObject);                  procedure SelectItemNameCopyActionExecute(Sender: TObject);
756                  procedure SelectItemNameCopyActionUpdate(Sender: TObject);                  procedure SelectItemNameCopyActionUpdate(Sender: TObject);
                 procedure BoardIEActionUpdate(Sender: TObject);  
757                  procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;                  procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
758                          WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);                          WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
                 procedure NameCopyActionUpdate(Sender: TObject);  
759                  procedure SelectComboBoxChange(Sender: TObject);                  procedure SelectComboBoxChange(Sender: TObject);
760                  procedure SelectComboBoxKeyDown(Sender: TObject; var Key: Word;                  procedure SelectComboBoxKeyDown(Sender: TObject; var Key: Word;
761                          Shift: TShiftState);                          Shift: TShiftState);
762                  procedure SelectComboBoxExit(Sender: TObject);                  procedure SelectComboBoxExit(Sender: TObject);
763                  procedure SelectResActionExecute(Sender: TObject);                  procedure SelectResActionExecute(Sender: TObject);
                 procedure SelectResActionUpdate(Sender: TObject);  
764                  procedure AllResActionExecute(Sender: TObject);                  procedure AllResActionExecute(Sender: TObject);
                 procedure AllResActionUpdate(Sender: TObject);  
765                  procedure ReloadClick(Sender: TObject);                  procedure ReloadClick(Sender: TObject);
766                  procedure GoBackClick(Sender: TObject);                  procedure GoBackClick(Sender: TObject);
767                  procedure GoFowardClick(Sender: TObject);                  procedure GoFowardClick(Sender: TObject);
# Line 839  type Line 814  type
814                  procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);                  procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);
815                  procedure FavoriteTreeBrowseBoardPopupMenuClick(Sender: TObject);                  procedure FavoriteTreeBrowseBoardPopupMenuClick(Sender: TObject);
816                  procedure UpBoardActionExecute(Sender: TObject);                  procedure UpBoardActionExecute(Sender: TObject);
                 procedure UpBoardActionUpdate(Sender: TObject);  
817      procedure BrowserTabContextPopup(Sender: TObject; MousePos: TPoint;      procedure BrowserTabContextPopup(Sender: TObject; MousePos: TPoint;
818        var Handled: Boolean);        var Handled: Boolean);
819      procedure KoreCopyExecute(Sender: TObject);      procedure KoreCopyExecute(Sender: TObject);
# Line 855  type Line 829  type
829      procedure TreeSelectNameCopyExecute(Sender: TObject);      procedure TreeSelectNameCopyExecute(Sender: TObject);
830      procedure FavoriteTreeViewMouseUp(Sender: TObject;      procedure FavoriteTreeViewMouseUp(Sender: TObject;
831        Button: TMouseButton; Shift: TShiftState; X, Y: Integer);        Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
     procedure ResRangeActionUpdate(Sender: TObject);  
832                  procedure SetFocusForBrowserActionExecute(Sender: TObject);                  procedure SetFocusForBrowserActionExecute(Sender: TObject);
833                  procedure SetFocusForBrowserActionUpdate(Sender: TObject);                  procedure SetFocusForBrowserActionUpdate(Sender: TObject);
834      procedure SetFocusForThreadListActionExecute(Sender: TObject);      procedure SetFocusForThreadListActionExecute(Sender: TObject);
835      procedure SetFocusForCabinetActionExecute(Sender: TObject);      procedure SetFocusForCabinetActionExecute(Sender: TObject);
836          procedure BrowserMaxAndFocusActionExecute(Sender: TObject);          procedure BrowserMaxAndFocusActionExecute(Sender: TObject);
837      procedure BrowserMaxAndFocusActionUpdate(Sender: TObject);          procedure ThreadlistMaxAndFocusActionExecute(Sender: TObject);
     procedure ThreadlistMaxAndFocusActionExecute(Sender: TObject);  
838      procedure SetFocusForCabinetActionUpdate(Sender: TObject);      procedure SetFocusForCabinetActionUpdate(Sender: TObject);
     procedure ListViewSelectItem(Sender: TObject; Item: TListItem;  
       Selected: Boolean);  
839      procedure SelectTimerTimer(Sender: TObject);      procedure SelectTimerTimer(Sender: TObject);
840      procedure SelectItemSaveForHTMLExecute(Sender: TObject);      procedure SelectItemSaveForHTMLExecute(Sender: TObject);
841          procedure KidokuActionExecute(Sender: TObject);          procedure KidokuActionExecute(Sender: TObject);
842      procedure MidokuActionExecute(Sender: TObject);      procedure MidokuActionExecute(Sender: TObject);
843      procedure SelectItemSaveForDatExecute(Sender: TObject);      procedure SelectItemSaveForDatExecute(Sender: TObject);
844      procedure LogFolderOpenActionExecute(Sender: TObject);      procedure LogFolderOpenActionExecute(Sender: TObject);
     procedure LogFolderOpenActionUpdate(Sender: TObject);  
845                  procedure TabsSaveActionExecute(Sender: TObject);                  procedure TabsSaveActionExecute(Sender: TObject);
846                  procedure TabsOpenActionExecute(Sender: TObject);                  procedure TabsOpenActionExecute(Sender: TObject);
847      procedure OnlyAHundredResActionExecute(Sender: TObject);      procedure OnlyAHundredResActionExecute(Sender: TObject);
848      procedure OnlyKokoResActionExecute(Sender: TObject);      procedure OnlyKokoResActionExecute(Sender: TObject);
849          procedure OnlyNewResActionExecute(Sender: TObject);          procedure OnlyNewResActionExecute(Sender: TObject);
850          procedure BrowsBoradHeadActionExecute(Sender: TObject);          procedure BrowsBoradHeadActionExecute(Sender: TObject);
851      procedure BrowsBoradHeadActionUpdate(Sender: TObject);          procedure EditNGActionExecute(Sender: TObject);
     procedure EditNGActionExecute(Sender: TObject);  
     procedure ThreadRangeActionUpdate(Sender: TObject);  
852      procedure ThreadRangeActionExecute(Sender: TObject);      procedure ThreadRangeActionExecute(Sender: TObject);
853                  procedure TabAutoSaveActionExecute(Sender: TObject);                  procedure TabAutoSaveActionExecute(Sender: TObject);
854      procedure TabAutoLoadActionExecute(Sender: TObject);      procedure TabAutoLoadActionExecute(Sender: TObject);
855                  procedure ListViewColumnRightClick(Sender: TObject;                  procedure ListViewColumnRightClick(Sender: TObject;
856        Column: TListColumn; Point: TPoint);        Column: TListColumn; Point: TPoint);
857      procedure JumpToNumOfResActionExecute(Sender: TObject);      procedure JumpToNumOfResActionExecute(Sender: TObject);
     procedure JumpToNumOfResActionUpdate(Sender: TObject);  
858      procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);      procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);
859          procedure ListViewCustomDrawItem(Sender: TCustomListView;          procedure ListViewCustomDrawItem(Sender: TCustomListView;
860        Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);        Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
# Line 900  type Line 866  type
866          procedure RightTabCloseActionExecute(Sender: TObject);          procedure RightTabCloseActionExecute(Sender: TObject);
867      procedure RightTabCloseActionUpdate(Sender: TObject);      procedure RightTabCloseActionUpdate(Sender: TObject);
868      procedure LeftTabCloseActionExecute(Sender: TObject);      procedure LeftTabCloseActionExecute(Sender: TObject);
     procedure LeftTabCloseActionUpdate(Sender: TObject);  
869      procedure SameIDResAnchorActionExecute(Sender: TObject);      procedure SameIDResAnchorActionExecute(Sender: TObject);
870      procedure IndividualAbon1ActionExecute(Sender: TObject);      procedure IndividualAbon1ActionExecute(Sender: TObject);
871      procedure IndividualAbon0ActionExecute(Sender: TObject);      procedure IndividualAbon0ActionExecute(Sender: TObject);
# Line 913  type Line 878  type
878      procedure SortActiveColumnActionExecute(Sender: TObject);      procedure SortActiveColumnActionExecute(Sender: TObject);
879      procedure SortNextColumnActionExecute(Sender: TObject);      procedure SortNextColumnActionExecute(Sender: TObject);
880      procedure SortPrevColumnActionExecute(Sender: TObject);      procedure SortPrevColumnActionExecute(Sender: TObject);
881      procedure MessageListViewAdvancedCustomDrawItem(          procedure MessageListViewAdvancedCustomDrawItem(
882        Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;            Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
883        Stage: TCustomDrawStage; var DefaultDraw: Boolean);            Stage: TCustomDrawStage; var DefaultDraw: Boolean);
884      procedure BeLogInOutActionExecute(Sender: TObject);          procedure BeLogInOutActionExecute(Sender: TObject);
885          procedure BeLogInOutActionUpdate(Sender: TObject);          procedure BeLogInOutActionUpdate(Sender: TObject);
886            procedure UnSelectedListViewActionExecute(Sender: TObject);
887            procedure ListViewKeyUp(Sender: TObject; var Key: Word;
888              Shift: TShiftState);
889        procedure FavoriteTreeViewEditing(Sender: TObject; Node: TTreeNode;
890          var AllowEdit: Boolean);
891          private          private
892                  { Private 宣言 }                  { Private 宣言 }
         //RoundList : TRoundList;  
893                  FSortIndex: Integer;                  FSortIndex: Integer;
894                  FSortOrder: Boolean;                  FSortOrder: Boolean;
895    
# Line 941  type Line 910  type
910                  FListStyle: TViewStyle;                         //リストアイコンスタイル                  FListStyle: TViewStyle;                         //リストアイコンスタイル
911                  FItemNoVisible: Boolean;                        //リスト番号表示フラグ                  FItemNoVisible: Boolean;                        //リスト番号表示フラグ
912                  FViewType: TGikoViewType;                       //リストアイテム表示タイプ                  FViewType: TGikoViewType;                       //リストアイテム表示タイプ
913                  FActiveList: TObject;                  FActiveList: TObject;
914                  FActiveContent: TBrowserRecord; //                  FActiveContent: TBrowserRecord; //
915                  FActiveBBS : TBBS;                  FActiveBBS : TBBS;
916                  FHistoryList: TList;                                    //ヒストリリスト                  FHistoryList: TList;                                    //ヒストリリスト
# Line 983  type Line 952  type
952                  FResRangeMenuSelect     : Longint;                      ///< ResRangeButton で選択されている項目 (フォーマットは ResRange 互換)                  FResRangeMenuSelect     : Longint;                      ///< ResRangeButton で選択されている項目 (フォーマットは ResRange 互換)
953                  FStartUp : Boolean;                  FStartUp : Boolean;
954                  FIsHandledWheel : Boolean;                      ///< 既に受け取った WM_MOUSEWHEEL かどうか                  FIsHandledWheel : Boolean;                      ///< 既に受け取った WM_MOUSEWHEEL かどうか
955                  DiffComp: Boolean;                      //Add by Genyakun スレが更新されたときにTrueになる                                  DiffComp: Boolean;                      //Add by Genyakun スレが更新されたときにTrueになる
956                    FOrigenCaption: String;                         //お気に入りツリーのアイテム編集時の編集前の文字列                              
957                  procedure SetBoardTreeNode( inBBS : TBBS );                  procedure SetBoardTreeNode( inBBS : TBBS );
958                  function SetCategoryListItem(ABBS2ch: TBBS): Integer;                  function SetCategoryListItem(ABBS2ch: TBBS): Integer;
959                  function SetBoardListItem(Category: TCategory): Integer;                  function SetBoardListItem(Category: TCategory): Integer;
# Line 1002  type Line 972  type
972                  procedure BrowserMovement(const AName: string); overload;                  procedure BrowserMovement(const AName: string); overload;
973                  procedure BrowserMovement(const AName: string; BrowserRecord: TBrowserRecord); overload;                  procedure BrowserMovement(const AName: string; BrowserRecord: TBrowserRecord); overload;
974                  procedure SelectListItem(List: TList);                  procedure SelectListItem(List: TList);
 //              procedure SetProgressValue(Number: Integer; Value: Integer; Max: Integer = -1);  
975                  procedure DeleteTab(ThreadItem: TThreadItem); overload;                  procedure DeleteTab(ThreadItem: TThreadItem); overload;
976                  procedure DeleteTab(BrowserRecord: TBrowserRecord); overload;                  procedure DeleteTab(BrowserRecord: TBrowserRecord); overload;
977                  function Hook(var Message: TMessage): Boolean;                  function Hook(var Message: TMessage): Boolean;
# Line 1013  type Line 982  type
982                  function GetCoolBand(CoolBar: TCoolBar; Control: TWinControl): TCoolBand;                  function GetCoolBand(CoolBar: TCoolBar; Control: TWinControl): TCoolBand;
983    
984                  procedure SetMenuFont;                  procedure SetMenuFont;
 //              procedure CreateFavMenu(Folder: TFavoriteFolder);  
985                  procedure CreateFavMenu(Node: TTreeNode; MenuItem: TMenuItem);                  procedure CreateFavMenu(Node: TTreeNode; MenuItem: TMenuItem);
986                  procedure FavoriteClick(Sender: TObject; ActiveTab: Boolean); overload;                  procedure FavoriteClick(Sender: TObject; ActiveTab: Boolean); overload;
987                  procedure FavoriteClick(Sender: TObject); overload;                  procedure FavoriteClick(Sender: TObject); overload;
988                  procedure FavoriteDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);                  procedure FavoriteDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
989                  procedure SelectTreeNode(Item: TObject; CallEvent: Boolean);                  procedure SelectTreeNode(Item: TObject; CallEvent: Boolean);
990                  function OnDocumentContextMenu(Sender: TObject): WordBool;                  function OnDocumentContextMenu(Sender: TObject): WordBool;
 //              function GetThreadText(sBoard: string; sThread: string; StNum, ToNum: Integer; Title, First: Boolean): string;  
991                  procedure SetResPopupText(ThreadItem : TThreadItem; StNum, ToNum: Integer; Title, First: Boolean);                  procedure SetResPopupText(ThreadItem : TThreadItem; StNum, ToNum: Integer; Title, First: Boolean);
992                  procedure ShowTextPopup;                  procedure ShowTextPopup;
                 //procedure ShowTextPopup(HintData: THintData);  
 //              procedure SetStdToolBar;  
 //              function GetAction(ActionName: string): TContainedAction;  
993                  procedure SetLinkBar;                  procedure SetLinkBar;
994                  function GetWidthAllToolButton(ToolBar: TToolBar): Integer;                  function GetWidthAllToolButton(ToolBar: TToolBar): Integer;
995                  procedure MenuBarChevronMenu;                  procedure MenuBarChevronMenu;
# Line 1096  type Line 1060  type
1060                  //ブラウザの再描画 true:全てのタブ false:アクティブなタブのみ                  //ブラウザの再描画 true:全てのタブ false:アクティブなタブのみ
1061                  procedure RepaintAllTabsBrowser();                  procedure RepaintAllTabsBrowser();
1062          //リンクの文字列からレスポップアップ用のURLに変換する          //リンクの文字列からレスポップアップ用のURLに変換する
1063          function GetRespopupURL(AText, AThreadURL : string): string;                  function GetRespopupURL(AText, AThreadURL : string): string;
1064          protected          protected
1065                  procedure CreateParams(var Params: TCreateParams); override;                  procedure CreateParams(var Params: TCreateParams); override;
1066                  procedure WndProc(var Message: TMessage); override;                  procedure WndProc(var Message: TMessage); override;
# Line 1167  type Line 1131  type
1131                  procedure IDAnchorPopup(Abody :string);                  procedure IDAnchorPopup(Abody :string);
1132          published          published
1133                  property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;                  property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;
1134                    //TActionでGetActiveContentがnil以外で有効になる
1135                    procedure DependActiveCntentActionUpdate(Sender: TObject);
1136                    //TActionでGetActiveContentがnil以外かつログを持っていると有効になる
1137                    procedure DependActiveCntentLogActionUpdate(Sender: TObject);
1138                    //TActionでActiveListがTBoardで有効になる
1139                    procedure DependActiveListTBoardActionUpdate(Sender: TObject);
1140                    //例外処理されなかった例外を処理する
1141                    procedure AppException(Sender: TObject; E: Exception);
1142          end;          end;
1143    
1144          TFavoriteMenuItem = class(TMenuItem)          TFavoriteMenuItem = class(TMenuItem)
# Line 1293  var Line 1265  var
1265          wp: TWindowPlacement;          wp: TWindowPlacement;
1266          s: string;          s: string;
1267          newbrowser: TWebBrowser;          newbrowser: TWebBrowser;
1268            ToolButton: TToolButton;
1269  begin  begin
1270  {$IFDEF DEBUG}  {$IFDEF DEBUG}
1271          AllocConsole;          AllocConsole;
# Line 1310  begin Line 1283  begin
1283          Application.OnDeactivate := AppFormDeactivate;          Application.OnDeactivate := AppFormDeactivate;
1284          //Self.OnDeactivate := AppFormDeactivate;          //Self.OnDeactivate := AppFormDeactivate;
1285          Application.HookMainWindow(Hook);          Application.HookMainWindow(Hook);
1286            Application.OnException :=      AppException;   //処理されない例外を補足
1287  //      Application.OnMessage := HandleAppMessage; //なんか無くても大丈夫になった by もじゅ  //      Application.OnMessage := HandleAppMessage; //なんか無くても大丈夫になった by もじゅ
1288          FIsIgnoreResize := rtResizing;          FIsIgnoreResize := rtResizing;
1289    
# Line 1336  begin Line 1310  begin
1310          BrowserNullTab.Browser.BringToFront;          BrowserNullTab.Browser.BringToFront;
1311          ShowWindow(BrowserNullTab.Browser.Handle, SW_SHOW);          ShowWindow(BrowserNullTab.Browser.Handle, SW_SHOW);
1312    
   
1313          //メニューフォント          //メニューフォント
1314          SetMenuFont;          SetMenuFont;
1315    
# Line 1579  begin Line 1552  begin
1552          ReadToolBarSetting(ActionList, BrowserToolBar);          ReadToolBarSetting(ActionList, BrowserToolBar);
1553          SetToolBarPopup;          SetToolBarPopup;
1554    
1555            //ListToolBarにいるかもしれない絞込みComboBoxを配置
1556            SelectComboBoxPanel.Visible := False;
1557            try
1558                    for i := ListToolBar.ControlCount - 1 downto 0 do
1559                    begin
1560                            if ListToolBar.Controls[ i ].Action = SelectItemAction then
1561                            begin
1562                                    SelectComboBoxPanel.Left := ListToolBar.Controls[ i ].Left;
1563                                    SelectComboBoxPanel.Width := GikoSys.Setting.SelectComboBoxWidth;
1564                                    SelectComboBoxPanel.Parent := ListToolBar;
1565                                    SelectComboBoxPanel.Visible := True;
1566    
1567                                    SelectComboBox.Left := 0;
1568                                    SelectComboBox.Top  := 0;
1569                                    SelectComboBox.Height := SelectComboBoxPanel.ClientHeight;
1570                                    SelectComboBox.Width := SelectComboBoxPanel.Width -
1571                                                                                    SelectComboBoxSplitter.Width;
1572    
1573                                    //一つ見えないボタンを突っ込む
1574                                    ToolButton := TToolButton.Create(ListToolBar);
1575                                    ToolButton.Name := 'SelectComboBoxDummy';
1576                                    ToolButton.Style := tbsSeparator;
1577                                    ToolButton.Width := 0;
1578                                    ToolButton.Left  := ListToolBar.Controls[ i ].Left;
1579                                    ListToolBar.InsertControl(ToolButton);
1580                                    ToolButton.Visible := False;
1581    
1582                                    // スレッド絞込の隣にセパレータがある場合は隠す
1583                                    if (i + 1) < ListToolBar.ControlCount then
1584                                            if ListToolBar.Controls[ i + 1 ] is TToolButton then
1585                                                    if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then
1586                                                            ListToolBar.Controls[ i + 1 ].Visible := False;
1587    
1588    
1589                                    // スレッド絞込ボタンを隠す
1590                                    ListToolBar.Controls[ i ].Visible := False;
1591    
1592                                    break;
1593                            end;
1594                    end;
1595            except
1596            end;
1597    
1598    
1599          //アドレスバー          //アドレスバー
1600          AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;          AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;
# Line 1834  end; Line 1850  end;
1850  //  //
1851  //  //
1852  procedure TGikoForm.FormShow(Sender: TObject);  procedure TGikoForm.FormShow(Sender: TObject);
 var  
         i       :Integer;  
1853  begin  begin
1854          if FStartUp then begin          if FStartUp then begin
1855                  ShowWindow(Application.Handle, SW_HIDE);                  ShowWindow(Application.Handle, SW_HIDE);
# Line 1886  begin Line 1900  begin
1900                  // CoolBar 復元                  // CoolBar 復元
1901                  LoadCoolBarSettings;                  LoadCoolBarSettings;
1902    
                 //ListToolBarにいるかもしれない絞込みComboBoxを配置  
                 try  
                         for i := ListToolBar.ControlCount - 1 downto 0 do  
                         begin  
                                 if ListToolBar.Controls[ i ].Action = SelectItemAction then  
                                 begin  
                                         // スレッド絞込の隣にセパレータがある場合は隠す  
                                         if (i + 1) < ListToolBar.ControlCount then  
                                                 if ListToolBar.Controls[ i + 1 ] is TToolButton then  
                                                         if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then  
                                                                 ListToolBar.Controls[ i + 1 ].Visible := False;  
   
   
                                         // スレッド絞込ボタンを隠す  
                                         ListToolBar.Controls[ i ].Visible := False;  
                                         // スレッド絞込フィールドを挿入  
                                         SelectComboBox.Left :=  ListToolBar.Controls[ i ].Left;  
                                         SelectComboBox.Width := GikoSys.Setting.SelectComboBoxWidth;  
                                         SelectComboBox.Parent := ListToolBar;  
                                         SelectComboBox.Visible := True;  
                                         // スレッド絞込用独自セパレータを挿入  
                                         SelectComboBoxSplitter.Left := SelectComboBox.Left + SelectComboBox.Width;  
                                         SelectComboBoxSplitter.Visible := True;  
                                         SelectComboBoxSplitter.Parent := ListToolBar;  
                                         break;  
                                 end;  
                         end;  
                 except  
                 end;  
1903                  //重要 これがないとツールボタンの更新がおかしくなる                  //重要 これがないとツールボタンの更新がおかしくなる
1904                  ResetBandInfo( ListCoolBar, ListToolBar );  //              ResetBandInfo( ListCoolBar, ListToolBar );
   
1905                  FIsIgnoreResize := rtNone;                  FIsIgnoreResize := rtNone;
1906    
1907                  //TabAutoLoad                  //TabAutoLoad
# Line 2114  begin Line 2098  begin
2098          // TBoard, TThreadItem のデストラクタはプラグインに破棄を伝えるので          // TBoard, TThreadItem のデストラクタはプラグインに破棄を伝えるので
2099          // BoardPluteIns の開放より先に行うこと          // BoardPluteIns の開放より先に行うこと
2100      for i := Length(BoardGroups) - 1 downto 0 do begin      for i := Length(BoardGroups) - 1 downto 0 do begin
2101          BoardGroups[i].Clear;                  //BoardGroups[i].Clear;
2102                    BoardGroups[i].Free;
2103      end;      end;
2104    
2105          try          try
# Line 2211  var Line 2196  var
2196          i                       : Integer;          i                       : Integer;
2197          tmpBool: Boolean;          tmpBool: Boolean;
2198  begin  begin
2199        LockWindowUpdate(Self.Handle);
2200    
2201          //タブクローズ          //タブクローズ
2202          tmpBool := GikoSys.Setting.ShowDialogForAllTabClose;          tmpBool := GikoSys.Setting.ShowDialogForAllTabClose;
2203          GikoSys.Setting.ShowDialogForAllTabClose := false;          GikoSys.Setting.ShowDialogForAllTabClose := false;
# Line 2233  begin Line 2220  begin
2220          end;          end;
2221    
2222          //履歴の保存と破棄          //履歴の保存と破棄
2223          SaveHistory;          try
2224          ClearHistory;                  SaveHistory;
2225                    ClearHistory;
2226            except
2227            end;
2228    
2229          //お気に入りの保存と破棄          //お気に入りの保存と破棄
2230          FavoriteDM.WriteFavorite;          try
2231          FavoriteDM.Clear;                  FavoriteDM.WriteFavorite;
2232                    FavoriteDM.Clear;
2233            except
2234            end;
2235    
2236          //板・スレ・PLUGINの破棄          //板・スレ・PLUGINの破棄
2237          for i := Length(BoardGroups) - 1 downto 0 do begin          for i := Length(BoardGroups) - 1 downto 0 do begin
2238                  BoardGroups[i].Clear;                  try
2239                            BoardGroups[i].Free;
2240                    except
2241                    end;
2242          end;          end;
2243          //BBS破棄          //BBS破棄
2244          try          try
# Line 2257  begin Line 2253  begin
2253          ActiveList := nil;          ActiveList := nil;
2254    
2255          FTreeType := gttNone;          FTreeType := gttNone;
         //GikoSys.FBoardURLList.Clear;  
2256    
2257          //============ここから下で、再生================================//          //============ここから下で、再生================================//
2258    
# Line 2289  begin Line 2284  begin
2284          RoundList.LoadRoundBoardFile;          RoundList.LoadRoundBoardFile;
2285          RoundList.LoadRoundThreadFile;          RoundList.LoadRoundThreadFile;
2286    
2287            LockWindowUpdate(0);
2288          //          //
2289          TabsOpenAction.Execute;          TabsOpenAction.Execute;
2290  end;  end;
# Line 3349  end; Line 3345  end;
3345    
3346  procedure TGikoForm.AppFormDeactivate(Sender: TObject);  procedure TGikoForm.AppFormDeactivate(Sender: TObject);
3347  begin  begin
3348      Application.ProcessMessages;          Application.ProcessMessages;
3349          if Application.Terminated then          if not Application.Terminated then begin
3350                  Exit;                  if PreviewTimer.Enabled then
3351          if PreviewTimer.Enabled then                          PreviewTimer.Enabled := False;
3352                  PreviewTimer.Enabled := False;                  //フォーカスが他のアプリに変わったときにヒントを消去
3353          //フォーカスが他のアプリに変わったときにヒントを消去                  if FHint <> nil then begin
3354          if FHint <> nil then begin                          FHint.ReleaseHandle;
3355                  FHint.ReleaseHandle;                          FHint.ClearAllRes;
3356                  FHint.ClearAllRes;                  end;
3357            //プレビューを隠す
3358                    if FPreviewBrowser <> nil then
3359                            ShowWindow(FPreviewBrowser.Handle, SW_HIDE);
3360          end;          end;
         if FPreviewBrowser <> nil then  
                 ShowWindow(FPreviewBrowser.Handle, SW_HIDE);  
   
3361  end;  end;
3362    
3363  procedure TGikoForm.TreeViewCustomDraw(Sender: TCustomTreeView;  procedure TGikoForm.TreeViewCustomDraw(Sender: TCustomTreeView;
# Line 3853  var Line 3849  var
3849          BBSID: string;          BBSID: string;
3850          FileName: string;          FileName: string;
3851          sTitle: string;          sTitle: string;
 //      HtmlName: string;  
3852          doc:  Variant;          doc:  Variant;
3853          s: string;          s: string;
 //      OldCursor: TCursor;  
3854          i: Integer;          i: Integer;
3855          idx: Integer;          idx: Integer;
3856          ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
3857          Thread: TBrowserRecord;          Thread: TBrowserRecord;
3858          ThreadTitle, ThreadPTitle: string;          ThreadTitle, ThreadPTitle: string;
         //ThreadScrollTop: Integer;  
3859          ThreadIsLog, {ThreadUnRead,} ThreadNewArraical: boolean;          ThreadIsLog, {ThreadUnRead,} ThreadNewArraical: boolean;
3860  begin  begin
 //      AddMessageList('SetContent', nil, gmiWhat);  
3861          Thread := inThread;          Thread := inThread;
3862          idx := BrowserTab.TabIndex;          idx := BrowserTab.TabIndex;
3863          if (FActiveContent <> nil) and          if (FActiveContent <> nil) and
# Line 3874  begin Line 3866  begin
3866                  try                  try
3867                  try                  try
3868                          Sleep(1);                          Sleep(1);
                         //Application.ProcessMessages;  
3869                          FActiveContent.Thread.ScrollTop := OleVariant(IHTMLDocument2(FActiveContent.Browser.Document).Body).ScrollTop;                          FActiveContent.Thread.ScrollTop := OleVariant(IHTMLDocument2(FActiveContent.Browser.Document).Body).ScrollTop;
                         //if FActiveContent.Browser <> BrowserNullTab.Browser then  
                         //      TOleControl(FActiveContent.Browser).Visible := false;  
3870                  except                  except
3871                          on E: Exception do                          on E: Exception do
3872                                  MsgBox(Handle, E.Message, 'SetContent[<-ScrollTop]', 0);                                  MsgBox(Handle, E.Message, 'SetContent[<-ScrollTop]', 0);
# Line 3909  begin Line 3898  begin
3898                  FBrowsers.Move(BROWSER_COUNT - 1, 0);                  FBrowsers.Move(BROWSER_COUNT - 1, 0);
3899          end;          end;
3900    
         //MoveWindow(Thread.FBrowser.Handle, 0, 0, BrowserPanel.Width, BrowserPanel.Height, false);  
           
3901          ThreadTitle := Thread.Thread.Title;          ThreadTitle := Thread.Thread.Title;
3902          ThreadPTitle := Thread.Thread.ParentBoard.Title;          ThreadPTitle := Thread.Thread.ParentBoard.Title;
3903          //ThreadScrollTop := Thread.Thread.ScrollTop;          //ThreadScrollTop := Thread.Thread.ScrollTop;
# Line 3928  begin Line 3915  begin
3915    
3916    
3917          try          try
                 {  
                 if ThreadItem.UnRead then begin  
                         ThreadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1;  
                         if ThreadItem.ParentBoard.UnRead < 0 then ThreadItem.ParentBoard.UnRead := 0;  
                         TreeView.Refresh;  
                 end;  
                 }  
   
3918                  if(FActiveContent <> nil) and (FActiveContent <> Thread) then begin                  if(FActiveContent <> nil) and (FActiveContent <> Thread) then begin
3919                          if (FActiveContent.Browser <> BrowserNullTab.Browser) then                          if (FActiveContent.Browser <> BrowserNullTab.Browser) then
3920                                  ShowWindow(FActiveContent.Browser.Handle, SW_HIDE);                                  ShowWindow(FActiveContent.Browser.Handle, SW_HIDE);
# Line 3944  begin Line 3923  begin
3923                  if (not Assigned(Thread.Browser.Document)) then begin                  if (not Assigned(Thread.Browser.Document)) then begin
3924                          Thread.Browser.Navigate('about:blank');                          Thread.Browser.Navigate('about:blank');
3925                  end;                  end;
3926                  FActiveContent := Thread;  
3927                  while (Thread.Browser.ReadyState <> READYSTATE_COMPLETE) and                  while (Thread.Browser.ReadyState <> READYSTATE_COMPLETE) and
3928                                  (Thread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin                                  (Thread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
3929                          Application.ProcessMessages;                          Application.ProcessMessages;
# Line 3952  begin Line 3931  begin
3931                                  Exit;                                  Exit;
3932                          end;                          end;
3933                  end;                  end;
3934    
3935                    //ActiveContent の更新
3936                    FActiveContent := Thread;
3937    
3938                  if not ThreadIsLog then begin                  if not ThreadIsLog then begin
3939                          Self.Caption := CAPTION_NAME ;                          Self.Caption := CAPTION_NAME ;
3940                          try                          try
# Line 3968  begin Line 3951  begin
3951                          //Thread.Repaintは、スキン等の設定を変更したとき、Threadをダウンロードしたとき                          //Thread.Repaintは、スキン等の設定を変更したとき、Threadをダウンロードしたとき
3952                          //新規にThreadを開いたときに真になっている。                          //新規にThreadを開いたときに真になっている。
3953                          if Thread.Repaint then begin                          if Thread.Repaint then begin
                                 //Thread.LastSize := ThreadItem.Size;  
3954                                  Thread.Repaint := false;                                  Thread.Repaint := false;
3955    
3956                                  Thread.Browser.OnStatusTextChange := nil;                                  Thread.Browser.OnStatusTextChange := nil;
# Line 3976  begin Line 3958  begin
3958    
3959                                  GikoSys.CreateHTML2(doc, ThreadItem, sTitle);                                  GikoSys.CreateHTML2(doc, ThreadItem, sTitle);
3960                                  Thread.Browser.OnStatusTextChange := BrowserStatusTextChange;                                  Thread.Browser.OnStatusTextChange := BrowserStatusTextChange;
3961                                  PostMessage( Handle, USER_DOCUMENTCOMPLETE, Integer( Thread.Browser ), 0 );                                  while (Thread.Browser.ReadyState <> READYSTATE_COMPLETE) and
3962                                                    (Thread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
3963                                            Application.ProcessMessages;
3964                                    end;
3965                                  if ThreadItem = nil then begin                                  if ThreadItem = nil then begin
3966                                          FActiveContent := nil;                                          FActiveContent := nil;
3967                                          BrowserTab.Repaint;                                          BrowserTab.Repaint;
3968                                          Exit;                                          Exit;
3969                                  end;                                  end;
3970                                    PostMessage( Handle, USER_DOCUMENTCOMPLETE, Integer( Thread.Browser ), 0 );
3971                          end;                          end;
                         ListView.Refresh;  
3972                  end;                  end;
3973                  if (Assigned(Thread)) and (Assigned(Thread.Thread)) and (Thread <> nil) and (ThreadItem <>nil) then begin                  if (Thread <> nil) and (ThreadItem <>nil) then begin
                         //FActiveContent := Thread;  
   
3974                          BrowserBoardNameLabel.Caption := ThreadPTitle;                          BrowserBoardNameLabel.Caption := ThreadPTitle;
3975                          ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap);                          ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap);
3976                          BrowserNameLabel.Caption := ThreadTitle;                          BrowserNameLabel.Caption := ThreadTitle;
# Line 4002  begin Line 3985  begin
3985    
3986                          ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8;                          ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8;
3987                          BrowserNameLabel.Left := ItemImage.Left + 20;                          BrowserNameLabel.Left := ItemImage.Left + 20;
3988    
3989                            //Threadの板と表示している板が同じなら描画を更新する
3990                            if (FActiveList is TBoard) and (TBoard(ActiveList) = ThreadItem.ParentBoard) then
3991                                    ListView.Refresh;
3992                  end else begin                  end else begin
3993                          FActiveContent := nil;                          FActiveContent := nil;
3994                  end;                  end;
# Line 4013  end; Line 4000  end;
4000  function TGikoForm.GetActiveContent: TThreadItem;  function TGikoForm.GetActiveContent: TThreadItem;
4001  begin  begin
4002          try          try
4003                  if( Assigned(FActiveContent) ) and (Assigned(FActiveContent.Thread))                  if FActiveContent <> nil then
                         and (FActiveContent <> nil) and (FActiveContent.Thread <> nil) then  
4004                          Result := FActiveContent.Thread                          Result := FActiveContent.Thread
4005                  else begin                  else
             FActiveContent := nil;  
4006                          Result := nil;                          Result := nil;
                 end;  
4007          except          except
                 FActiveContent := nil;  
4008                  Result := nil;                  Result := nil;
4009          end;          end;
4010    
4011  end;  end;
4012    
4013  procedure TGikoForm.SetActiveList(Obj: TObject);  procedure TGikoForm.SetActiveList(Obj: TObject);
# Line 4708  begin Line 4692  begin
4692                  end;                  end;
4693          mbLeft:          mbLeft:
4694                  begin                  begin
4695              //ここでDblClick拾わないと、Clickイベントが優先して起きてしまうので                          //ここでDblClick拾わないと、Clickイベントが優先して起きてしまうので
4696                          if (ssDouble in Shift) then                          if (ssDouble in Shift) then
4697                                  ListDoubleClick(Shift)                                  ListDoubleClick(Shift)
4698                          else                          else
# Line 4722  begin Line 4706  begin
4706                          ListPopupMenu.Popup( pos.X, pos.Y );                          ListPopupMenu.Popup( pos.X, pos.Y );
4707                  end;                  end;
4708          end;          end;
 {       if ssDouble in Shift then begin  
                 DoubleClickOccurred[Button] := True;  
         end else begin  
                 DoubleClickOccurred[Button] := False;  
                 t := GetTickCount+GetDoubleClickTime;  
                 while GetTickCount < t do begin  
                         Application.ProcessMessages;  
                         if DoubleClickOccurred[Button] then  
                                 Exit;  
                 end;  
         end;  
4709    
         if ssDouble in Shift then begin  
                 case Button of  
                         mbLeft: ListDoubleClick;  
 //                      mbMiddle: ;  
 //                      mbRight:        ;  
                 end;  
         end else begin  
                 case Button of  
                         mbLeft: ListClick;  
 //                      mbMiddle: ;  
 //                      mbRight:        ;  
                 end;  
         end;}  
4710  end;  end;
4711    
4712  procedure TGikoForm.ListClick;  procedure TGikoForm.ListClick;
# Line 4761  begin Line 4721  begin
4721    
4722          ThreadItem := TThreadItem(ListItem.Data);          ThreadItem := TThreadItem(ListItem.Data);
4723          if ThreadItem.IsLogFile then begin          if ThreadItem.IsLogFile then begin
 //              if AddHistory(ThreadItem) then  
 //              SetContent(ThreadItem);  
4724                  InsertBrowserTab(ThreadItem);                  InsertBrowserTab(ThreadItem);
4725                  ListView.UpdateItems(ListItem.Index, ListItem.Index);                  ListView.UpdateItems(ListItem.Index, ListItem.Index);
4726          end else begin          end else begin
 //              SetContent(ThreadItem);  
4727                  InsertBrowserTab(ThreadItem);                  InsertBrowserTab(ThreadItem);
4728          end;          end;
4729    
# Line 4796  begin Line 4753  begin
4753    
4754          if TObject(ListView.Selected.Data) is TCategory then begin          if TObject(ListView.Selected.Data) is TCategory then begin
4755                  SelectTreeNode(ListView.Selected.Data, True);                  SelectTreeNode(ListView.Selected.Data, True);
 //              TreeView.Selected.Expanded := True;  
 //              TreeView.Selected.Item[ListView.Selected.Index].Selected := True;  
                 //TreeViewChange(nil, TreeView.Selected);  
4756          end else if TObject(ListView.Selected.Data) is TBoard then begin          end else if TObject(ListView.Selected.Data) is TBoard then begin
4757                  if TBoard(ListView.Selected.Data).Multiplicity = 0 then                  if TBoard(ListView.Selected.Data).Multiplicity = 0 then
4758                          SelectTreeNode(ListView.Selected.Data, True)                          SelectTreeNode(ListView.Selected.Data, True)
# Line 4818  begin Line 4772  begin
4772                                  end;                                  end;
4773                          end;                          end;
4774                  end;                  end;
 //              TreeView.Selected.Expanded := True;  
 //              TreeView.Selected.Item[ListView.Selected.Index].Selected := True;  
                 //TreeViewChange(nil, TreeView.Selected);  
4775          end else if TObject(ListView.Selected.Data) is TThreadItem then begin          end else if TObject(ListView.Selected.Data) is TThreadItem then begin
4776                  //if TObject(ListView.Selected.Data) is TThreadItem then begin                  Application.ProcessMessages;
4777                          Application.ProcessMessages;                  ThreadItem := TThreadItem(ListView.Selected.Data);
4778                          ThreadItem := TThreadItem(ListView.Selected.Data);                  DownloadContent(ThreadItem, shiftDown);
4779                          DownloadContent(ThreadItem, shiftDown);  
                 //end;  
                   
4780                  if GikoSys.Setting.BrowserAutoMaximize = gbmDoubleClick then begin                  if GikoSys.Setting.BrowserAutoMaximize = gbmDoubleClick then begin
4781                          if GikoSys.Setting.ListOrientation = gloHorizontal then begin                          if GikoSys.Setting.ListOrientation = gloHorizontal then begin
4782                                  if GikoSys.Setting.ListWidthState = glsMin then begin                                  if GikoSys.Setting.ListWidthState = glsMin then begin
 //                                      BrowserMaxAndFocusAction.Execute;  
4783                                          BrowserMaxAction.Execute;                                          BrowserMaxAction.Execute;
4784                                          SetFocusForBrowserAction.Execute;                                          SetFocusForBrowserAction.Execute;
4785                                  end;                                  end;
4786                          end else begin                          end else begin
4787                                  if GikoSys.Setting.ListHeightState = glsMin then begin                                  if GikoSys.Setting.ListHeightState = glsMin then begin
 //                                      BrowserMaxAndFocusAction.Execute;  
4788                                          BrowserMaxAction.Execute;                                          BrowserMaxAction.Execute;
4789                                          SetFocusForBrowserAction.Execute;                                          SetFocusForBrowserAction.Execute;
4790                                  end;                                  end;
# Line 4852  var Line 4799  var
4799          nm: OleVariant;          nm: OleVariant;
4800          activeBrower :TWebBrowser;          activeBrower :TWebBrowser;
4801  begin  begin
4802  //      OleVariant(Browser.Document).parentWindow.location.hash := AName;          //
   
4803          while (BrowserRecord.Browser.ReadyState <> READYSTATE_COMPLETE) and          while (BrowserRecord.Browser.ReadyState <> READYSTATE_COMPLETE) and
4804                                  (BrowserRecord.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin                                  (BrowserRecord.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
4805          Sleep(1);                  Sleep(1);
4806                  Application.ProcessMessages;                  Application.ProcessMessages;
4807          end;          end;
4808    
# Line 4885  var Line 4831  var
4831          nm: OleVariant;          nm: OleVariant;
4832          activeBrower :TWebBrowser;          activeBrower :TWebBrowser;
4833  begin  begin
 //      OleVariant(Browser.Document).parentWindow.location.hash := AName;  
         {  
         while (Browser.ReadyState <> READYSTATE_COMPLETE) and  
                                 (Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin  
                 Application.ProcessMessages;  
         end;  
         }  
4834          // Access Violation が起きる事があるので今後要チェック          // Access Violation が起きる事があるので今後要チェック
4835          if(BrowserTab.Tabs.Count > 0) and (BrowserTab.TabIndex >= 0) then begin          if(BrowserTab.Tabs.Count > 0) and (BrowserTab.TabIndex >= 0) then begin
4836                  activeBrower := FActiveContent.Browser;                  activeBrower := FActiveContent.Browser;
# Line 4929  end; Line 4868  end;
4868    
4869  procedure TGikoForm.SelectListItem(List: TList);  procedure TGikoForm.SelectListItem(List: TList);
4870  var  var
 //      TmpTreeNode: TTreeNode;  
4871          TmpListItem: TListItem;          TmpListItem: TListItem;
4872  begin  begin
4873          List.Clear;          List.Clear;
4874            List.Capacity := 0;
4875          TmpListItem := ListView.Selected;          TmpListItem := ListView.Selected;
4876          while TmpListItem <> nil do begin          while TmpListItem <> nil do begin
4877                  List.Add(TmpListItem.Data);                  List.Add(TmpListItem.Data);
4878                  TmpListItem := ListView.GetNextItem(TmpListItem, sdAll, [isSelected]);                  TmpListItem := ListView.GetNextItem(TmpListItem, sdAll, [isSelected]);
4879          end;          end;
4880        
4881  end;  end;
4882    
4883  procedure TGikoForm.ExitActionExecute(Sender: TObject);  procedure TGikoForm.ExitActionExecute(Sender: TObject);
# Line 4960  begin Line 4899  begin
4899                  Exit;                  Exit;
4900          GikoSys.Setting.StdToolBarVisible := StdToolBarVisibleAction.Checked;          GikoSys.Setting.StdToolBarVisible := StdToolBarVisibleAction.Checked;
4901          CoolBand.Visible := GikoSys.Setting.StdToolBarVisible;          CoolBand.Visible := GikoSys.Setting.StdToolBarVisible;
 //      StdToolBar.Visible := StdToolBarVisibleAction.Checked;  
 //      AnimePanel.Visible := StdToolBar.Visible or ListToolBar.Visible;  
   
         //StdToolBarVisibleAction.Checked := GikoSys.Setting.StdToolBarVisible;  
4902          StdToolBarVisiblePMenu.Checked := GikoSys.Setting.StdToolBarVisible;          StdToolBarVisiblePMenu.Checked := GikoSys.Setting.StdToolBarVisible;
4903  end;  end;
4904    
# Line 4976  begin Line 4911  begin
4911                  Exit;                  Exit;
4912          GikoSys.Setting.AddressBarVisible := AddressBarVisibleAction.Checked;          GikoSys.Setting.AddressBarVisible := AddressBarVisibleAction.Checked;
4913          CoolBand.Visible := GikoSys.Setting.AddressBarVisible;          CoolBand.Visible := GikoSys.Setting.AddressBarVisible;
         //AddressBarVisibleAction.Checked := GikoSys.Setting.AddressBarVisible;  
4914          AddressToolBarVisiblePMenu.Checked := GikoSys.Setting.AddressBarVisible;          AddressToolBarVisiblePMenu.Checked := GikoSys.Setting.AddressBarVisible;
4915  end;  end;
4916    
# Line 4989  begin Line 4923  begin
4923                  Exit;                  Exit;
4924          GikoSys.Setting.LinkBarVisible := LinkBarVisibleAction.Checked;          GikoSys.Setting.LinkBarVisible := LinkBarVisibleAction.Checked;
4925          CoolBand.Visible := GikoSys.Setting.LinkBarVisible;          CoolBand.Visible := GikoSys.Setting.LinkBarVisible;
4926                                  //LinkBarVisibleAction.Checked := GikoSys.Setting.LinkBarVisible;          LinkToolBarVisiblePMenu.Checked := GikoSys.Setting.LinkBarVisible;
                                 LinkToolBarVisiblePMenu.Checked := GikoSys.Setting.LinkBarVisible;  
4927  end;  end;
4928    
4929  procedure TGikoForm.ListToolBarVisibleActionExecute(Sender: TObject);  procedure TGikoForm.ListToolBarVisibleActionExecute(Sender: TObject);
# Line 5001  begin Line 4934  begin
4934          if CoolBand = nil then          if CoolBand = nil then
4935                  Exit;                  Exit;
4936          CoolBand.Visible := ListToolBarVisibleAction.Checked;          CoolBand.Visible := ListToolBarVisibleAction.Checked;
 //      ListToolBar.Visible := ListToolBarVisibleAction.Checked;  
 //      AnimePanel.Visible := StdToolBar.Visible or ListToolBar.Visible;  
4937          GikoSys.Setting.ListToolBarVisible := ListToolBarVisibleAction.Checked;          GikoSys.Setting.ListToolBarVisible := ListToolBarVisibleAction.Checked;
4938    
4939  end;  end;
4940    
4941  procedure TGikoForm.ListNameBarVisibleActionExecute(Sender: TObject);  procedure TGikoForm.ListNameBarVisibleActionExecute(Sender: TObject);
# Line 5025  begin Line 4957  begin
4957          if CoolBand = nil then          if CoolBand = nil then
4958                  Exit;                  Exit;
4959          CoolBand.Visible := BrowserToolBarVisibleAction.Checked;          CoolBand.Visible := BrowserToolBarVisibleAction.Checked;
 //      BrowserToolBar.Visible := BrowserToolBarVisibleAction.Checked;  
4960          GikoSys.Setting.BrowserToolBarVisible := BrowserToolBarVisibleAction.Checked;          GikoSys.Setting.BrowserToolBarVisible := BrowserToolBarVisibleAction.Checked;
4961  end;  end;
4962    
# Line 5108  begin Line 5039  begin
5039                  FSearchDialog.Show;                  FSearchDialog.Show;
5040          except          except
5041          end;          end;
5042            
5043  end;  end;
5044    
5045  procedure TGikoForm.OptionActionExecute(Sender: TObject);  procedure TGikoForm.OptionActionExecute(Sender: TObject);
# Line 5194  begin Line 5125  begin
5125                  // SelectComboBox の履歴を更新しておく                  // SelectComboBox の履歴を更新しておく
5126                  ModifySelectList;                  ModifySelectList;
5127                  // SelectComboBox の値をクリア                  // SelectComboBox の値をクリア
5128                  if SelectComboBox.Parent <> nil then begin                  if SelectComboBoxPanel.Visible then begin
5129                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;
5130                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
5131                          ListView.SetFocus;                          ListView.SetFocus;
# Line 5213  begin Line 5144  begin
5144                  // SelectComboBox の履歴を更新しておく                  // SelectComboBox の履歴を更新しておく
5145                  ModifySelectList;                  ModifySelectList;
5146                  // SelectComboBox の値をクリア                  // SelectComboBox の値をクリア
5147                  if SelectComboBox.Parent <> nil then begin                  if SelectComboBoxPanel.Visible  then begin
5148                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;
5149                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
5150                          ListView.SetFocus;                          ListView.SetFocus;
# Line 5233  begin Line 5164  begin
5164                  // SelectComboBox の履歴を更新しておく                  // SelectComboBox の履歴を更新しておく
5165                  ModifySelectList;                  ModifySelectList;
5166                  // SelectComboBox の値をクリア                  // SelectComboBox の値をクリア
5167                  if SelectComboBox.Parent <> nil then begin                  if SelectComboBoxPanel.Visible then begin
5168                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;
5169                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
5170                          ListView.SetFocus;                          ListView.SetFocus;
# Line 5248  var Line 5179  var
5179          Dlg: TListSelectDialog;          Dlg: TListSelectDialog;
5180  begin  begin
5181          try          try
5182                  if SelectComboBox.Parent <> nil then begin                  if SelectComboBoxPanel.Visible then begin
5183                          if SelectComboBox.Left + SelectComboBox.Width < ListToolBar.Width then begin                          if SelectComboBoxPanel.Left + SelectComboBoxPanel.Width < ListToolBar.Width then begin
5184                                  // SelectComboBox がある場合はフォーカスを移す                                  // SelectComboBox がある場合はフォーカスを移す
5185                                  if GikoSys.Setting.ListOrientation = gloHorizontal then begin                                  if GikoSys.Setting.ListOrientation = gloHorizontal then begin
5186                                          if GikoSys.Setting.ListWidthState = glsMax then                                          if GikoSys.Setting.ListWidthState = glsMax then
# Line 5659  begin Line 5590  begin
5590                  List.Free;                  List.Free;
5591          end;          end;
5592  end;  end;
5593    //ActiveListがTCategoyでスレ一覧で1つ以上選択かActiveListがTBoardで有効な
5594    //Actionで共通
5595  procedure TGikoForm.SelectListReloadActionUpdate(Sender: TObject);  procedure TGikoForm.SelectListReloadActionUpdate(Sender: TObject);
5596  begin  begin
5597          if (GetActiveList is TCategory) and (ListView.SelCount > 0) then  {$IFDEF ACTCHK}
5598                  SelectListReloadAction.Enabled := True          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
5599          else if GetActiveList is TBoard then          if (Sender <> nil) and (Sender is TAction) then begin
5600                  SelectListReloadAction.Enabled := True  {$ENDIF}
5601          else                  if (GetActiveList is TCategory) and (ListView.SelCount > 0) then
5602                  SelectListReloadAction.Enabled := False;                          TAction(Sender).Enabled := True
5603                    else if GetActiveList is TBoard then
5604                            TAction(Sender).Enabled := True
5605                    else
5606                            TAction(Sender).Enabled := False;
5607    {$IFDEF ACTCHK}
5608            end;
5609    {$ENDIF}
5610  end;  end;
5611    //ActiveListがTBoardでスレ一覧で1つ以上選択していると有効になるActionで共通
5612  procedure TGikoForm.SelectThreadReloadActionUpdate(Sender: TObject);  procedure TGikoForm.SelectThreadReloadActionUpdate(Sender: TObject);
5613  begin  begin
5614          if (GetActiveList is TBoard) and (ListView.SelCount > 0) then  {$IFDEF ACTCHK}
5615                  SelectThreadReloadAction.Enabled := True          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
5616          else          if (Sender <> nil) and (Sender is TAction) then begin
5617                  SelectThreadReloadAction.Enabled := False;  {$ENDIF}
5618  end;                  TAction(Sender).Enabled := (GetActiveList is TBoard) and (ListView.SelCount > 0);
5619    {$IFDEF ACTCHK}
5620  procedure TGikoForm.AllItemActionUpdate(Sender: TObject);          end;
5621  begin  {$ENDIF}
         AllItemAction.Enabled := (GetActiveList is TBoard);  
 end;  
   
 procedure TGikoForm.LogItemActionUpdate(Sender: TObject);  
 begin  
         LogItemAction.Enabled := (GetActiveList is TBoard);  
 end;  
   
 procedure TGikoForm.NewItemActionUpdate(Sender: TObject);  
 begin  
         NewItemAction.Enabled := (GetActiveList is TBoard);  
 end;  
   
 procedure TGikoForm.SelectItemActionUpdate(Sender: TObject);  
 begin  
         SelectItemAction.Enabled := (GetActiveList is TBoard);  
5622  end;  end;
5623    
5624  procedure TGikoForm.UpFolderActionUpdate(Sender: TObject);  procedure TGikoForm.UpFolderActionUpdate(Sender: TObject);
# Line 5703  begin Line 5626  begin
5626          UpFolderAction.Enabled := not (GetActiveList is TBBS);          UpFolderAction.Enabled := not (GetActiveList is TBBS);
5627  end;  end;
5628    
 procedure TGikoForm.ThreadEditorActionUpdate(Sender: TObject);  
 begin  
         ThreadEditorAction.Enabled := (GetActiveList is TBoard);  
 end;  
   
5629  procedure TGikoForm.FormResize(Sender: TObject);  procedure TGikoForm.FormResize(Sender: TObject);
5630  begin  begin
5631    
# Line 5732  begin Line 5650  begin
5650    
5651  end;  end;
5652    
 procedure TGikoForm.ScrollTopActionUpdate(Sender: TObject);  
 begin  
         ScrollTopAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
 procedure TGikoForm.ScrollLastActionUpdate(Sender: TObject);  
 begin  
         ScrollLastAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
 procedure TGikoForm.ScrollNewActionUpdate(Sender: TObject);  
 begin  
         ScrollNewAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
5653  procedure TGikoForm.ScrollKokoActionUpdate(Sender: TObject);  procedure TGikoForm.ScrollKokoActionUpdate(Sender: TObject);
5654  begin  begin
5655          ScrollKokoAction.Enabled := (GetActiveContent <> nil)          ScrollKokoAction.Enabled := (GetActiveContent <> nil)
# Line 5755  begin Line 5658  begin
5658    
5659  end;  end;
5660    
5661  procedure TGikoForm.EditorActionUpdate(Sender: TObject);  //ブラウザタブが1つ以上で有効になるActionで共通化
 begin  
         EditorAction.Enabled := GetActiveContent <> nil;  
 end;  
   
 procedure TGikoForm.IEActionUpdate(Sender: TObject);  
 begin  
         IEAction.Enabled := GetActiveContent <> nil;  
 end;  
   
 procedure TGikoForm.ShowThreadActionUpdate(Sender: TObject);  
 begin  
         ShowThreadAction.Enabled := GetActiveContent <> nil;  
 end;  
   
 procedure TGikoForm.ShowBoardActionUpdate(Sender: TObject);  
 begin  
         ShowBoardAction.Enabled := GetActiveContent <> nil;  
 end;  
   
 procedure TGikoForm.ItemReloadActionUpdate(Sender: TObject);  
 begin  
         ItemReloadAction.Enabled := GetActiveContent <> nil;  
 end;  
   
 procedure TGikoForm.URLCopyActionUpdate(Sender: TObject);  
 begin  
         URLCopyAction.Enabled := GetActiveContent <> nil;  
 end;  
   
 procedure TGikoForm.NameCopyActionUpdate(Sender: TObject);  
 begin  
         NameCopyAction.Enabled := GetActiveContent <> nil;  
 end;  
   
 procedure TGikoForm.NameURLCopyActionUpdate(Sender: TObject);  
 begin  
         NameURLCopyAction.Enabled := GetActiveContent <> nil;  
 end;  
   
 procedure TGikoForm.BrowserTabCloseActionUpdate(Sender: TObject);  
 begin  
         BrowserTabCloseAction.Enabled := (BrowserTab.Tabs.Count > 0);  
 end;  
   
 procedure TGikoForm.NotSelectTabCloseActionUpdate(Sender: TObject);  
 begin  
         NotSelectTabCloseAction.Enabled := (BrowserTab.Tabs.Count > 1);  
 end;  
   
5662  procedure TGikoForm.AllTabCloseActionUpdate(Sender: TObject);  procedure TGikoForm.AllTabCloseActionUpdate(Sender: TObject);
5663  begin  begin
5664          AllTabCloseAction.Enabled := (BrowserTab.Tabs.Count > 0);  {$IFDEF ACTCHK}
5665  end;          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
5666            if (Sender <> nil) and (Sender is TAction) then begin
5667  procedure TGikoForm.ActiveLogDeleteActionUpdate(Sender: TObject);  {$ENDIF}
5668  begin                  TAction(Sender).Enabled := (BrowserTab.Tabs.Count > 0);
5669          ActiveLogDeleteAction.Enabled := GetActiveContent <> nil;  {$IFDEF ACTCHK}
5670            end;
5671    {$ENDIF}
5672  end;  end;
5673    
5674  procedure TGikoForm.LogDeleteActionExecute(Sender: TObject);  procedure TGikoForm.LogDeleteActionExecute(Sender: TObject);
# Line 6013  end; Line 5869  end;
5869    
5870  function TGikoForm.Hook(var Message: TMessage): Boolean;  function TGikoForm.Hook(var Message: TMessage): Boolean;
5871  begin  begin
5872            //サブフォームがメインメニューを持たないときに、メインフォームの
5873            //メニューのショートカットキーがサブメニューから入力されるのを回避
5874          Result := False;          Result := False;
5875          case Message.Msg of          case Message.Msg of
5876          CM_APPKEYDOWN:          CM_APPKEYDOWN:
5877                  Result := True;                  Result := True;         //ショートカットキー無効
5878            CM_APPSYSCOMMAND:
5879                    Result := True;  // アクセラレータを無効にする
5880          end;          end;
5881  end;  end;
5882    
# Line 6141  begin Line 6001  begin
6001          end;          end;
6002  end;  end;
6003    
6004  procedure TGikoForm.BoardIEActionUpdate(Sender: TObject);  //ActiveListがTBoardかTCategoryでスレ一覧で1つ以上選択していると有効になるActionde共通
 begin  
         if GetActiveList is TBoard then  
                 BoardIEAction.Enabled := True  
         else  
                 BoardIEAction.Enabled := False;  
 end;  
   
 procedure TGikoForm.SelectItemURLCopyActionUpdate(Sender: TObject);  
 begin  
         if ((GetActiveList is TBoard) or (GetActiveList is TCategory))and (ListView.SelCount > 0) then  
                 SelectItemURLCopyAction.Enabled := True  
         else  
                 SelectItemURLCopyAction.Enabled := False;  
 end;  
   
6005  procedure TGikoForm.SelectItemNameCopyActionUpdate(Sender: TObject);  procedure TGikoForm.SelectItemNameCopyActionUpdate(Sender: TObject);
6006  begin  begin
6007          if ((GetActiveList is TBoard) or (GetActiveList is TCategory))and (ListView.SelCount > 0) then  {$IFDEF ACTCHK}
6008                  SelectItemNameCopyAction.Enabled := True          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
6009          else          if (Sender <> nil) and (Sender is TAction) then begin
6010                  SelectItemNameCopyAction.Enabled := False;  {$ENDIF}
6011  end;                  if ((GetActiveList is TBoard) or (GetActiveList is TCategory))and (ListView.SelCount > 0) then
6012                            TAction(Sender).Enabled := True
6013                    else
6014                            TAction(Sender).Enabled := False;
6015    {$IFDEF ACTCHK}
6016            end;
6017    {$ENDIF}
6018    
 procedure TGikoForm.SelectItemNameURLCopyActionUpdate(Sender: TObject);  
 begin  
         if ((GetActiveList is TBoard) or (GetActiveList is TCategory))and (ListView.SelCount > 0) then  
                 SelectItemNameURLCopyAction.Enabled := True  
         else  
                 SelectItemNameURLCopyAction.Enabled := False;  
6019  end;  end;
6020    
6021  procedure TGikoForm.AllSelectActionUpdate(Sender: TObject);  procedure TGikoForm.AllSelectActionUpdate(Sender: TObject);
6022  begin  begin
6023          if ListView.SelCount > 0 then          AllSelectAction.Enabled := ListView.SelCount > 0;
                 AllSelectAction.Enabled := True  
         else  
                 AllSelectAction.Enabled := False;  
 end;  
   
 procedure TGikoForm.LogDeleteActionUpdate(Sender: TObject);  
 begin  
         if (GetActiveList is TBoard) and (ListView.SelCount > 0) then  
                 LogDeleteAction.Enabled := True  
         else  
                 LogDeleteAction.Enabled := False;  
6024  end;  end;
6025    
6026  procedure TGikoForm.BrowserTabCloseActionExecute(Sender: TObject);  procedure TGikoForm.BrowserTabCloseActionExecute(Sender: TObject);
# Line 6783  begin Line 6617  begin
6617                                  FEvent.OnContextMenu := OnDocumentContextMenu;                                  FEvent.OnContextMenu := OnDocumentContextMenu;
6618                                  FEvent.OnClick := WebBrowserClick;  //追加したOnClickイベント                                  FEvent.OnClick := WebBrowserClick;  //追加したOnClickイベント
6619                          end;                          end;
6620                            
6621                  end;                  end;
6622    
6623                  if (BrowserRecord <> nil) and                  if (BrowserRecord <> nil) and
# Line 6880  procedure TGikoForm.SelectNewRoundNameEx Line 6715  procedure TGikoForm.SelectNewRoundNameEx
6715  var  var
6716          s: string;          s: string;
6717          Dlg: TRoundNameDialog;          Dlg: TRoundNameDialog;
6718          cnt: Integer;                  cnt: Integer;
6719    
6720  begin  begin
6721          //登録上限チェック          //呼び出し元が、TActionでListViewに選択がいなければ、EXITする
6722          cnt := RoundList.Count[grtBoard];          if (Sender is TAction) and (ListView.Selected = nil) then
6723          cnt := cnt + RoundList.Count[grtItem];                  Exit;
6724          if cnt > 500 then begin  
6725                  MsgBox(Handle, '巡回は500以上登録できません', 'エラー', MB_OK or MB_ICONSTOP);          //登録上限チェック
6726                  Exit;          cnt := RoundList.Count[grtBoard];
6727          end;          cnt := cnt + RoundList.Count[grtItem];
6728            if cnt > 500 then begin
6729                            MsgBox(Handle, '巡回は500以上登録できません', 'エラー', MB_OK or MB_ICONSTOP);
6730                            Exit;
6731            end;
6732    
6733          Dlg := TRoundNameDialog.Create(Self);          Dlg := TRoundNameDialog.Create(Self);
6734          try          try
6735                  Dlg.ShowModal;                  Dlg.ShowModal;
6736                  if Dlg.ModalResult <> mrCancel then begin                  if Dlg.ModalResult <> mrCancel then begin
6737                          s := Trim(Dlg.RoundNameEdit.Text);                          s := Trim(Dlg.RoundNameEdit.Text);
6738                          //RoundList.RoundNameList.Add(s);                          if (Sender is TMenuItem) then begin
6739                          SetSelectItemRound(True, s, TMenuItem(Sender).Parent.Name);                                  SetSelectItemRound(True, s, TMenuItem(Sender).Parent.Name);
6740              ListView.Refresh;                          end else if (Sender is TAction) then begin
6741                                    if (ListView.Selected <> nil) then begin
6742                                            if (TObject(ListView.Selected.Data) is TThreadItem) then begin
6743                                                    SetSelectItemRound(True, s,
6744                                                            TThreadItem(ListView.Selected.Data).Title);
6745                                            end else if (TObject(ListView.Selected.Data) is TBoard) then begin
6746                                                    SetSelectItemRound(True, s,
6747                                                            TBoard(ListView.Selected.Data).Title);
6748                                            end;
6749                                    end;
6750                            end;
6751                            ListView.Refresh;
6752                  end;                  end;
6753          finally          finally
6754                  Dlg.Free;                  Dlg.Free;
# Line 6907  end; Line 6757  end;
6757  procedure TGikoForm.SetSelectItemRound(RoundFlag: Boolean; RoundName: string; ParentName: string);  procedure TGikoForm.SetSelectItemRound(RoundFlag: Boolean; RoundName: string; ParentName: string);
6758  var  var
6759          threadItem : TThreadItem;          threadItem : TThreadItem;
6760  //      i: Integer;          i: Integer;
6761  begin  begin
6762          if ParentName <> 'dummy1' then begin          if ParentName <> 'dummy1' then begin
6763                  SetSelectItemRound(RoundFlag, RoundName);                  SetSelectItemRound(RoundFlag, RoundName);
# Line 6915  begin Line 6765  begin
6765                  threadItem := GetActiveContent;                  threadItem := GetActiveContent;
6766                  if threadItem <> nil then begin                  if threadItem <> nil then begin
6767                          threadItem.RoundName := RoundName;                          threadItem.RoundName := RoundName;
6768                          RoundList.RoundNameList.Add(RoundName);                          if RoundFlag then
6769                          //RoundList.RoundNameList.Find(RoundName, i);                                  RoundList.RoundNameList.Add(RoundName);
                         //threadItem.RoundName := PChar(RoundList.RoundNameList[i]);  
6770                          threadItem.Round := RoundFlag;                          threadItem.Round := RoundFlag;
6771                  end;                  end;
6772          end;          end;
# Line 6934  begin Line 6783  begin
6783                  for i := 0 to List.Count - 1 do begin                  for i := 0 to List.Count - 1 do begin
6784                          if TObject(List[i]) is TBoard then begin                          if TObject(List[i]) is TBoard then begin
6785                                  TBoard(List[i]).RoundName := RoundName;                                  TBoard(List[i]).RoundName := RoundName;
6786                                  RoundList.RoundNameList.Add(RoundName);                                  if RoundFlag then
6787                                  //RoundList.RoundNameList.Find(RoundName, idx);                                          RoundList.RoundNameList.Add(RoundName);
                                 //TBoard(List[i]).RoundName := PChar(RoundList.RoundNameList[idx]);  
6788                                  TBoard(List[i]).Round := RoundFlag;                                  TBoard(List[i]).Round := RoundFlag;
6789                          end else if TObject(List[i]) is TThreadItem then begin                          end else if TObject(List[i]) is TThreadItem then begin
6790                                  if TThreadItem(List[i]).IsLogFile then begin                                  if TThreadItem(List[i]).IsLogFile then begin
6791                                          TThreadItem(List[i]).RoundName := RoundName;                                          TThreadItem(List[i]).RoundName := RoundName;
6792                                          RoundList.RoundNameList.Add(RoundName);                                          if RoundFlag then
6793                                          //RoundList.RoundNameList.Find(RoundName, idx);                                                  RoundList.RoundNameList.Add(RoundName);
                                         //TThreadItem(List[i]).RoundName := PChar(RoundList.RoundNameList[idx]);  
6794                                          TThreadItem(List[i]).Round := RoundFlag;                                          TThreadItem(List[i]).Round := RoundFlag;
6795                                  end;                                  end;
6796                          end;                          end;
# Line 6954  begin Line 6801  begin
6801  end;  end;
6802    
6803  procedure TGikoForm.SelectDeleteRoundExecute(Sender: TObject);  procedure TGikoForm.SelectDeleteRoundExecute(Sender: TObject);
6804    var
6805            s : String;
6806  begin  begin
6807          SetSelectItemRound(False, '', TMenuItem(Sender).Parent.Name);          if (Sender is TMenuItem) then begin
6808                    try
6809                            SetSelectItemRound(False, '', TMenuItem(Sender).Parent.Name);
6810                    except
6811                    end;
6812            end else if (Sender is TAction) then begin
6813                    try
6814                            if ListView.Selected <> nil then begin
6815                                    if (TObject(ListView.Selected.Data) is TThreadItem) then begin
6816                                            s := TThreadItem(ListView.Selected.Data).Title;
6817                                    end else if (TObject(ListView.Selected.Data) is TBoard) then begin
6818                                            s := TBoard(ListView.Selected.Data).Title;
6819                                    end;
6820                                    SetSelectItemRound(False, '', s);
6821    
6822                            end;
6823                    except
6824                    end;
6825            end;
6826          ListView.Refresh;          ListView.Refresh;
6827  end;  end;
6828    
# Line 7331  begin Line 7198  begin
7198          end;          end;
7199  end;  end;
7200    
7201  procedure TGikoForm.LeftmostTabSelectActionUpdate(Sender: TObject);  //ブラウザタブが1つ以上で左端でないActionで共通
 begin  
         LeftmostTabSelectAction.Enabled := (BrowserTab.TabIndex <> 0) and (BrowserTab.Tabs.Count > 0);  
 end;  
   
7202  procedure TGikoForm.LeftTabSelectActionUpdate(Sender: TObject);  procedure TGikoForm.LeftTabSelectActionUpdate(Sender: TObject);
7203  begin  begin
7204          LeftTabSelectAction.Enabled := (BrowserTab.TabIndex <> 0) and (BrowserTab.Tabs.Count > 0);  {$IFDEF ACTCHK}
7205            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
7206            if (Sender <> nil) and (Sender is TAction) then begin
7207    {$ENDIF}
7208                    TAction(Sender).Enabled := (BrowserTab.Tabs.Count > 0) and (BrowserTab.TabIndex <> 0);
7209    {$IFDEF ACTCHK}
7210            end;
7211    {$ENDIF}
7212  end;  end;
7213    //ブラウザタブが1つ以上で右端でないActionで共通
7214  procedure TGikoForm.RightTabSelectActionUpdate(Sender: TObject);  procedure TGikoForm.RightTabSelectActionUpdate(Sender: TObject);
7215  begin  begin
7216          RightTabSelectAction.Enabled := (BrowserTab.TabIndex <> BrowserTab.Tabs.Count - 1) and (BrowserTab.Tabs.Count > 0);  {$IFDEF ACTCHK}
7217  end;          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
7218            if (Sender <> nil) and (Sender is TAction) then begin
7219  procedure TGikoForm.RightmostTabSelectActionUpdate(Sender: TObject);  {$ENDIF}
7220  begin                  TAction(Sender).Enabled := (BrowserTab.Tabs.Count > 0) and (BrowserTab.TabIndex <> BrowserTab.Tabs.Count - 1);
7221          RightmostTabSelectAction.Enabled := (BrowserTab.TabIndex <> BrowserTab.Tabs.Count - 1) and (BrowserTab.Tabs.Count > 0);  {$IFDEF ACTCHK}
7222            end;
7223    {$ENDIF}
7224  end;  end;
7225    
7226  procedure TGikoForm.WMSettingChange(var Message: TWMWinIniChange);  procedure TGikoForm.WMSettingChange(var Message: TWMWinIniChange);
# Line 7537  begin Line 7409  begin
7409          end;          end;
7410  end;  end;
7411    
 procedure TGikoForm.FavoriteAddActionUpdate(Sender: TObject);  
 begin  
         FavoriteAddAction.Enabled := (GetActiveContent <> nil);  
 end;  
   
7412  procedure TGikoForm.BoardFavoriteAddActionExecute(Sender: TObject);  procedure TGikoForm.BoardFavoriteAddActionExecute(Sender: TObject);
7413  begin  begin
7414          if TObject(ListView.Selected.Data) is TBoard then          if TObject(ListView.Selected.Data) is TBoard then
# Line 7559  begin Line 7426  begin
7426                  ShowFavoriteAddDialog(TObject(ListView.Selected.Data));                  ShowFavoriteAddDialog(TObject(ListView.Selected.Data));
7427  end;  end;
7428    
 procedure TGikoForm.ThreadFavoriteAddActionUpdate(Sender: TObject);  
 begin  
         ThreadFavoriteAddAction.Enabled := (GetActiveList is TBoard) and (ListView.SelCount > 0);  
 end;  
   
7429  procedure TGikoForm.TreeSelectFavoriteAddActionExecute(Sender: TObject);  procedure TGikoForm.TreeSelectFavoriteAddActionExecute(Sender: TObject);
7430  begin  begin
7431          ShowFavoriteAddDialog(TObject(FClickNode.Data));          ShowFavoriteAddDialog(TObject(FClickNode.Data));
# Line 7906  var Line 7768  var
7768  //      KeyData: Integer;  //      KeyData: Integer;
7769  begin  begin
7770          Handled := False;          Handled := False;
7771          if AddressComboBox.Focused or SelectComboBox.Focused then begin          //アドレスもしくは絞り込みコンボボックスもしくはお気に入りが編集中は
7772            //ショートカットなどを無効にする
7773            if ((FavoriteTreeView.Visible) and (FavoriteTreeView.IsEditing)) then begin
7774                  if Msg.CharCode in [VK_BACK] then begin                  if Msg.CharCode in [VK_BACK] then begin
7775                          hComboEdit := GetFocus;                          hComboEdit := GetFocus;
7776                          if hComboEdit <> 0 then                          if hComboEdit <> 0 then
7777                                  SendMessage(hComboEdit, WM_CHAR, Msg.CharCode, Msg.KeyData);                                  SendMessage(hComboEdit, WM_CHAR, Msg.CharCode, Msg.KeyData);
7778  //                              SendMessage(hComboEdit, WM_CHAR, Msg.CharCode, $000E0001);                          Handled := True;
7779            //お気に入りはESCで脱出したいので、それも送る
7780                    end else if Msg.CharCode in [VK_INSERT, VK_DELETE, VK_HOME, VK_END, VK_PRIOR, VK_NEXT, VK_ESCAPE] then begin
7781                            hComboEdit := GetFocus;
7782                            if hComboEdit <> 0 then
7783                                    SendMessage(hComboEdit, WM_KEYDOWN, Msg.CharCode, Msg.KeyData);
7784                          Handled := True;                          Handled := True;
7785                  end;                  end;
7786                  if Msg.CharCode in [VK_INSERT, VK_DELETE, VK_HOME, VK_END, VK_PRIOR, VK_NEXT] then begin          end     else if (AddressComboBox.Focused) or (SelectComboBox.Focused) then begin
7787                    if Msg.CharCode in [VK_BACK] then begin
7788                            hComboEdit := GetFocus;
7789                            if hComboEdit <> 0 then
7790                                    SendMessage(hComboEdit, WM_CHAR, Msg.CharCode, Msg.KeyData);
7791                            Handled := True;
7792                    end else if Msg.CharCode in [VK_INSERT, VK_DELETE, VK_HOME, VK_END, VK_PRIOR, VK_NEXT] then begin
7793                          hComboEdit := GetFocus;                          hComboEdit := GetFocus;
7794                          if hComboEdit <> 0 then                          if hComboEdit <> 0 then
7795                                  SendMessage(hComboEdit, WM_KEYDOWN, Msg.CharCode, Msg.KeyData);                                  SendMessage(hComboEdit, WM_KEYDOWN, Msg.CharCode, Msg.KeyData);
# Line 8241  begin Line 8116  begin
8116                          else                          else
8117                                  Header := IntToStr(Line) + ' 名前: ' + Res.FName + ' [' + res.FMailTo + '] 投稿日: ' + Res.FDateTime;                                  Header := IntToStr(Line) + ' 名前: ' + Res.FName + ' [' + res.FMailTo + '] 投稿日: ' + Res.FDateTime;
8118    
8119                          Body := CustomStringReplace(Res.FBody, '<br> ', #10,true);                                                  Body := DeleteFontTag(Res.FBody);
8120                                                    Body := CustomStringReplace(Body, '<br> ', #10,true);
8121                          Body := CustomStringReplace(Body, '<br>', #10,true);                          Body := CustomStringReplace(Body, '<br>', #10,true);
8122                          Body := CustomStringReplace(Body, '</a>', '',true);                          Body := CustomStringReplace(Body, '</a>', '',true);
8123                          Body := GikoSys.DeleteLink(Body);                          Body := GikoSys.DeleteLink(Body);
# Line 8710  begin Line 8586  begin
8586          if ToolBar.Width < bw then begin          if ToolBar.Width < bw then begin
8587                  w := 0;                  w := 0;
8588                  for i := 0 to ToolBar.ButtonCount - 1 do begin                  for i := 0 to ToolBar.ButtonCount - 1 do begin
8589                          w := w + ToolBar.Buttons[i].Width;                          if ToolBar.Buttons[i].Visible then
8590                                    w := w + ToolBar.Buttons[i].Width;
8591                          if ToolBar.Width <= w then begin                          if ToolBar.Width <= w then begin
8592                                  if ToolBar.Buttons[i].Tag = 0 then begin                                  if ToolBar.Buttons[i].Tag = 0 then begin
8593                                          Item := TMenuItem.Create(Self);                                          Item := TMenuItem.Create(Self);
8594                                          if ToolBar.Buttons[i].Style = tbsSeparator then                                          if ToolBar.Buttons[i].Style = tbsSeparator then
8595                                                  Item.Caption := '-'                                                  Item.Caption := '-'
8596                                          else begin                                          else begin
8597                                                  Item.Caption := ToolBar.Buttons[i].Caption;                                                  //スレ絞込みComBoxのTPanelを排除する
8598                                                  Item.Action := ToolBar.Buttons[i].Action;                                                  if TObject(ToolBar.Buttons[i]) is TPanel then begin
8599                                                            Continue;
8600                                                    end else begin
8601                                                            Item.Caption := ToolBar.Buttons[i].Caption;
8602                                                            Item.Action := ToolBar.Buttons[i].Action;
8603                                                    end;
8604                                                  //Item.Visible := True;                                                  //Item.Visible := True;
8605                                          end;                                          end;
8606                                          ChevronPopupMenu.Items.Add(Item);                                          ChevronPopupMenu.Items.Add(Item);
# Line 8929  var Line 8811  var
8811          Dlg: TToolBarSettingDialog;          Dlg: TToolBarSettingDialog;
8812          i: Integer;          i: Integer;
8813          //Component: TComponent;          //Component: TComponent;
8814            ToolButton : TToolButton;
8815  begin  begin
8816          Dlg := TToolBarSettingDialog.Create(Self, ActionList);          Dlg := TToolBarSettingDialog.Create(Self, ActionList);
8817          try          try
# Line 8957  begin Line 8840  begin
8840                                  BrowserCoolBar.Bands[i].MinWidth := BrowserCoolBar.Bands[i].MinWidth - 1;                                  BrowserCoolBar.Bands[i].MinWidth := BrowserCoolBar.Bands[i].MinWidth - 1;
8841                          end;                          end;
8842    
                         SelectComboBox.Visible := False;  
                         SelectComboBoxSplitter.Visible := False;  
   
8843                          SaveToolBarSetting(StdToolBar);                          SaveToolBarSetting(StdToolBar);
8844                          SaveToolBarSetting(ListToolBar);                          SaveToolBarSetting(ListToolBar);
8845                          for i := ListToolBar.ControlCount - 1 downto 0 do                          //ListToolBarにいるかもしれない絞込みComboBoxを配置
8846                          begin                          SelectComboBoxPanel.Visible := False;
8847                                  if ListToolBar.Controls[ i ].Action = SelectItemAction then                          try
8848                                    for i := ListToolBar.ControlCount - 1 downto 0 do
8849                                  begin                                  begin
8850                                          // スレッド絞込の隣にセパレータがある場合は隠す                                          if ListToolBar.Controls[ i ].Action = SelectItemAction then
8851                                          if (i + 1) < ListToolBar.ControlCount then                                          begin
8852                                                  if ListToolBar.Controls[ i + 1 ] is TToolButton then                                                  SelectComboBoxPanel.Left := ListToolBar.Controls[ i ].Left;
8853                                                          if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then                                                  SelectComboBoxPanel.Width := GikoSys.Setting.SelectComboBoxWidth;
8854                                                                  ListToolBar.Controls[ i + 1 ].Visible := False;                                                  SelectComboBoxPanel.Parent := ListToolBar;
8855                                                    SelectComboBoxPanel.Visible := True;
8856                                          // スレッド絞込ボタンを隠す  
8857                                          ListToolBar.Controls[ i ].Visible := False;                                                  SelectComboBox.Left := 0;
8858                                          // スレッド絞込フィールドを挿入                                                  SelectComboBox.Top  := 0;
8859                                          SelectComboBox.Left := ListToolBar.Controls[ i ].Left;                                                  SelectComboBox.Height := SelectComboBoxPanel.ClientHeight;
8860                                          SelectComboBox.Width := GikoSys.Setting.SelectComboBoxWidth;                                                  SelectComboBox.Width := SelectComboBoxPanel.Width -
8861                                          SelectComboBox.Parent := ListToolBar;                                                                                                  SelectComboBoxSplitter.Width;
8862                                          SelectComboBox.Visible := True;  
8863                                          // スレッド絞込用独自セパレータを挿入  
8864                                          SelectComboBoxSplitter.Left := SelectComboBox.Left + SelectComboBox.Width;                                                  //一つ見えないボタンを突っ込む
8865                                          SelectComboBoxSplitter.Parent := ListToolBar;                                                  ToolButton := TToolButton(ListToolBar.FindComponent('SelectComboBoxDummy'));
8866                                          SelectComboBoxSplitter.Visible := True;                                                  if ToolButton <> nil then begin
8867                                          break;                                                          ToolButton.Parent := nil;
8868                                                    end else begin
8869                                                            ToolButton := TToolButton.Create(ListToolBar);
8870                                                            ToolButton.Name := 'SelectComboBoxDummy';
8871                                                    end;
8872    
8873                                                    ToolButton.Style := tbsSeparator;
8874                                                    ToolButton.Width := 0;
8875                                                    ToolButton.Left  := ListToolBar.Controls[ i ].Left;
8876                                                    ListToolBar.InsertControl(ToolButton);
8877                                                    ToolButton.Visible := False;
8878    
8879                                                    // スレッド絞込の隣にセパレータがある場合は隠す
8880                                                    if (i + 1) < ListToolBar.ControlCount then
8881                                                            if ListToolBar.Controls[ i + 1 ] is TToolButton then
8882                                                                    if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then
8883                                                                            ListToolBar.Controls[ i + 1 ].Visible := False;
8884    
8885    
8886                                                    // スレッド絞込ボタンを隠す
8887                                                    ListToolBar.Controls[ i ].Visible := False;
8888    
8889                                                    break;
8890                                            end;
8891                                  end;                                  end;
8892                            except
8893                          end;                          end;
8894                          ResetBandInfo( ListCoolBar, ListToolBar );                          ResetBandInfo( ListCoolBar, ListToolBar );
8895                          SaveToolBarSetting(BrowserToolBar);                          SaveToolBarSetting(BrowserToolBar);
# Line 9176  var Line 9081  var
9081  begin  begin
9082    
9083          try          try
9084                  if SelectComboBox.Parent = nil then                  if not SelectComboBoxPanel.Visible then
9085                          exit;                          exit;
9086    
9087                  if Length( SelectComboBox.Text ) > 0 then                  if Length( SelectComboBox.Text ) > 0 then
# Line 9231  begin Line 9136  begin
9136                                  end;                                  end;
9137    
9138                                  try                                  try
9139                                          if SelectComboBox.Parent <> nil then                                          //if SelectComboBox.Parent <> nil then
9140                                            if SelectComboBoxPanel.Visible then
9141                                                  SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );                                                  SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
9142                                  except                                  except
9143                                  end;                                  end;
# Line 9260  begin Line 9166  begin
9166    
9167  end;  end;
9168    
 procedure TGikoForm.SelectResActionUpdate(Sender: TObject);  
 begin  
         SelectResAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
9169  // 全てのレスを表示  // 全てのレスを表示
9170  procedure TGikoForm.AllResActionExecute(Sender: TObject);  procedure TGikoForm.AllResActionExecute(Sender: TObject);
9171  var  var
# Line 9294  begin Line 9195  begin
9195          end;          end;
9196  end;  end;
9197    
 procedure TGikoForm.AllResActionUpdate(Sender: TObject);  
 begin  
 //      AllResAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
9198  procedure TGikoForm.ReloadClick(Sender: TObject);  procedure TGikoForm.ReloadClick(Sender: TObject);
9199  begin  begin
9200          if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin          if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin
# Line 9347  var Line 9243  var
9243          pos                             : TPoint;          pos                             : TPoint;
9244          w                                       : Integer;          w                                       : Integer;
9245  begin  begin
9246          If (SelectComboBox.Parent <> nil) and (IsDraggingSelectComboBox) Then begin          If (SelectComboBoxPanel.Visible) and (IsDraggingSelectComboBox) Then begin
9247                  pos.X := X;                  pos.X := X;
9248                  pos.Y := Y;                  pos.Y := Y;
9249                  pos := SelectComboBoxSplitter.ClientToScreen( pos );                  pos := SelectComboBoxSplitter.ClientToScreen( pos );
9250                  w := SelectComboBox.Width + (pos.X - DraggingSelectComboBoxPosition.X);                  //w := SelectComboBox.Width + (pos.X - DraggingSelectComboBoxPosition.X);
9251                    w := SelectComboBoxPanel.Width + (pos.X - DraggingSelectComboBoxPosition.X);
9252    
9253                  If w <= 50 Then Begin                  If w <= 50 Then Begin
9254                          // 次の移動の基準が「過ぎてしまった位置」ではなく                          // 次の移動の基準が「過ぎてしまった位置」ではなく
# Line 9363  begin Line 9260  begin
9260                  End;                  End;
9261    
9262                  // チラつき軽減の為                  // チラつき軽減の為
9263                  If SelectComboBox.Width <> w Then Begin                  //If SelectComboBox.Width <> w Then Begin
9264                          SelectComboBox.Width := w;                  If SelectComboBoxPanel.Width <> w Then Begin
9265                            SelectComboBoxPanel.Width := w;
9266                            SelectComboBox.Width := SelectComboBoxPanel.Width - SelectComboBoxSplitter.Width;
9267                          GikoSys.Setting.SelectComboBoxWidth := w;                          GikoSys.Setting.SelectComboBoxWidth := w;
9268                          DraggingSelectComboBoxPosition := pos;                          DraggingSelectComboBoxPosition := pos;
9269    
# Line 9681  begin Line 9580  begin
9580                  VK_SPACE:                  VK_SPACE:
9581                          FavoriteTreeViewDblClick( Sender );                          FavoriteTreeViewDblClick( Sender );
9582                  end;                  end;
9583            end else begin
9584                    //編集中にESCを押したら、編集を終了して、元の文字列に戻す
9585                    if Key = VK_ESCAPE then begin
9586                            if (TTreeView(Sender).Selected <> nil) then begin
9587                                    TTreeView(Sender).Selected.Text := FOrigenCaption;
9588                            end;
9589                            TTreeView(Sender).Selected.Focused := False;
9590                    end;
9591          end;          end;
9592    
9593  end;  end;
# Line 10320  begin Line 10227  begin
10227    
10228  end;  end;
10229    
 procedure TGikoForm.UpBoardActionUpdate(Sender: TObject);  
 begin  
   
         UpBoardAction.Enabled := GetActiveContent <> nil;  
   
 end;  
   
10230  procedure TGikoForm.BrowserTabContextPopup(Sender: TObject;  procedure TGikoForm.BrowserTabContextPopup(Sender: TObject;
10231          MousePos: TPoint; var Handled: Boolean);          MousePos: TPoint; var Handled: Boolean);
10232  var  var
# Line 10772  begin Line 10672  begin
10672    
10673  end;  end;
10674    
 procedure TGikoForm.ResRangeActionUpdate(Sender: TObject);  
 begin  
 //      ResRangeAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
10675  function TGikoForm.WebBrowserClick(Sender: TObject): WordBool;  function TGikoForm.WebBrowserClick(Sender: TObject): WordBool;
10676  var  var
10677          p : TPoint;          p : TPoint;
# Line 10844  procedure TGikoForm.SetFocusForBrowserAc Line 10739  procedure TGikoForm.SetFocusForBrowserAc
10739  begin  begin
10740          FActiveContent.FBrowser.SetFocus;          FActiveContent.FBrowser.SetFocus;
10741  end;  end;
10742    //ブラウザがあって、NULLタブ用のなければ有効になるActionで共通
10743  procedure TGikoForm.SetFocusForBrowserActionUpdate(Sender: TObject);  procedure TGikoForm.SetFocusForBrowserActionUpdate(Sender: TObject);
10744  begin  begin
10745          if( FActiveContent <> nil) and (FActiveContent.Browser <> nil) and  {$IFDEF ACTCHK}
10746                  (FActiveContent.Browser <> BrowserNullTab.Browser) then          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
10747                  SetFocusForBrowserAction.Enabled := true          if (Sender <> nil) and (Sender is TAction) then begin
10748          else  {$ENDIF}
10749                  SetFocusForBrowserAction.Enabled := false;                  if( FActiveContent <> nil) and (FActiveContent.Browser <> nil) and
10750                            (FActiveContent.Browser <> BrowserNullTab.Browser) then
10751                            TAction(Sender).Enabled := true
10752                    else
10753                            TAction(Sender).Enabled := false;
10754    {$IFDEF ACTCHK}
10755            end;
10756    {$ENDIF}
10757  end;  end;
10758    
10759  procedure TGikoForm.SetFocusForThreadListActionExecute(Sender: TObject);  procedure TGikoForm.SetFocusForThreadListActionExecute(Sender: TObject);
 var  
         rct: TRect;  
10760  begin  begin
10761          if FActiveContent <> nil then          if FActiveContent <> nil then
10762                  WebBrowserClick(FActiveContent.Browser); //一回Browserに当てないと動かないときがある                  WebBrowserClick(FActiveContent.Browser); //一回Browserに当てないと動かないときがある
10763          ListView.SetFocus;          ListView.SetFocus;
10764    
10765          if( ListView.Items.Count > 0 ) and (ListView.ItemFocused = nil) then          if( ListView.Items.Count > 0 ) and (ListView.ItemFocused = nil) then
10766                  ListView.Items.Item[0].Selected := true //選択アイテムが無いときは先頭のを選択する                  ListView.Items.Item[0].Selected := true; //選択アイテムが無いときは先頭のを選択する
10767          else if ListView.Items.Count > 0 then begin  
10768                  ListView.Scroll(-ListView.ClientWidth, -ListView.ClientHeight);          //スクロールさせる
10769                  rct := ListView.ItemFocused.DisplayRect(drBounds);          if (ListView.ItemFocused <> nil) then begin
10770                  ListView.Scroll(0, 2 * rct.Top - rct.Bottom);                  ListView.ItemFocused.MakeVisible(False);
                 if ListView.ViewStyle <> vsReport then begin  
                         ListView.Scroll(rct.Left, 0);  
                 end;  
10771          end;          end;
10772  end;  end;
10773    
# Line 10899  begin Line 10797  begin
10797          SetFocusForBrowserAction.Execute;          SetFocusForBrowserAction.Execute;
10798  end;  end;
10799    
 procedure TGikoForm.BrowserMaxAndFocusActionUpdate(Sender: TObject);  
 begin  
         if( FActiveContent <> nil) and (FActiveContent.Browser <> nil) and  
                 (FActiveContent.Browser <> BrowserNullTab.Browser) then  
                 BrowserMaxAndFocusAction.Enabled := true  
         else  
                 BrowserMaxAndFocusAction.Enabled := false;  
 end;  
10800  //スレッド一覧を最大化してフォーカスを当てる  //スレッド一覧を最大化してフォーカスを当てる
10801  procedure TGikoForm.ThreadlistMaxAndFocusActionExecute(Sender: TObject);  procedure TGikoForm.ThreadlistMaxAndFocusActionExecute(Sender: TObject);
10802  begin  begin
# Line 10914  begin Line 10804  begin
10804          SetFocusForThreadListAction.Execute;          SetFocusForThreadListAction.Execute;
10805  end;  end;
10806    
 procedure TGikoForm.ListViewSelectItem(Sender: TObject; Item: TListItem;  
   Selected: Boolean);  
 begin  
   
         if not (GikoSys.Setting.BrowserTabVisible) and (Item <> nil) then  
                         if (TObject( Item.Data ) is TThreadItem) then begin  
                                 SelectTimer.Interval := GikoSys.Setting.SelectInterval;  
                         end else  
                                 SelectTimer.Interval := 0  
         else  
                 SelectTimer.Interval := 0;  
   
 end;  
   
10807  procedure TGikoForm.SelectTimerTimer(Sender: TObject);  procedure TGikoForm.SelectTimerTimer(Sender: TObject);
10808  begin  begin
10809            SelectTimer.Interval := 0;
10810          if not (ListView.Selected = nil) then          if not (ListView.Selected = nil) then
10811                  if( FActiveContent = nil) or                  if( FActiveContent = nil) or
10812                                  (GetActiveContent <> TThreadItem(ListView.Selected.Data) ) then begin                                  (GetActiveContent <> TThreadItem(ListView.Selected.Data) ) then begin
                         SelectTimer.Interval := 0;  
10813                          ListClick;                          ListClick;
10814                  end;                  end;
10815  end;  end;
# Line 10960  begin Line 10836  begin
10836                          for i := 0 to List.Count - 1 do begin                          for i := 0 to List.Count - 1 do begin
10837                                  if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin                                  if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
10838                                          FileSaveAs1.Dialog.FileName := TThreadItem(List[i]).FileName;                                          FileSaveAs1.Dialog.FileName := TThreadItem(List[i]).FileName;
10839                                          if FileSaveAs1.Execute then begin                                          if FileSaveAs1.Dialog.Execute then begin
10840                                                  //なぜかキャンセルでもこっちに入ってくる                                                  CopyFile(PChar(TThreadItem(List[i]).FilePath),
10841                                                  if ExtractFilePath(FileSaveAs1.Dialog.FileName) <> '' then begin                                                  PChar(FileSaveAs1.Dialog.FileName), true);
                                                         CopyFile(PChar(TThreadItem(List[i]).FilePath),  
                                                                 PChar(FileSaveAs1.Dialog.FileName), true);  
                                                 end;  
10842                                          end;                                          end;
10843                                  end;                                  end;
10844                          end;                          end;
# Line 11001  begin Line 10874  begin
10874                          for i := 0 to List.Count - 1 do begin                          for i := 0 to List.Count - 1 do begin
10875                                  if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin                                  if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
10876                                          FileSaveAs1.Dialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';                                          FileSaveAs1.Dialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';
10877                                          if FileSaveAs1.Execute then begin                                          if FileSaveAs1.Dialog.Execute then begin
10878                                                  //なぜかキャンセルでもこっちに入ってくる                                                  html := TStringList.Create;
10879                                                  if ExtractFilePath(FileSaveAs1.Dialog.FileName) <> '' then begin                                                  title := TThreadItem(List[i]).Title;
10880                                                          html := TStringList.Create;                                                  try
10881                                                          title := TThreadItem(List[i]).Title;                                                          GikoSys.CreateHTML3(html, TThreadItem(List[i]), title);
10882                                                          try                                                          html.SaveToFile(FileSaveAs1.Dialog.FileName);
10883                                                                  GikoSys.CreateHTML3(html, TThreadItem(List[i]), title);                                                          SkinorCSSFilesCopy(ExtractFilePath(FileSaveAs1.Dialog.FileName));
10884                                                                  html.SaveToFile(FileSaveAs1.Dialog.FileName);                                                  finally
10885                                                                  SkinorCSSFilesCopy(ExtractFilePath(FileSaveAs1.Dialog.FileName));                                                          html.Free;
                                                         finally  
                                                                 html.Free;  
                                                         end;  
10886                                                  end;                                                  end;
10887                                          end;                                          end;
10888                                  end;                                  end;
# Line 11157  begin Line 11027  begin
11027    
11028  end;  end;
11029    
 procedure TGikoForm.LogFolderOpenActionUpdate(Sender: TObject);  
 begin  
         if (GetActiveList is TCategory) and (ListView.SelCount > 0) then  
                 LogFolderOpenAction.Enabled := True  
         else if GetActiveList is TBoard then  
                 LogFolderOpenAction.Enabled := True  
         else  
                 LogFolderOpenAction.Enabled := False;  
 end;  
   
11030  function TGikoForm.GetTabURLs(AStringList: TStringList) : Boolean;  function TGikoForm.GetTabURLs(AStringList: TStringList) : Boolean;
11031  var  var
11032    rec : TBrowserRecord;    rec : TBrowserRecord;
# Line 11242  var Line 11102  var
11102          GikoTab                 : TGikoTabAppend;          GikoTab                 : TGikoTabAppend;
11103          fileName                : string;          fileName                : string;
11104  begin  begin
11105            if FStartUp then begin
11106                    //起動時にタブ自動復元を入れていると、空ページ用のBrowserの
11107                    //描画が終わっていなくて、クリックイベントの設定等に突入するので
11108                    //ここで終わらせておく
11109                    while (Browser.ReadyState <> READYSTATE_COMPLETE) and
11110                                    (Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
11111                            Application.ProcessMessages;
11112                    end;
11113            end;
11114    
11115          fileName := ExtractFilePath(Application.ExeName) + 'tab.sav';          fileName := ExtractFilePath(Application.ExeName) + 'tab.sav';
11116          URLs := TStringList.Create();          URLs := TStringList.Create();
# Line 11386  begin Line 11255  begin
11255    
11256  end;  end;
11257    
 procedure TGikoForm.BrowsBoradHeadActionUpdate(Sender: TObject);  
 begin  
         if (GetActiveList is TCategory) and (ListView.SelCount > 0) then  
                 BrowsBoradHeadAction.Enabled := True  
         else if GetActiveList is TBoard then  
                 BrowsBoradHeadAction.Enabled := True  
         else  
                 BrowsBoradHeadAction.Enabled := False;  
   
 end;  
11258  //NGワードファイルを編集するために開く  //NGワードファイルを編集するために開く
11259  procedure TGikoForm.EditNGActionExecute(Sender: TObject);  procedure TGikoForm.EditNGActionExecute(Sender: TObject);
11260  begin  begin
11261          GikoSys.FAbon.EditNGwords;          GikoSys.FAbon.EditNGwords;
11262  end;  end;
11263    
 procedure TGikoForm.ThreadRangeActionUpdate(Sender: TObject);  
 begin  
         ThreadRangeAction.Enabled := (GetActiveList is TBoard);  
 end;  
   
11264  procedure TGikoForm.ThreadRangeActionExecute(Sender: TObject);  procedure TGikoForm.ThreadRangeActionExecute(Sender: TObject);
11265  begin  begin
11266          case GikoSys.Setting.ThreadRange of          case GikoSys.Setting.ThreadRange of
# Line 11626  begin Line 11480  begin
11480          end;          end;
11481  end;  end;
11482    
 procedure TGikoForm.JumpToNumOfResActionUpdate(Sender: TObject);  
 begin  
         JumpToNumOfResAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
11483  procedure TGikoForm.FavoriteTreeViewCollapseActionExecute(Sender: TObject);  procedure TGikoForm.FavoriteTreeViewCollapseActionExecute(Sender: TObject);
11484  var  var
11485          node    : TTreeNode;          node    : TTreeNode;
# Line 11666  var Line 11515  var
11515          s: string;          s: string;
11516          Action: TAction;          Action: TAction;
11517          ActStr: string;          ActStr: string;
         Comp : TComponent;  
11518          P : TPoint;          P : TPoint;
11519  begin  begin
11520      //マウス位置の取得      //マウス位置の取得
11521      GetCursorPos(P);          GetCursorPos(P);
11522      //コンポーネント名取得      //コンポーネント名取得
11523      //ギコナビのフォーム外、もしくは、コンテキストメニュー上だとnilが返る          s := MouseGesture.GetGestureStr;
11524      Comp := FindDragTarget(P, True);          ActStr := '';
11525      if (Comp <> nil) then begin          Action := GikoSys.Setting.Gestures.GetGestureAction(s);
11526                  s := MouseGesture.GetGestureStr;          if Action <> nil then
11527                  ActStr := '';                  ActStr := '(' + Action.Caption + ')';
11528                  Action := GikoSys.Setting.Gestures.GetGestureAction(s);          s := 'ジェスチャー: ' + s + ActStr;
11529                  if Action <> nil then          StatusBar.Panels[1].Text := s;
                         ActStr := '(' + Action.Caption + ')';  
                 s := 'ジェスチャー: ' + s + ActStr;  
                 StatusBar.Panels[1].Text := s;  
     end;  
11530  end;  end;
11531    
11532  procedure TGikoForm.OnGestureEnd(Sender: TObject);  procedure TGikoForm.OnGestureEnd(Sender: TObject);
# Line 11711  procedure TGikoForm.ListViewCustomDrawIt Line 11555  procedure TGikoForm.ListViewCustomDrawIt
11555  var  var
11556          ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
11557  begin  begin
11558      DefaultDraw := true;          DefaultDraw := true;
11559          if TObject(Item.Data) is TThreadItem then begin          if TObject(Item.Data) is TThreadItem then begin
11560                  ThreadItem := TThreadItem(Item.Data);                  ThreadItem := TThreadItem(Item.Data);
11561                  if ( FUseOddResOddColor ) and ( ThreadItem.Count <> 0 ) and ( ThreadItem.AllResCount <> ThreadItem.Count) then begin                  if ( FUseOddResOddColor ) and ( ThreadItem.Count <> 0 ) and ( ThreadItem.AllResCount <> ThreadItem.Count) then begin
11562                          ListView.Canvas.Brush.Color := FOddColor;                          ListView.Canvas.Brush.Color := FOddColor;
11563                            //選択されているけど、フォーカスがないと、グレイになるので、太字に変更
11564                            if (GikoSys.Setting.UnFocusedBold) and
11565                             (Item.Selected) and (not ListView.Focused) then begin
11566                                    ListView.Canvas.Font.Style := [fsBold];
11567                            end;
11568                  end else begin                  end else begin
11569                          ListView.Canvas.Brush.Color := FListViewBackGroundColor;                          ListView.Canvas.Brush.Color := FListViewBackGroundColor;
11570                  end;                  end;
11571  //              if (ThreadItem.Kokomade <> ThreadItem.Count) and (ThreadItem.IsLogFile) then  
11572                  if ThreadItem.UnRead then                  if ThreadItem.UnRead then
11573                          ListView.Canvas.Font.Style := [fsBold];                          ListView.Canvas.Font.Style := [fsBold];
11574          end;          end;
# Line 11728  end; Line 11577  end;
11577    
11578  procedure TGikoForm.FormActivate(Sender: TObject);  procedure TGikoForm.FormActivate(Sender: TObject);
11579  begin  begin
         MouseGesture.UnHook;  
11580          if GikoSys.Setting.GestureEnabled then begin          if GikoSys.Setting.GestureEnabled then begin
11581                    MouseGesture.UnHook;
11582                  MouseGesture.OnGestureStart := OnGestureStart;                  MouseGesture.OnGestureStart := OnGestureStart;
11583                  MouseGesture.OnGestureMove := OnGestureMove;                  MouseGesture.OnGestureMove := OnGestureMove;
11584                  MouseGesture.OnGestureEnd := OnGestureEnd;                  MouseGesture.OnGestureEnd := OnGestureEnd;
11585                  MouseGesture.SetHook(Handle);                  MouseGesture.SetHook(Handle);
11586          end else begin          end else begin
11587                    //MouseGesture.UnHook;
11588                  MouseGesture.OnGestureStart := nil;                  MouseGesture.OnGestureStart := nil;
11589                  MouseGesture.OnGestureMove := nil;                  MouseGesture.OnGestureMove := nil;
11590                  MouseGesture.OnGestureEnd := nil;                  MouseGesture.OnGestureEnd := nil;
# Line 11864  begin Line 11714  begin
11714          end;          end;
11715          BrowserTab.Tabs.EndUpdate;          BrowserTab.Tabs.EndUpdate;
11716  end;  end;
11717    //ブラウザタブが2つ以上あれば有効になるアクションで共通化
11718  procedure TGikoForm.RightTabCloseActionUpdate(Sender: TObject);  procedure TGikoForm.RightTabCloseActionUpdate(Sender: TObject);
11719  begin  begin
11720          RightTabCloseAction.Enabled := (BrowserTab.Tabs.Count > 1);  {$IFDEF ACTCHK}
11721            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
11722            if (Sender <> nil) and (Sender is TAction) then begin
11723    {$ENDIF}
11724                    TAction(Sender).Enabled := (BrowserTab.Tabs.Count > 1);
11725    {$IFDEF ACTCHK}
11726            end;
11727    {$ENDIF}
11728  end;  end;
11729    
11730  procedure TGikoForm.LeftTabCloseActionExecute(Sender: TObject);  procedure TGikoForm.LeftTabCloseActionExecute(Sender: TObject);
# Line 11887  begin Line 11744  begin
11744          BrowserTab.Tabs.EndUpdate;          BrowserTab.Tabs.EndUpdate;
11745  end;  end;
11746    
 procedure TGikoForm.LeftTabCloseActionUpdate(Sender: TObject);  
 begin  
         LeftTabCloseAction.Enabled := (BrowserTab.Tabs.Count > 1);  
 end;  
   
11747  procedure TGikoForm.SameIDResAnchorActionExecute(Sender: TObject);  procedure TGikoForm.SameIDResAnchorActionExecute(Sender: TObject);
11748  var  var
11749          ThreadItem : TThreadItem;          ThreadItem : TThreadItem;
# Line 12224  procedure TGikoForm.MessageListViewAdvan Line 12076  procedure TGikoForm.MessageListViewAdvan
12076    Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;    Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
12077    Stage: TCustomDrawStage; var DefaultDraw: Boolean);    Stage: TCustomDrawStage; var DefaultDraw: Boolean);
12078  begin  begin
12079          //if DiffComp then begin                  //if DiffComp then begin
12080                   //if Odd(Item.Index) then Sender.Canvas.Brush.Color := clBlue;                   //if Odd(Item.Index) then Sender.Canvas.Brush.Color := clBlue;
12081                  //DiffComp := False;                                  //DiffComp := False;
12082  //        end;  //        end;
12083  end;  end;
12084    
# Line 12238  end; Line 12090  end;
12090  procedure TGikoForm.BeLogInOutActionUpdate(Sender: TObject);  procedure TGikoForm.BeLogInOutActionUpdate(Sender: TObject);
12091  begin  begin
12092          if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin          if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin
12093          if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true                  if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true
12094          else BeLogInOutAction.Checked := false;                  else BeLogInOutAction.Checked := false;
12095          BeLogInOutAction.Enabled := true                  BeLogInOutAction.Enabled := true
12096      end else          end else
12097          BeLogInOutAction.Enabled := false;                  BeLogInOutAction.Enabled := false;
12098    
12099  end;  end;
12100  //リンクの文字列からレスポップアップ用のURLに変換する  //リンクの文字列からレスポップアップ用のURLに変換する
# Line 12287  begin Line 12139  begin
12139      end;      end;
12140    
12141  end;  end;
12142    //ListViewの選択状態を解除する
12143    procedure TGikoForm.UnSelectedListViewActionExecute(Sender: TObject);
12144    begin
12145            if ListView.Selected <> nil then begin
12146                    ListView.Selected.Focused := True;
12147                    ListView.Selected := nil;
12148            end;
12149    end;
12150    
12151    procedure TGikoForm.ListViewKeyUp(Sender: TObject; var Key: Word;
12152      Shift: TShiftState);
12153    begin
12154            //ブラウザタブ無しで、キー移動で読み飛ばしを可能にするための
12155            //無効時間のTimerの処理
12156            //とりあえず、タイマーを停止する。
12157            SelectTimer.Interval := 0;
12158            if not (GikoSys.Setting.BrowserTabVisible) then begin
12159                    if (GetActiveList is TBoard) then begin
12160                            //Shift Alt Ctrlが話されたときは、方向キーを離していても無視
12161                            if not ((ssShift in Shift) or (ssAlt in Shift) or (ssCtrl in Shift))  and
12162                                    (( Key = VK_LEFT) or (Key = VK_RIGHT) or
12163                                                    (Key = VK_UP) or (Key = VK_DOWN)) then
12164                                            SelectTimer.Interval := GikoSys.Setting.SelectInterval;
12165                    end;
12166            end;
12167    end;
12168    //TActionでGetActiveContentがnil以外で有効になる
12169    procedure TGikoForm.DependActiveCntentActionUpdate(Sender: TObject);
12170    begin
12171    {$IFDEF ACTCHK}
12172            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
12173            if (Sender <> nil) and (Sender is TAction) then begin
12174    {$ENDIF}
12175                    TAction(Sender).Enabled := (GetActiveContent <> nil);
12176    {$IFDEF ACTCHK}
12177            end;
12178    {$ENDIF}
12179    end;
12180    //TActionでGetActiveContentがnil以外かつログを持っている
12181    procedure TGikoForm.DependActiveCntentLogActionUpdate(Sender: TObject);
12182    begin
12183    {$IFDEF ACTCHK}
12184            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
12185            if (Sender <> nil) and (Sender is TAction) then begin
12186    {$ENDIF}
12187                    TAction(Sender).Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);
12188    {$IFDEF ACTCHK}
12189            end;
12190    {$ENDIF}
12191    end;
12192    //TActionでActiveListがTBoardで有効になる
12193    procedure TGikoForm.DependActiveListTBoardActionUpdate(Sender: TObject);
12194    begin
12195    {$IFDEF ACTCHK}
12196            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
12197            if (Sender <> nil) and (Sender is TAction) then begin
12198    {$ENDIF}
12199                    TAction(Sender).Enabled := (GetActiveList is TBoard);
12200    {$IFDEF ACTCHK}
12201            end;
12202    {$ENDIF}
12203    end;
12204    
12205    procedure TGikoForm.FavoriteTreeViewEditing(Sender: TObject;
12206      Node: TTreeNode; var AllowEdit: Boolean);
12207    begin
12208        //編集前の文字列を一時保存する
12209            FOrigenCaption := Node.Text;
12210    end;
12211    //例外処理されなかった例外を処理する
12212    procedure TGikoForm.AppException(Sender: TObject; E: Exception);
12213    var
12214            s : String;
12215    begin
12216            if (Sender <> nil) then begin
12217                    s := ' [' + Sender.ClassName + ']' + #13#10;
12218            end else begin
12219                    s := ' [ Sender is nil ] ' + #13#10;
12220            end;
12221            s := s + E.Message;
12222            MsgBox(Handle, s, '処理されなかった例外', MB_OK or MB_ICONSTOP);
12223    end;
12224    
12225  initialization  initialization
12226                                  OleInitialize(nil);                                  OleInitialize(nil);

Legend:
Removed from v.1.516  
changed lines
  Added in v.1.517

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