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.515 by h677, Sat Jun 25 13:02:29 2005 UTC revision 1.515.2.27 by h677, Sun Jul 31 03:35:56 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の破棄
2237            for i := Length(BoardGroups) - 1 downto 0 do begin
2238                    try
2239                            BoardGroups[i].Free;
2240                    except
2241                    end;
2242            end;
2243          //BBS破棄          //BBS破棄
2244          try          try
2245                  for i := Length( BBSs ) - 1 downto 0 do begin                  for i := Length( BBSs ) - 1 downto 0 do begin
# Line 2254  begin Line 2253  begin
2253          ActiveList := nil;          ActiveList := nil;
2254    
2255          FTreeType := gttNone;          FTreeType := gttNone;
2256          //GikoSys.FBoardURLList.Clear;  
2257          for i := Length(BoardGroups) - 1 downto 0 do begin          //============ここから下で、再生================================//
2258                  BoardGroups[i].Clear;  
2259          end;          // 外部板プラグインをロード(ReadBoardFile, LoadHistory より先に行うこと)
2260            InitializeBoardPlugIns;
2261    
2262          GikoSys.ListBoardFile;          //ボードファイル読込          GikoSys.ListBoardFile;          //ボードファイル読込
2263    
2264          // すべてのBBSを読み込んでおく          // すべてのBBSを読み込んでおく
# Line 2283  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 3343  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 3847  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 3868  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 3903  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 3922  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 3938  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 3946  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 3962  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 3970  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 3996  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 4007  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 4702  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 4716  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 4755  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 4790  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                  SelectTreeNode(ListView.Selected.Data, True)
                         SelectTreeNode(ListView.Selected.Data, True)  
                 else begin  
                         cNode := TreeView.Selected;  
                         if TObject(cNode.Data) is TCategory then begin  
                                 bNode := cNode.getFirstChild;  
                                 while bNode <> nil do begin  
                                         if TObject(bNode.Data) is TBoard then begin  
                                                 if TBoard(bNode.Data) = TBoard(ListView.Selected.Data) then begin  
                                                         bNode.Selected := true;  
                                                         TreeClick(bNode);  
                                                         break;  
                                                 end;  
                                         end;  
                                         bNode := bNode.getNextSibling;  
                                 end;  
                         end;  
                 end;  
 //              TreeView.Selected.Expanded := True;  
 //              TreeView.Selected.Item[ListView.Selected.Index].Selected := True;  
                 //TreeViewChange(nil, TreeView.Selected);  
4758          end else if TObject(ListView.Selected.Data) is TThreadItem then begin          end else if TObject(ListView.Selected.Data) is TThreadItem then begin
4759                  //if TObject(ListView.Selected.Data) is TThreadItem then begin                  Application.ProcessMessages;
4760                          Application.ProcessMessages;                  ThreadItem := TThreadItem(ListView.Selected.Data);
4761                          ThreadItem := TThreadItem(ListView.Selected.Data);                  DownloadContent(ThreadItem, shiftDown);
4762                          DownloadContent(ThreadItem, shiftDown);  
                 //end;  
                   
4763                  if GikoSys.Setting.BrowserAutoMaximize = gbmDoubleClick then begin                  if GikoSys.Setting.BrowserAutoMaximize = gbmDoubleClick then begin
4764                          if GikoSys.Setting.ListOrientation = gloHorizontal then begin                          if GikoSys.Setting.ListOrientation = gloHorizontal then begin
4765                                  if GikoSys.Setting.ListWidthState = glsMin then begin                                  if GikoSys.Setting.ListWidthState = glsMin then begin
 //                                      BrowserMaxAndFocusAction.Execute;  
4766                                          BrowserMaxAction.Execute;                                          BrowserMaxAction.Execute;
4767                                          SetFocusForBrowserAction.Execute;                                          SetFocusForBrowserAction.Execute;
4768                                  end;                                  end;
4769                          end else begin                          end else begin
4770                                  if GikoSys.Setting.ListHeightState = glsMin then begin                                  if GikoSys.Setting.ListHeightState = glsMin then begin
 //                                      BrowserMaxAndFocusAction.Execute;  
4771                                          BrowserMaxAction.Execute;                                          BrowserMaxAction.Execute;
4772                                          SetFocusForBrowserAction.Execute;                                          SetFocusForBrowserAction.Execute;
4773                                  end;                                  end;
# Line 4846  var Line 4782  var
4782          nm: OleVariant;          nm: OleVariant;
4783          activeBrower :TWebBrowser;          activeBrower :TWebBrowser;
4784  begin  begin
4785  //      OleVariant(Browser.Document).parentWindow.location.hash := AName;          //
   
4786          while (BrowserRecord.Browser.ReadyState <> READYSTATE_COMPLETE) and          while (BrowserRecord.Browser.ReadyState <> READYSTATE_COMPLETE) and
4787                                  (BrowserRecord.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin                                  (BrowserRecord.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
4788          Sleep(1);                  Sleep(1);
4789                  Application.ProcessMessages;                  Application.ProcessMessages;
4790          end;          end;
4791    
# Line 4879  var Line 4814  var
4814          nm: OleVariant;          nm: OleVariant;
4815          activeBrower :TWebBrowser;          activeBrower :TWebBrowser;
4816  begin  begin
 //      OleVariant(Browser.Document).parentWindow.location.hash := AName;  
         {  
         while (Browser.ReadyState <> READYSTATE_COMPLETE) and  
                                 (Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin  
                 Application.ProcessMessages;  
         end;  
         }  
4817          // Access Violation が起きる事があるので今後要チェック          // Access Violation が起きる事があるので今後要チェック
4818          if(BrowserTab.Tabs.Count > 0) and (BrowserTab.TabIndex >= 0) then begin          if(BrowserTab.Tabs.Count > 0) and (BrowserTab.TabIndex >= 0) then begin
4819                  activeBrower := FActiveContent.Browser;                  activeBrower := FActiveContent.Browser;
# Line 4923  end; Line 4851  end;
4851    
4852  procedure TGikoForm.SelectListItem(List: TList);  procedure TGikoForm.SelectListItem(List: TList);
4853  var  var
 //      TmpTreeNode: TTreeNode;  
4854          TmpListItem: TListItem;          TmpListItem: TListItem;
4855  begin  begin
4856          List.Clear;          List.Clear;
4857            List.Capacity := 0;
4858          TmpListItem := ListView.Selected;          TmpListItem := ListView.Selected;
4859          while TmpListItem <> nil do begin          while TmpListItem <> nil do begin
4860                  List.Add(TmpListItem.Data);                  List.Add(TmpListItem.Data);
4861                  TmpListItem := ListView.GetNextItem(TmpListItem, sdAll, [isSelected]);                  TmpListItem := ListView.GetNextItem(TmpListItem, sdAll, [isSelected]);
4862          end;          end;
4863        
4864  end;  end;
4865    
4866  procedure TGikoForm.ExitActionExecute(Sender: TObject);  procedure TGikoForm.ExitActionExecute(Sender: TObject);
# Line 4954  begin Line 4882  begin
4882                  Exit;                  Exit;
4883          GikoSys.Setting.StdToolBarVisible := StdToolBarVisibleAction.Checked;          GikoSys.Setting.StdToolBarVisible := StdToolBarVisibleAction.Checked;
4884          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;  
4885          StdToolBarVisiblePMenu.Checked := GikoSys.Setting.StdToolBarVisible;          StdToolBarVisiblePMenu.Checked := GikoSys.Setting.StdToolBarVisible;
4886  end;  end;
4887    
# Line 4970  begin Line 4894  begin
4894                  Exit;                  Exit;
4895          GikoSys.Setting.AddressBarVisible := AddressBarVisibleAction.Checked;          GikoSys.Setting.AddressBarVisible := AddressBarVisibleAction.Checked;
4896          CoolBand.Visible := GikoSys.Setting.AddressBarVisible;          CoolBand.Visible := GikoSys.Setting.AddressBarVisible;
         //AddressBarVisibleAction.Checked := GikoSys.Setting.AddressBarVisible;  
4897          AddressToolBarVisiblePMenu.Checked := GikoSys.Setting.AddressBarVisible;          AddressToolBarVisiblePMenu.Checked := GikoSys.Setting.AddressBarVisible;
4898  end;  end;
4899    
# Line 4983  begin Line 4906  begin
4906                  Exit;                  Exit;
4907          GikoSys.Setting.LinkBarVisible := LinkBarVisibleAction.Checked;          GikoSys.Setting.LinkBarVisible := LinkBarVisibleAction.Checked;
4908          CoolBand.Visible := GikoSys.Setting.LinkBarVisible;          CoolBand.Visible := GikoSys.Setting.LinkBarVisible;
4909                                  //LinkBarVisibleAction.Checked := GikoSys.Setting.LinkBarVisible;          LinkToolBarVisiblePMenu.Checked := GikoSys.Setting.LinkBarVisible;
                                 LinkToolBarVisiblePMenu.Checked := GikoSys.Setting.LinkBarVisible;  
4910  end;  end;
4911    
4912  procedure TGikoForm.ListToolBarVisibleActionExecute(Sender: TObject);  procedure TGikoForm.ListToolBarVisibleActionExecute(Sender: TObject);
# Line 4995  begin Line 4917  begin
4917          if CoolBand = nil then          if CoolBand = nil then
4918                  Exit;                  Exit;
4919          CoolBand.Visible := ListToolBarVisibleAction.Checked;          CoolBand.Visible := ListToolBarVisibleAction.Checked;
 //      ListToolBar.Visible := ListToolBarVisibleAction.Checked;  
 //      AnimePanel.Visible := StdToolBar.Visible or ListToolBar.Visible;  
4920          GikoSys.Setting.ListToolBarVisible := ListToolBarVisibleAction.Checked;          GikoSys.Setting.ListToolBarVisible := ListToolBarVisibleAction.Checked;
4921    
4922  end;  end;
4923    
4924  procedure TGikoForm.ListNameBarVisibleActionExecute(Sender: TObject);  procedure TGikoForm.ListNameBarVisibleActionExecute(Sender: TObject);
# Line 5019  begin Line 4940  begin
4940          if CoolBand = nil then          if CoolBand = nil then
4941                  Exit;                  Exit;
4942          CoolBand.Visible := BrowserToolBarVisibleAction.Checked;          CoolBand.Visible := BrowserToolBarVisibleAction.Checked;
 //      BrowserToolBar.Visible := BrowserToolBarVisibleAction.Checked;  
4943          GikoSys.Setting.BrowserToolBarVisible := BrowserToolBarVisibleAction.Checked;          GikoSys.Setting.BrowserToolBarVisible := BrowserToolBarVisibleAction.Checked;
4944  end;  end;
4945    
# Line 5102  begin Line 5022  begin
5022                  FSearchDialog.Show;                  FSearchDialog.Show;
5023          except          except
5024          end;          end;
5025            
5026  end;  end;
5027    
5028  procedure TGikoForm.OptionActionExecute(Sender: TObject);  procedure TGikoForm.OptionActionExecute(Sender: TObject);
# Line 5188  begin Line 5108  begin
5108                  // SelectComboBox の履歴を更新しておく                  // SelectComboBox の履歴を更新しておく
5109                  ModifySelectList;                  ModifySelectList;
5110                  // SelectComboBox の値をクリア                  // SelectComboBox の値をクリア
5111                  if SelectComboBox.Parent <> nil then begin                  if SelectComboBoxPanel.Visible then begin
5112                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;
5113                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
5114                          ListView.SetFocus;                          ListView.SetFocus;
# Line 5207  begin Line 5127  begin
5127                  // SelectComboBox の履歴を更新しておく                  // SelectComboBox の履歴を更新しておく
5128                  ModifySelectList;                  ModifySelectList;
5129                  // SelectComboBox の値をクリア                  // SelectComboBox の値をクリア
5130                  if SelectComboBox.Parent <> nil then begin                  if SelectComboBoxPanel.Visible  then begin
5131                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;
5132                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
5133                          ListView.SetFocus;                          ListView.SetFocus;
# Line 5227  begin Line 5147  begin
5147                  // SelectComboBox の履歴を更新しておく                  // SelectComboBox の履歴を更新しておく
5148                  ModifySelectList;                  ModifySelectList;
5149                  // SelectComboBox の値をクリア                  // SelectComboBox の値をクリア
5150                  if SelectComboBox.Parent <> nil then begin                  if SelectComboBoxPanel.Visible then begin
5151                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;
5152                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
5153                          ListView.SetFocus;                          ListView.SetFocus;
# Line 5242  var Line 5162  var
5162          Dlg: TListSelectDialog;          Dlg: TListSelectDialog;
5163  begin  begin
5164          try          try
5165                  if SelectComboBox.Parent <> nil then begin                  if SelectComboBoxPanel.Visible then begin
5166                          if SelectComboBox.Left + SelectComboBox.Width < ListToolBar.Width then begin                          if SelectComboBoxPanel.Left + SelectComboBoxPanel.Width < ListToolBar.Width then begin
5167                                  // SelectComboBox がある場合はフォーカスを移す                                  // SelectComboBox がある場合はフォーカスを移す
5168                                  if GikoSys.Setting.ListOrientation = gloHorizontal then begin                                  if GikoSys.Setting.ListOrientation = gloHorizontal then begin
5169                                          if GikoSys.Setting.ListWidthState = glsMax then                                          if GikoSys.Setting.ListWidthState = glsMax then
# Line 5653  begin Line 5573  begin
5573                  List.Free;                  List.Free;
5574          end;          end;
5575  end;  end;
5576    //ActiveListがTCategoyでスレ一覧で1つ以上選択かActiveListがTBoardで有効な
5577    //Actionで共通
5578  procedure TGikoForm.SelectListReloadActionUpdate(Sender: TObject);  procedure TGikoForm.SelectListReloadActionUpdate(Sender: TObject);
5579  begin  begin
5580          if (GetActiveList is TCategory) and (ListView.SelCount > 0) then  {$IFDEF ACTCHK}
5581                  SelectListReloadAction.Enabled := True          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
5582          else if GetActiveList is TBoard then          if (Sender <> nil) and (Sender is TAction) then begin
5583                  SelectListReloadAction.Enabled := True  {$ENDIF}
5584          else                  if (GetActiveList is TCategory) and (ListView.SelCount > 0) then
5585                  SelectListReloadAction.Enabled := False;                          TAction(Sender).Enabled := True
5586                    else if GetActiveList is TBoard then
5587                            TAction(Sender).Enabled := True
5588                    else
5589                            TAction(Sender).Enabled := False;
5590    {$IFDEF ACTCHK}
5591            end;
5592    {$ENDIF}
5593  end;  end;
5594    //ActiveListがTBoardでスレ一覧で1つ以上選択していると有効になるActionで共通
5595  procedure TGikoForm.SelectThreadReloadActionUpdate(Sender: TObject);  procedure TGikoForm.SelectThreadReloadActionUpdate(Sender: TObject);
5596  begin  begin
5597          if (GetActiveList is TBoard) and (ListView.SelCount > 0) then  {$IFDEF ACTCHK}
5598                  SelectThreadReloadAction.Enabled := True          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
5599          else          if (Sender <> nil) and (Sender is TAction) then begin
5600                  SelectThreadReloadAction.Enabled := False;  {$ENDIF}
5601  end;                  TAction(Sender).Enabled := (GetActiveList is TBoard) and (ListView.SelCount > 0);
5602    {$IFDEF ACTCHK}
5603  procedure TGikoForm.AllItemActionUpdate(Sender: TObject);          end;
5604  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);  
5605  end;  end;
5606    
5607  procedure TGikoForm.UpFolderActionUpdate(Sender: TObject);  procedure TGikoForm.UpFolderActionUpdate(Sender: TObject);
# Line 5697  begin Line 5609  begin
5609          UpFolderAction.Enabled := not (GetActiveList is TBBS);          UpFolderAction.Enabled := not (GetActiveList is TBBS);
5610  end;  end;
5611    
 procedure TGikoForm.ThreadEditorActionUpdate(Sender: TObject);  
 begin  
         ThreadEditorAction.Enabled := (GetActiveList is TBoard);  
 end;  
   
5612  procedure TGikoForm.FormResize(Sender: TObject);  procedure TGikoForm.FormResize(Sender: TObject);
5613  begin  begin
5614    
# Line 5726  begin Line 5633  begin
5633    
5634  end;  end;
5635    
 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;  
   
5636  procedure TGikoForm.ScrollKokoActionUpdate(Sender: TObject);  procedure TGikoForm.ScrollKokoActionUpdate(Sender: TObject);
5637  begin  begin
5638          ScrollKokoAction.Enabled := (GetActiveContent <> nil)          ScrollKokoAction.Enabled := (GetActiveContent <> nil)
# Line 5749  begin Line 5641  begin
5641    
5642  end;  end;
5643    
5644  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;  
   
5645  procedure TGikoForm.AllTabCloseActionUpdate(Sender: TObject);  procedure TGikoForm.AllTabCloseActionUpdate(Sender: TObject);
5646  begin  begin
5647          AllTabCloseAction.Enabled := (BrowserTab.Tabs.Count > 0);  {$IFDEF ACTCHK}
5648  end;          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
5649            if (Sender <> nil) and (Sender is TAction) then begin
5650  procedure TGikoForm.ActiveLogDeleteActionUpdate(Sender: TObject);  {$ENDIF}
5651  begin                  TAction(Sender).Enabled := (BrowserTab.Tabs.Count > 0);
5652          ActiveLogDeleteAction.Enabled := GetActiveContent <> nil;  {$IFDEF ACTCHK}
5653            end;
5654    {$ENDIF}
5655  end;  end;
5656    
5657  procedure TGikoForm.LogDeleteActionExecute(Sender: TObject);  procedure TGikoForm.LogDeleteActionExecute(Sender: TObject);
# Line 6007  end; Line 5852  end;
5852    
5853  function TGikoForm.Hook(var Message: TMessage): Boolean;  function TGikoForm.Hook(var Message: TMessage): Boolean;
5854  begin  begin
5855            //サブフォームがメインメニューを持たないときに、メインフォームの
5856            //メニューのショートカットキーがサブメニューから入力されるのを回避
5857          Result := False;          Result := False;
5858          case Message.Msg of          case Message.Msg of
5859          CM_APPKEYDOWN:          CM_APPKEYDOWN:
5860                  Result := True;                  Result := True;         //ショートカットキー無効
5861            CM_APPSYSCOMMAND:
5862                    Result := True;  // アクセラレータを無効にする
5863          end;          end;
5864  end;  end;
5865    
# Line 6135  begin Line 5984  begin
5984          end;          end;
5985  end;  end;
5986    
5987  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;  
   
5988  procedure TGikoForm.SelectItemNameCopyActionUpdate(Sender: TObject);  procedure TGikoForm.SelectItemNameCopyActionUpdate(Sender: TObject);
5989  begin  begin
5990          if ((GetActiveList is TBoard) or (GetActiveList is TCategory))and (ListView.SelCount > 0) then  {$IFDEF ACTCHK}
5991                  SelectItemNameCopyAction.Enabled := True          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
5992          else          if (Sender <> nil) and (Sender is TAction) then begin
5993                  SelectItemNameCopyAction.Enabled := False;  {$ENDIF}
5994  end;                  if ((GetActiveList is TBoard) or (GetActiveList is TCategory))and (ListView.SelCount > 0) then
5995                            TAction(Sender).Enabled := True
5996                    else
5997                            TAction(Sender).Enabled := False;
5998    {$IFDEF ACTCHK}
5999            end;
6000    {$ENDIF}
6001    
 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;  
6002  end;  end;
6003    
6004  procedure TGikoForm.AllSelectActionUpdate(Sender: TObject);  procedure TGikoForm.AllSelectActionUpdate(Sender: TObject);
6005  begin  begin
6006          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;  
6007  end;  end;
6008    
6009  procedure TGikoForm.BrowserTabCloseActionExecute(Sender: TObject);  procedure TGikoForm.BrowserTabCloseActionExecute(Sender: TObject);
# Line 6777  begin Line 6600  begin
6600                                  FEvent.OnContextMenu := OnDocumentContextMenu;                                  FEvent.OnContextMenu := OnDocumentContextMenu;
6601                                  FEvent.OnClick := WebBrowserClick;  //追加したOnClickイベント                                  FEvent.OnClick := WebBrowserClick;  //追加したOnClickイベント
6602                          end;                          end;
6603                            
6604                  end;                  end;
6605    
6606                  if (BrowserRecord <> nil) and                  if (BrowserRecord <> nil) and
# Line 6874  procedure TGikoForm.SelectNewRoundNameEx Line 6698  procedure TGikoForm.SelectNewRoundNameEx
6698  var  var
6699          s: string;          s: string;
6700          Dlg: TRoundNameDialog;          Dlg: TRoundNameDialog;
6701          cnt: Integer;                  cnt: Integer;
6702    
6703  begin  begin
6704          //登録上限チェック          //呼び出し元が、TActionでListViewに選択がいなければ、EXITする
6705          cnt := RoundList.Count[grtBoard];          if (Sender is TAction) and (ListView.Selected = nil) then
6706          cnt := cnt + RoundList.Count[grtItem];                  Exit;
6707          if cnt > 500 then begin  
6708                  MsgBox(Handle, '巡回は500以上登録できません', 'エラー', MB_OK or MB_ICONSTOP);          //登録上限チェック
6709                  Exit;          cnt := RoundList.Count[grtBoard];
6710          end;          cnt := cnt + RoundList.Count[grtItem];
6711            if cnt > 500 then begin
6712                            MsgBox(Handle, '巡回は500以上登録できません', 'エラー', MB_OK or MB_ICONSTOP);
6713                            Exit;
6714            end;
6715    
6716          Dlg := TRoundNameDialog.Create(Self);          Dlg := TRoundNameDialog.Create(Self);
6717          try          try
6718                  Dlg.ShowModal;                  Dlg.ShowModal;
6719                  if Dlg.ModalResult <> mrCancel then begin                  if Dlg.ModalResult <> mrCancel then begin
6720                          s := Trim(Dlg.RoundNameEdit.Text);                          s := Trim(Dlg.RoundNameEdit.Text);
6721                          //RoundList.RoundNameList.Add(s);                          if (Sender is TMenuItem) then begin
6722                          SetSelectItemRound(True, s, TMenuItem(Sender).Parent.Name);                                  SetSelectItemRound(True, s, TMenuItem(Sender).Parent.Name);
6723              ListView.Refresh;                          end else if (Sender is TAction) then begin
6724                                    if (ListView.Selected <> nil) then begin
6725                                            if (TObject(ListView.Selected.Data) is TThreadItem) then begin
6726                                                    SetSelectItemRound(True, s,
6727                                                            TThreadItem(ListView.Selected.Data).Title);
6728                                            end else if (TObject(ListView.Selected.Data) is TBoard) then begin
6729                                                    SetSelectItemRound(True, s,
6730                                                            TBoard(ListView.Selected.Data).Title);
6731                                            end;
6732                                    end;
6733                            end;
6734                            ListView.Refresh;
6735                  end;                  end;
6736          finally          finally
6737                  Dlg.Free;                  Dlg.Free;
# Line 6901  end; Line 6740  end;
6740  procedure TGikoForm.SetSelectItemRound(RoundFlag: Boolean; RoundName: string; ParentName: string);  procedure TGikoForm.SetSelectItemRound(RoundFlag: Boolean; RoundName: string; ParentName: string);
6741  var  var
6742          threadItem : TThreadItem;          threadItem : TThreadItem;
6743  //      i: Integer;          i: Integer;
6744  begin  begin
6745          if ParentName <> 'dummy1' then begin          if ParentName <> 'dummy1' then begin
6746                  SetSelectItemRound(RoundFlag, RoundName);                  SetSelectItemRound(RoundFlag, RoundName);
# Line 6909  begin Line 6748  begin
6748                  threadItem := GetActiveContent;                  threadItem := GetActiveContent;
6749                  if threadItem <> nil then begin                  if threadItem <> nil then begin
6750                          threadItem.RoundName := RoundName;                          threadItem.RoundName := RoundName;
6751                          RoundList.RoundNameList.Add(RoundName);                          if RoundFlag then
6752                          //RoundList.RoundNameList.Find(RoundName, i);                                  RoundList.RoundNameList.Add(RoundName);
                         //threadItem.RoundName := PChar(RoundList.RoundNameList[i]);  
6753                          threadItem.Round := RoundFlag;                          threadItem.Round := RoundFlag;
6754                  end;                  end;
6755          end;          end;
# Line 6928  begin Line 6766  begin
6766                  for i := 0 to List.Count - 1 do begin                  for i := 0 to List.Count - 1 do begin
6767                          if TObject(List[i]) is TBoard then begin                          if TObject(List[i]) is TBoard then begin
6768                                  TBoard(List[i]).RoundName := RoundName;                                  TBoard(List[i]).RoundName := RoundName;
6769                                  RoundList.RoundNameList.Add(RoundName);                                  if RoundFlag then
6770                                  //RoundList.RoundNameList.Find(RoundName, idx);                                          RoundList.RoundNameList.Add(RoundName);
                                 //TBoard(List[i]).RoundName := PChar(RoundList.RoundNameList[idx]);  
6771                                  TBoard(List[i]).Round := RoundFlag;                                  TBoard(List[i]).Round := RoundFlag;
6772                          end else if TObject(List[i]) is TThreadItem then begin                          end else if TObject(List[i]) is TThreadItem then begin
6773                                  if TThreadItem(List[i]).IsLogFile then begin                                  if TThreadItem(List[i]).IsLogFile then begin
6774                                          TThreadItem(List[i]).RoundName := RoundName;                                          TThreadItem(List[i]).RoundName := RoundName;
6775                                          RoundList.RoundNameList.Add(RoundName);                                          if RoundFlag then
6776                                          //RoundList.RoundNameList.Find(RoundName, idx);                                                  RoundList.RoundNameList.Add(RoundName);
                                         //TThreadItem(List[i]).RoundName := PChar(RoundList.RoundNameList[idx]);  
6777                                          TThreadItem(List[i]).Round := RoundFlag;                                          TThreadItem(List[i]).Round := RoundFlag;
6778                                  end;                                  end;
6779                          end;                          end;
# Line 6948  begin Line 6784  begin
6784  end;  end;
6785    
6786  procedure TGikoForm.SelectDeleteRoundExecute(Sender: TObject);  procedure TGikoForm.SelectDeleteRoundExecute(Sender: TObject);
6787    var
6788            s : String;
6789  begin  begin
6790          SetSelectItemRound(False, '', TMenuItem(Sender).Parent.Name);          if (Sender is TMenuItem) then begin
6791                    try
6792                            SetSelectItemRound(False, '', TMenuItem(Sender).Parent.Name);
6793                    except
6794                    end;
6795            end else if (Sender is TAction) then begin
6796                    try
6797                            if ListView.Selected <> nil then begin
6798                                    if (TObject(ListView.Selected.Data) is TThreadItem) then begin
6799                                            s := TThreadItem(ListView.Selected.Data).Title;
6800                                    end else if (TObject(ListView.Selected.Data) is TBoard) then begin
6801                                            s := TBoard(ListView.Selected.Data).Title;
6802                                    end;
6803                                    SetSelectItemRound(False, '', s);
6804    
6805                            end;
6806                    except
6807                    end;
6808            end;
6809          ListView.Refresh;          ListView.Refresh;
6810  end;  end;
6811    
# Line 7325  begin Line 7181  begin
7181          end;          end;
7182  end;  end;
7183    
7184  procedure TGikoForm.LeftmostTabSelectActionUpdate(Sender: TObject);  //ブラウザタブが1つ以上で左端でないActionで共通
 begin  
         LeftmostTabSelectAction.Enabled := (BrowserTab.TabIndex <> 0) and (BrowserTab.Tabs.Count > 0);  
 end;  
   
7185  procedure TGikoForm.LeftTabSelectActionUpdate(Sender: TObject);  procedure TGikoForm.LeftTabSelectActionUpdate(Sender: TObject);
7186  begin  begin
7187          LeftTabSelectAction.Enabled := (BrowserTab.TabIndex <> 0) and (BrowserTab.Tabs.Count > 0);  {$IFDEF ACTCHK}
7188            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
7189            if (Sender <> nil) and (Sender is TAction) then begin
7190    {$ENDIF}
7191                    TAction(Sender).Enabled := (BrowserTab.Tabs.Count > 0) and (BrowserTab.TabIndex <> 0);
7192    {$IFDEF ACTCHK}
7193            end;
7194    {$ENDIF}
7195  end;  end;
7196    //ブラウザタブが1つ以上で右端でないActionで共通
7197  procedure TGikoForm.RightTabSelectActionUpdate(Sender: TObject);  procedure TGikoForm.RightTabSelectActionUpdate(Sender: TObject);
7198  begin  begin
7199          RightTabSelectAction.Enabled := (BrowserTab.TabIndex <> BrowserTab.Tabs.Count - 1) and (BrowserTab.Tabs.Count > 0);  {$IFDEF ACTCHK}
7200  end;          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
7201            if (Sender <> nil) and (Sender is TAction) then begin
7202  procedure TGikoForm.RightmostTabSelectActionUpdate(Sender: TObject);  {$ENDIF}
7203  begin                  TAction(Sender).Enabled := (BrowserTab.Tabs.Count > 0) and (BrowserTab.TabIndex <> BrowserTab.Tabs.Count - 1);
7204          RightmostTabSelectAction.Enabled := (BrowserTab.TabIndex <> BrowserTab.Tabs.Count - 1) and (BrowserTab.Tabs.Count > 0);  {$IFDEF ACTCHK}
7205            end;
7206    {$ENDIF}
7207  end;  end;
7208    
7209  procedure TGikoForm.WMSettingChange(var Message: TWMWinIniChange);  procedure TGikoForm.WMSettingChange(var Message: TWMWinIniChange);
# Line 7531  begin Line 7392  begin
7392          end;          end;
7393  end;  end;
7394    
 procedure TGikoForm.FavoriteAddActionUpdate(Sender: TObject);  
 begin  
         FavoriteAddAction.Enabled := (GetActiveContent <> nil);  
 end;  
   
7395  procedure TGikoForm.BoardFavoriteAddActionExecute(Sender: TObject);  procedure TGikoForm.BoardFavoriteAddActionExecute(Sender: TObject);
7396  begin  begin
7397          if TObject(ListView.Selected.Data) is TBoard then          if TObject(ListView.Selected.Data) is TBoard then
# Line 7553  begin Line 7409  begin
7409                  ShowFavoriteAddDialog(TObject(ListView.Selected.Data));                  ShowFavoriteAddDialog(TObject(ListView.Selected.Data));
7410  end;  end;
7411    
 procedure TGikoForm.ThreadFavoriteAddActionUpdate(Sender: TObject);  
 begin  
         ThreadFavoriteAddAction.Enabled := (GetActiveList is TBoard) and (ListView.SelCount > 0);  
 end;  
   
7412  procedure TGikoForm.TreeSelectFavoriteAddActionExecute(Sender: TObject);  procedure TGikoForm.TreeSelectFavoriteAddActionExecute(Sender: TObject);
7413  begin  begin
7414          ShowFavoriteAddDialog(TObject(FClickNode.Data));          ShowFavoriteAddDialog(TObject(FClickNode.Data));
# Line 7900  var Line 7751  var
7751  //      KeyData: Integer;  //      KeyData: Integer;
7752  begin  begin
7753          Handled := False;          Handled := False;
7754          if AddressComboBox.Focused or SelectComboBox.Focused then begin          //アドレスもしくは絞り込みコンボボックスもしくはお気に入りが編集中は
7755            //ショートカットなどを無効にする
7756            if ((FavoriteTreeView.Visible) and (FavoriteTreeView.IsEditing)) then begin
7757                  if Msg.CharCode in [VK_BACK] then begin                  if Msg.CharCode in [VK_BACK] then begin
7758                          hComboEdit := GetFocus;                          hComboEdit := GetFocus;
7759                          if hComboEdit <> 0 then                          if hComboEdit <> 0 then
7760                                  SendMessage(hComboEdit, WM_CHAR, Msg.CharCode, Msg.KeyData);                                  SendMessage(hComboEdit, WM_CHAR, Msg.CharCode, Msg.KeyData);
7761  //                              SendMessage(hComboEdit, WM_CHAR, Msg.CharCode, $000E0001);                          Handled := True;
7762            //お気に入りはESCで脱出したいので、それも送る
7763                    end else if Msg.CharCode in [VK_INSERT, VK_DELETE, VK_HOME, VK_END, VK_PRIOR, VK_NEXT, VK_ESCAPE] then begin
7764                            hComboEdit := GetFocus;
7765                            if hComboEdit <> 0 then
7766                                    SendMessage(hComboEdit, WM_KEYDOWN, Msg.CharCode, Msg.KeyData);
7767                          Handled := True;                          Handled := True;
7768                  end;                  end;
7769                  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
7770                    if Msg.CharCode in [VK_BACK] then begin
7771                            hComboEdit := GetFocus;
7772                            if hComboEdit <> 0 then
7773                                    SendMessage(hComboEdit, WM_CHAR, Msg.CharCode, Msg.KeyData);
7774                            Handled := True;
7775                    end else if Msg.CharCode in [VK_INSERT, VK_DELETE, VK_HOME, VK_END, VK_PRIOR, VK_NEXT] then begin
7776                          hComboEdit := GetFocus;                          hComboEdit := GetFocus;
7777                          if hComboEdit <> 0 then                          if hComboEdit <> 0 then
7778                                  SendMessage(hComboEdit, WM_KEYDOWN, Msg.CharCode, Msg.KeyData);                                  SendMessage(hComboEdit, WM_KEYDOWN, Msg.CharCode, Msg.KeyData);
# Line 8235  begin Line 8099  begin
8099                          else                          else
8100                                  Header := IntToStr(Line) + ' 名前: ' + Res.FName + ' [' + res.FMailTo + '] 投稿日: ' + Res.FDateTime;                                  Header := IntToStr(Line) + ' 名前: ' + Res.FName + ' [' + res.FMailTo + '] 投稿日: ' + Res.FDateTime;
8101    
8102                          Body := CustomStringReplace(Res.FBody, '<br> ', #10,true);                                                  Body := DeleteFontTag(Res.FBody);
8103                                                    Body := CustomStringReplace(Body, '<br> ', #10,true);
8104                          Body := CustomStringReplace(Body, '<br>', #10,true);                          Body := CustomStringReplace(Body, '<br>', #10,true);
8105                          Body := CustomStringReplace(Body, '</a>', '',true);                          Body := CustomStringReplace(Body, '</a>', '',true);
8106                          Body := GikoSys.DeleteLink(Body);                          Body := GikoSys.DeleteLink(Body);
# Line 8704  begin Line 8569  begin
8569          if ToolBar.Width < bw then begin          if ToolBar.Width < bw then begin
8570                  w := 0;                  w := 0;
8571                  for i := 0 to ToolBar.ButtonCount - 1 do begin                  for i := 0 to ToolBar.ButtonCount - 1 do begin
8572                          w := w + ToolBar.Buttons[i].Width;                          if ToolBar.Buttons[i].Visible then
8573                                    w := w + ToolBar.Buttons[i].Width;
8574                          if ToolBar.Width <= w then begin                          if ToolBar.Width <= w then begin
8575                                  if ToolBar.Buttons[i].Tag = 0 then begin                                  if ToolBar.Buttons[i].Tag = 0 then begin
8576                                          Item := TMenuItem.Create(Self);                                          Item := TMenuItem.Create(Self);
8577                                          if ToolBar.Buttons[i].Style = tbsSeparator then                                          if ToolBar.Buttons[i].Style = tbsSeparator then
8578                                                  Item.Caption := '-'                                                  Item.Caption := '-'
8579                                          else begin                                          else begin
8580                                                  Item.Caption := ToolBar.Buttons[i].Caption;                                                  //スレ絞込みComBoxのTPanelを排除する
8581                                                  Item.Action := ToolBar.Buttons[i].Action;                                                  if TObject(ToolBar.Buttons[i]) is TPanel then begin
8582                                                            Continue;
8583                                                    end else begin
8584                                                            Item.Caption := ToolBar.Buttons[i].Caption;
8585                                                            Item.Action := ToolBar.Buttons[i].Action;
8586                                                    end;
8587                                                  //Item.Visible := True;                                                  //Item.Visible := True;
8588                                          end;                                          end;
8589                                          ChevronPopupMenu.Items.Add(Item);                                          ChevronPopupMenu.Items.Add(Item);
# Line 8923  var Line 8794  var
8794          Dlg: TToolBarSettingDialog;          Dlg: TToolBarSettingDialog;
8795          i: Integer;          i: Integer;
8796          //Component: TComponent;          //Component: TComponent;
8797            ToolButton : TToolButton;
8798  begin  begin
8799          Dlg := TToolBarSettingDialog.Create(Self, ActionList);          Dlg := TToolBarSettingDialog.Create(Self, ActionList);
8800          try          try
# Line 8951  begin Line 8823  begin
8823                                  BrowserCoolBar.Bands[i].MinWidth := BrowserCoolBar.Bands[i].MinWidth - 1;                                  BrowserCoolBar.Bands[i].MinWidth := BrowserCoolBar.Bands[i].MinWidth - 1;
8824                          end;                          end;
8825    
                         SelectComboBox.Visible := False;  
                         SelectComboBoxSplitter.Visible := False;  
   
8826                          SaveToolBarSetting(StdToolBar);                          SaveToolBarSetting(StdToolBar);
8827                          SaveToolBarSetting(ListToolBar);                          SaveToolBarSetting(ListToolBar);
8828                          for i := ListToolBar.ControlCount - 1 downto 0 do                          //ListToolBarにいるかもしれない絞込みComboBoxを配置
8829                          begin                          SelectComboBoxPanel.Visible := False;
8830                                  if ListToolBar.Controls[ i ].Action = SelectItemAction then                          try
8831                                    for i := ListToolBar.ControlCount - 1 downto 0 do
8832                                  begin                                  begin
8833                                          // スレッド絞込の隣にセパレータがある場合は隠す                                          if ListToolBar.Controls[ i ].Action = SelectItemAction then
8834                                          if (i + 1) < ListToolBar.ControlCount then                                          begin
8835                                                  if ListToolBar.Controls[ i + 1 ] is TToolButton then                                                  SelectComboBoxPanel.Left := ListToolBar.Controls[ i ].Left;
8836                                                          if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then                                                  SelectComboBoxPanel.Width := GikoSys.Setting.SelectComboBoxWidth;
8837                                                                  ListToolBar.Controls[ i + 1 ].Visible := False;                                                  SelectComboBoxPanel.Parent := ListToolBar;
8838                                                    SelectComboBoxPanel.Visible := True;
8839                                          // スレッド絞込ボタンを隠す  
8840                                          ListToolBar.Controls[ i ].Visible := False;                                                  SelectComboBox.Left := 0;
8841                                          // スレッド絞込フィールドを挿入                                                  SelectComboBox.Top  := 0;
8842                                          SelectComboBox.Left := ListToolBar.Controls[ i ].Left;                                                  SelectComboBox.Height := SelectComboBoxPanel.ClientHeight;
8843                                          SelectComboBox.Width := GikoSys.Setting.SelectComboBoxWidth;                                                  SelectComboBox.Width := SelectComboBoxPanel.Width -
8844                                          SelectComboBox.Parent := ListToolBar;                                                                                                  SelectComboBoxSplitter.Width;
8845                                          SelectComboBox.Visible := True;  
8846                                          // スレッド絞込用独自セパレータを挿入  
8847                                          SelectComboBoxSplitter.Left := SelectComboBox.Left + SelectComboBox.Width;                                                  //一つ見えないボタンを突っ込む
8848                                          SelectComboBoxSplitter.Parent := ListToolBar;                                                  ToolButton := TToolButton(ListToolBar.FindComponent('SelectComboBoxDummy'));
8849                                          SelectComboBoxSplitter.Visible := True;                                                  if ToolButton <> nil then begin
8850                                          break;                                                          ToolButton.Parent := nil;
8851                                                    end else begin
8852                                                            ToolButton := TToolButton.Create(ListToolBar);
8853                                                            ToolButton.Name := 'SelectComboBoxDummy';
8854                                                    end;
8855    
8856                                                    ToolButton.Style := tbsSeparator;
8857                                                    ToolButton.Width := 0;
8858                                                    ToolButton.Left  := ListToolBar.Controls[ i ].Left;
8859                                                    ListToolBar.InsertControl(ToolButton);
8860                                                    ToolButton.Visible := False;
8861    
8862                                                    // スレッド絞込の隣にセパレータがある場合は隠す
8863                                                    if (i + 1) < ListToolBar.ControlCount then
8864                                                            if ListToolBar.Controls[ i + 1 ] is TToolButton then
8865                                                                    if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then
8866                                                                            ListToolBar.Controls[ i + 1 ].Visible := False;
8867    
8868    
8869                                                    // スレッド絞込ボタンを隠す
8870                                                    ListToolBar.Controls[ i ].Visible := False;
8871    
8872                                                    break;
8873                                            end;
8874                                  end;                                  end;
8875                            except
8876                          end;                          end;
8877                          ResetBandInfo( ListCoolBar, ListToolBar );                          ResetBandInfo( ListCoolBar, ListToolBar );
8878                          SaveToolBarSetting(BrowserToolBar);                          SaveToolBarSetting(BrowserToolBar);
# Line 9170  var Line 9064  var
9064  begin  begin
9065    
9066          try          try
9067                  if SelectComboBox.Parent = nil then                  if not SelectComboBoxPanel.Visible then
9068                          exit;                          exit;
9069    
9070                  if Length( SelectComboBox.Text ) > 0 then                  if Length( SelectComboBox.Text ) > 0 then
# Line 9225  begin Line 9119  begin
9119                                  end;                                  end;
9120    
9121                                  try                                  try
9122                                          if SelectComboBox.Parent <> nil then                                          //if SelectComboBox.Parent <> nil then
9123                                            if SelectComboBoxPanel.Visible then
9124                                                  SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );                                                  SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
9125                                  except                                  except
9126                                  end;                                  end;
# Line 9254  begin Line 9149  begin
9149    
9150  end;  end;
9151    
 procedure TGikoForm.SelectResActionUpdate(Sender: TObject);  
 begin  
         SelectResAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
9152  // 全てのレスを表示  // 全てのレスを表示
9153  procedure TGikoForm.AllResActionExecute(Sender: TObject);  procedure TGikoForm.AllResActionExecute(Sender: TObject);
9154  var  var
# Line 9288  begin Line 9178  begin
9178          end;          end;
9179  end;  end;
9180    
 procedure TGikoForm.AllResActionUpdate(Sender: TObject);  
 begin  
 //      AllResAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
9181  procedure TGikoForm.ReloadClick(Sender: TObject);  procedure TGikoForm.ReloadClick(Sender: TObject);
9182  begin  begin
9183          if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin          if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin
# Line 9341  var Line 9226  var
9226          pos                             : TPoint;          pos                             : TPoint;
9227          w                                       : Integer;          w                                       : Integer;
9228  begin  begin
9229          If (SelectComboBox.Parent <> nil) and (IsDraggingSelectComboBox) Then begin          If (SelectComboBoxPanel.Visible) and (IsDraggingSelectComboBox) Then begin
9230                  pos.X := X;                  pos.X := X;
9231                  pos.Y := Y;                  pos.Y := Y;
9232                  pos := SelectComboBoxSplitter.ClientToScreen( pos );                  pos := SelectComboBoxSplitter.ClientToScreen( pos );
9233                  w := SelectComboBox.Width + (pos.X - DraggingSelectComboBoxPosition.X);                  //w := SelectComboBox.Width + (pos.X - DraggingSelectComboBoxPosition.X);
9234                    w := SelectComboBoxPanel.Width + (pos.X - DraggingSelectComboBoxPosition.X);
9235    
9236                  If w <= 50 Then Begin                  If w <= 50 Then Begin
9237                          // 次の移動の基準が「過ぎてしまった位置」ではなく                          // 次の移動の基準が「過ぎてしまった位置」ではなく
# Line 9357  begin Line 9243  begin
9243                  End;                  End;
9244    
9245                  // チラつき軽減の為                  // チラつき軽減の為
9246                  If SelectComboBox.Width <> w Then Begin                  //If SelectComboBox.Width <> w Then Begin
9247                          SelectComboBox.Width := w;                  If SelectComboBoxPanel.Width <> w Then Begin
9248                            SelectComboBoxPanel.Width := w;
9249                            SelectComboBox.Width := SelectComboBoxPanel.Width - SelectComboBoxSplitter.Width;
9250                          GikoSys.Setting.SelectComboBoxWidth := w;                          GikoSys.Setting.SelectComboBoxWidth := w;
9251                          DraggingSelectComboBoxPosition := pos;                          DraggingSelectComboBoxPosition := pos;
9252    
# Line 9631  var Line 9519  var
9519          SenderNode: TTreeNode;          SenderNode: TTreeNode;
9520  begin  begin
9521    
9522            if FDropSpaceNode <> nil then begin
9523                    try
9524                            FDropSpaceNode.TreeView.Deselect(FDropSpaceNode);
9525                            FDropSpaceNode.Delete;
9526                    finally
9527                            FDropSpaceNode := nil;
9528                    end;
9529            end;
9530    
9531          SenderNode := FavoriteTreeView.GetNodeAt(X, Y);          SenderNode := FavoriteTreeView.GetNodeAt(X, Y);
9532          if SenderNode <> nil then begin          if SenderNode <> nil then begin
9533                  FavoriteDragDrop( SenderNode, Source );                  FavoriteDragDrop( SenderNode, Source );
9534          end;          end;
9535    
         if FDropSpaceNode <> nil then begin  
                 FDropSpaceNode.Free;  
                 FDropSpaceNode := nil;  
         end;  
9536    
9537  end;  end;
9538    
# Line 9675  begin Line 9568  begin
9568                  VK_SPACE:                  VK_SPACE:
9569                          FavoriteTreeViewDblClick( Sender );                          FavoriteTreeViewDblClick( Sender );
9570                  end;                  end;
9571            end else begin
9572                    //編集中にESCを押したら、編集を終了して、元の文字列に戻す
9573                    if Key = VK_ESCAPE then begin
9574                            if (TTreeView(Sender).Selected <> nil) then begin
9575                                    TTreeView(Sender).Selected.Text := FOrigenCaption;
9576                            end;
9577                            TTreeView(Sender).Selected.Focused := False;
9578                    end;
9579          end;          end;
9580    
9581  end;  end;
# Line 10182  procedure TGikoForm.FavoriteTreeViewEndD Line 10083  procedure TGikoForm.FavoriteTreeViewEndD
10083  begin  begin
10084    
10085          if FDropSpaceNode <> nil then begin          if FDropSpaceNode <> nil then begin
10086                  FDropSpaceNode.Free;                  try
10087                  FDropSpaceNode := nil;                          FDropSpaceNode.TreeView.Deselect(FDropSpaceNode);
10088                            FDropSpaceNode.Delete;
10089                    finally
10090                            FDropSpaceNode := nil;
10091                    end;
10092                  SetLinkBar;                  SetLinkBar;
10093          end;          end;
10094    
# Line 10314  begin Line 10219  begin
10219    
10220  end;  end;
10221    
 procedure TGikoForm.UpBoardActionUpdate(Sender: TObject);  
 begin  
   
         UpBoardAction.Enabled := GetActiveContent <> nil;  
   
 end;  
   
10222  procedure TGikoForm.BrowserTabContextPopup(Sender: TObject;  procedure TGikoForm.BrowserTabContextPopup(Sender: TObject;
10223          MousePos: TPoint; var Handled: Boolean);          MousePos: TPoint; var Handled: Boolean);
10224  var  var
# Line 10766  begin Line 10664  begin
10664    
10665  end;  end;
10666    
 procedure TGikoForm.ResRangeActionUpdate(Sender: TObject);  
 begin  
 //      ResRangeAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
10667  function TGikoForm.WebBrowserClick(Sender: TObject): WordBool;  function TGikoForm.WebBrowserClick(Sender: TObject): WordBool;
10668  var  var
10669          p : TPoint;          p : TPoint;
# Line 10838  procedure TGikoForm.SetFocusForBrowserAc Line 10731  procedure TGikoForm.SetFocusForBrowserAc
10731  begin  begin
10732          FActiveContent.FBrowser.SetFocus;          FActiveContent.FBrowser.SetFocus;
10733  end;  end;
10734    //ブラウザがあって、NULLタブ用のなければ有効になるActionで共通
10735  procedure TGikoForm.SetFocusForBrowserActionUpdate(Sender: TObject);  procedure TGikoForm.SetFocusForBrowserActionUpdate(Sender: TObject);
10736  begin  begin
10737          if( FActiveContent <> nil) and (FActiveContent.Browser <> nil) and  {$IFDEF ACTCHK}
10738                  (FActiveContent.Browser <> BrowserNullTab.Browser) then          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
10739                  SetFocusForBrowserAction.Enabled := true          if (Sender <> nil) and (Sender is TAction) then begin
10740          else  {$ENDIF}
10741                  SetFocusForBrowserAction.Enabled := false;                  if( FActiveContent <> nil) and (FActiveContent.Browser <> nil) and
10742                            (FActiveContent.Browser <> BrowserNullTab.Browser) then
10743                            TAction(Sender).Enabled := true
10744                    else
10745                            TAction(Sender).Enabled := false;
10746    {$IFDEF ACTCHK}
10747            end;
10748    {$ENDIF}
10749  end;  end;
10750    
10751  procedure TGikoForm.SetFocusForThreadListActionExecute(Sender: TObject);  procedure TGikoForm.SetFocusForThreadListActionExecute(Sender: TObject);
 var  
         rct: TRect;  
10752  begin  begin
10753          if FActiveContent <> nil then          if FActiveContent <> nil then
10754                  WebBrowserClick(FActiveContent.Browser); //一回Browserに当てないと動かないときがある                  WebBrowserClick(FActiveContent.Browser); //一回Browserに当てないと動かないときがある
10755          ListView.SetFocus;          ListView.SetFocus;
10756    
10757          if( ListView.Items.Count > 0 ) and (ListView.ItemFocused = nil) then          if( ListView.Items.Count > 0 ) and (ListView.ItemFocused = nil) then
10758                  ListView.Items.Item[0].Selected := true //選択アイテムが無いときは先頭のを選択する                  ListView.Items.Item[0].Selected := true; //選択アイテムが無いときは先頭のを選択する
10759          else if ListView.Items.Count > 0 then begin  
10760                  ListView.Scroll(-ListView.ClientWidth, -ListView.ClientHeight);          //スクロールさせる
10761                  rct := ListView.ItemFocused.DisplayRect(drBounds);          if (ListView.ItemFocused <> nil) then begin
10762                  ListView.Scroll(0, 2 * rct.Top - rct.Bottom);                  ListView.ItemFocused.MakeVisible(False);
                 if ListView.ViewStyle <> vsReport then begin  
                         ListView.Scroll(rct.Left, 0);  
                 end;  
10763          end;          end;
10764  end;  end;
10765    
# Line 10893  begin Line 10789  begin
10789          SetFocusForBrowserAction.Execute;          SetFocusForBrowserAction.Execute;
10790  end;  end;
10791    
 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;  
10792  //スレッド一覧を最大化してフォーカスを当てる  //スレッド一覧を最大化してフォーカスを当てる
10793  procedure TGikoForm.ThreadlistMaxAndFocusActionExecute(Sender: TObject);  procedure TGikoForm.ThreadlistMaxAndFocusActionExecute(Sender: TObject);
10794  begin  begin
# Line 10908  begin Line 10796  begin
10796          SetFocusForThreadListAction.Execute;          SetFocusForThreadListAction.Execute;
10797  end;  end;
10798    
 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;  
   
10799  procedure TGikoForm.SelectTimerTimer(Sender: TObject);  procedure TGikoForm.SelectTimerTimer(Sender: TObject);
10800  begin  begin
10801            SelectTimer.Interval := 0;
10802          if not (ListView.Selected = nil) then          if not (ListView.Selected = nil) then
10803                  if( FActiveContent = nil) or                  if( FActiveContent = nil) or
10804                                  (GetActiveContent <> TThreadItem(ListView.Selected.Data) ) then begin                                  (GetActiveContent <> TThreadItem(ListView.Selected.Data) ) then begin
                         SelectTimer.Interval := 0;  
10805                          ListClick;                          ListClick;
10806                  end;                  end;
10807  end;  end;
# Line 10954  begin Line 10828  begin
10828                          for i := 0 to List.Count - 1 do begin                          for i := 0 to List.Count - 1 do begin
10829                                  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
10830                                          FileSaveAs1.Dialog.FileName := TThreadItem(List[i]).FileName;                                          FileSaveAs1.Dialog.FileName := TThreadItem(List[i]).FileName;
10831                                          if FileSaveAs1.Execute then begin                                          if FileSaveAs1.Dialog.Execute then begin
10832                                                  //なぜかキャンセルでもこっちに入ってくる                                                  CopyFile(PChar(TThreadItem(List[i]).FilePath),
10833                                                  if ExtractFilePath(FileSaveAs1.Dialog.FileName) <> '' then begin                                                  PChar(FileSaveAs1.Dialog.FileName), true);
                                                         CopyFile(PChar(TThreadItem(List[i]).FilePath),  
                                                                 PChar(FileSaveAs1.Dialog.FileName), true);  
                                                 end;  
10834                                          end;                                          end;
10835                                  end;                                  end;
10836                          end;                          end;
# Line 10995  begin Line 10866  begin
10866                          for i := 0 to List.Count - 1 do begin                          for i := 0 to List.Count - 1 do begin
10867                                  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
10868                                          FileSaveAs1.Dialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';                                          FileSaveAs1.Dialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';
10869                                          if FileSaveAs1.Execute then begin                                          if FileSaveAs1.Dialog.Execute then begin
10870                                                  //なぜかキャンセルでもこっちに入ってくる                                                  html := TStringList.Create;
10871                                                  if ExtractFilePath(FileSaveAs1.Dialog.FileName) <> '' then begin                                                  title := TThreadItem(List[i]).Title;
10872                                                          html := TStringList.Create;                                                  try
10873                                                          title := TThreadItem(List[i]).Title;                                                          GikoSys.CreateHTML3(html, TThreadItem(List[i]), title);
10874                                                          try                                                          html.SaveToFile(FileSaveAs1.Dialog.FileName);
10875                                                                  GikoSys.CreateHTML3(html, TThreadItem(List[i]), title);                                                          SkinorCSSFilesCopy(ExtractFilePath(FileSaveAs1.Dialog.FileName));
10876                                                                  html.SaveToFile(FileSaveAs1.Dialog.FileName);                                                  finally
10877                                                                  SkinorCSSFilesCopy(ExtractFilePath(FileSaveAs1.Dialog.FileName));                                                          html.Free;
                                                         finally  
                                                                 html.Free;  
                                                         end;  
10878                                                  end;                                                  end;
10879                                          end;                                          end;
10880                                  end;                                  end;
# Line 11151  begin Line 11019  begin
11019    
11020  end;  end;
11021    
 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;  
   
11022  function TGikoForm.GetTabURLs(AStringList: TStringList) : Boolean;  function TGikoForm.GetTabURLs(AStringList: TStringList) : Boolean;
11023  var  var
11024    rec : TBrowserRecord;    rec : TBrowserRecord;
# Line 11236  var Line 11094  var
11094          GikoTab                 : TGikoTabAppend;          GikoTab                 : TGikoTabAppend;
11095          fileName                : string;          fileName                : string;
11096  begin  begin
11097            if FStartUp then begin
11098                    //起動時にタブ自動復元を入れていると、空ページ用のBrowserの
11099                    //描画が終わっていなくて、クリックイベントの設定等に突入するので
11100                    //ここで終わらせておく
11101                    while (Browser.ReadyState <> READYSTATE_COMPLETE) and
11102                                    (Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
11103                            Application.ProcessMessages;
11104                    end;
11105            end;
11106    
11107          fileName := ExtractFilePath(Application.ExeName) + 'tab.sav';          fileName := ExtractFilePath(Application.ExeName) + 'tab.sav';
11108          URLs := TStringList.Create();          URLs := TStringList.Create();
# Line 11380  begin Line 11247  begin
11247    
11248  end;  end;
11249    
 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;  
11250  //NGワードファイルを編集するために開く  //NGワードファイルを編集するために開く
11251  procedure TGikoForm.EditNGActionExecute(Sender: TObject);  procedure TGikoForm.EditNGActionExecute(Sender: TObject);
11252  begin  begin
11253          GikoSys.FAbon.EditNGwords;          GikoSys.FAbon.EditNGwords;
11254  end;  end;
11255    
 procedure TGikoForm.ThreadRangeActionUpdate(Sender: TObject);  
 begin  
         ThreadRangeAction.Enabled := (GetActiveList is TBoard);  
 end;  
   
11256  procedure TGikoForm.ThreadRangeActionExecute(Sender: TObject);  procedure TGikoForm.ThreadRangeActionExecute(Sender: TObject);
11257  begin  begin
11258          case GikoSys.Setting.ThreadRange of          case GikoSys.Setting.ThreadRange of
# Line 11620  begin Line 11472  begin
11472          end;          end;
11473  end;  end;
11474    
 procedure TGikoForm.JumpToNumOfResActionUpdate(Sender: TObject);  
 begin  
         JumpToNumOfResAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
11475  procedure TGikoForm.FavoriteTreeViewCollapseActionExecute(Sender: TObject);  procedure TGikoForm.FavoriteTreeViewCollapseActionExecute(Sender: TObject);
11476  var  var
11477          node    : TTreeNode;          node    : TTreeNode;
# Line 11660  var Line 11507  var
11507          s: string;          s: string;
11508          Action: TAction;          Action: TAction;
11509          ActStr: string;          ActStr: string;
         Comp : TComponent;  
11510          P : TPoint;          P : TPoint;
11511  begin  begin
11512      //マウス位置の取得      //マウス位置の取得
11513      GetCursorPos(P);          GetCursorPos(P);
11514      //コンポーネント名取得      //コンポーネント名取得
11515      //ギコナビのフォーム外、もしくは、コンテキストメニュー上だとnilが返る          s := MouseGesture.GetGestureStr;
11516      Comp := FindDragTarget(P, True);          ActStr := '';
11517      if (Comp <> nil) then begin          Action := GikoSys.Setting.Gestures.GetGestureAction(s);
11518                  s := MouseGesture.GetGestureStr;          if Action <> nil then
11519                  ActStr := '';                  ActStr := '(' + Action.Caption + ')';
11520                  Action := GikoSys.Setting.Gestures.GetGestureAction(s);          s := 'ジェスチャー: ' + s + ActStr;
11521                  if Action <> nil then          StatusBar.Panels[1].Text := s;
                         ActStr := '(' + Action.Caption + ')';  
                 s := 'ジェスチャー: ' + s + ActStr;  
                 StatusBar.Panels[1].Text := s;  
     end;  
11522  end;  end;
11523    
11524  procedure TGikoForm.OnGestureEnd(Sender: TObject);  procedure TGikoForm.OnGestureEnd(Sender: TObject);
# Line 11705  procedure TGikoForm.ListViewCustomDrawIt Line 11547  procedure TGikoForm.ListViewCustomDrawIt
11547  var  var
11548          ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
11549  begin  begin
11550      DefaultDraw := true;          DefaultDraw := true;
11551          if TObject(Item.Data) is TThreadItem then begin          if TObject(Item.Data) is TThreadItem then begin
11552                  ThreadItem := TThreadItem(Item.Data);                  ThreadItem := TThreadItem(Item.Data);
11553                  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
11554                          ListView.Canvas.Brush.Color := FOddColor;                          ListView.Canvas.Brush.Color := FOddColor;
11555                            //選択されているけど、フォーカスがないと、グレイになるので、太字に変更
11556                            if (GikoSys.Setting.UnFocusedBold) and
11557                             (Item.Selected) and (not ListView.Focused) then begin
11558                                    ListView.Canvas.Font.Style := [fsBold];
11559                            end;
11560                  end else begin                  end else begin
11561                          ListView.Canvas.Brush.Color := FListViewBackGroundColor;                          ListView.Canvas.Brush.Color := FListViewBackGroundColor;
11562                  end;                  end;
11563  //              if (ThreadItem.Kokomade <> ThreadItem.Count) and (ThreadItem.IsLogFile) then  
11564                  if ThreadItem.UnRead then                  if ThreadItem.UnRead then
11565                          ListView.Canvas.Font.Style := [fsBold];                          ListView.Canvas.Font.Style := [fsBold];
11566          end;          end;
# Line 11722  end; Line 11569  end;
11569    
11570  procedure TGikoForm.FormActivate(Sender: TObject);  procedure TGikoForm.FormActivate(Sender: TObject);
11571  begin  begin
         MouseGesture.UnHook;  
11572          if GikoSys.Setting.GestureEnabled then begin          if GikoSys.Setting.GestureEnabled then begin
11573                    MouseGesture.UnHook;
11574                  MouseGesture.OnGestureStart := OnGestureStart;                  MouseGesture.OnGestureStart := OnGestureStart;
11575                  MouseGesture.OnGestureMove := OnGestureMove;                  MouseGesture.OnGestureMove := OnGestureMove;
11576                  MouseGesture.OnGestureEnd := OnGestureEnd;                  MouseGesture.OnGestureEnd := OnGestureEnd;
11577                  MouseGesture.SetHook(Handle);                  MouseGesture.SetHook(Handle);
11578          end else begin          end else begin
11579                    //MouseGesture.UnHook;
11580                  MouseGesture.OnGestureStart := nil;                  MouseGesture.OnGestureStart := nil;
11581                  MouseGesture.OnGestureMove := nil;                  MouseGesture.OnGestureMove := nil;
11582                  MouseGesture.OnGestureEnd := nil;                  MouseGesture.OnGestureEnd := nil;
# Line 11858  begin Line 11706  begin
11706          end;          end;
11707          BrowserTab.Tabs.EndUpdate;          BrowserTab.Tabs.EndUpdate;
11708  end;  end;
11709    //ブラウザタブが2つ以上あれば有効になるアクションで共通化
11710  procedure TGikoForm.RightTabCloseActionUpdate(Sender: TObject);  procedure TGikoForm.RightTabCloseActionUpdate(Sender: TObject);
11711  begin  begin
11712          RightTabCloseAction.Enabled := (BrowserTab.Tabs.Count > 1);  {$IFDEF ACTCHK}
11713            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
11714            if (Sender <> nil) and (Sender is TAction) then begin
11715    {$ENDIF}
11716                    TAction(Sender).Enabled := (BrowserTab.Tabs.Count > 1);
11717    {$IFDEF ACTCHK}
11718            end;
11719    {$ENDIF}
11720  end;  end;
11721    
11722  procedure TGikoForm.LeftTabCloseActionExecute(Sender: TObject);  procedure TGikoForm.LeftTabCloseActionExecute(Sender: TObject);
# Line 11881  begin Line 11736  begin
11736          BrowserTab.Tabs.EndUpdate;          BrowserTab.Tabs.EndUpdate;
11737  end;  end;
11738    
 procedure TGikoForm.LeftTabCloseActionUpdate(Sender: TObject);  
 begin  
         LeftTabCloseAction.Enabled := (BrowserTab.Tabs.Count > 1);  
 end;  
   
11739  procedure TGikoForm.SameIDResAnchorActionExecute(Sender: TObject);  procedure TGikoForm.SameIDResAnchorActionExecute(Sender: TObject);
11740  var  var
11741          ThreadItem : TThreadItem;          ThreadItem : TThreadItem;
# Line 12218  procedure TGikoForm.MessageListViewAdvan Line 12068  procedure TGikoForm.MessageListViewAdvan
12068    Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;    Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
12069    Stage: TCustomDrawStage; var DefaultDraw: Boolean);    Stage: TCustomDrawStage; var DefaultDraw: Boolean);
12070  begin  begin
12071          //if DiffComp then begin                  //if DiffComp then begin
12072                   //if Odd(Item.Index) then Sender.Canvas.Brush.Color := clBlue;                   //if Odd(Item.Index) then Sender.Canvas.Brush.Color := clBlue;
12073                  //DiffComp := False;                                  //DiffComp := False;
12074  //        end;  //        end;
12075  end;  end;
12076    
# Line 12232  end; Line 12082  end;
12082  procedure TGikoForm.BeLogInOutActionUpdate(Sender: TObject);  procedure TGikoForm.BeLogInOutActionUpdate(Sender: TObject);
12083  begin  begin
12084          if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin          if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin
12085          if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true                  if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true
12086          else BeLogInOutAction.Checked := false;                  else BeLogInOutAction.Checked := false;
12087          BeLogInOutAction.Enabled := true                  BeLogInOutAction.Enabled := true
12088      end else          end else
12089          BeLogInOutAction.Enabled := false;                  BeLogInOutAction.Enabled := false;
12090    
12091  end;  end;
12092  //リンクの文字列からレスポップアップ用のURLに変換する  //リンクの文字列からレスポップアップ用のURLに変換する
# Line 12281  begin Line 12131  begin
12131      end;      end;
12132    
12133  end;  end;
12134    //ListViewの選択状態を解除する
12135    procedure TGikoForm.UnSelectedListViewActionExecute(Sender: TObject);
12136    begin
12137            if ListView.Selected <> nil then begin
12138                    ListView.Selected.Focused := True;
12139                    ListView.Selected := nil;
12140            end;
12141    end;
12142    
12143    procedure TGikoForm.ListViewKeyUp(Sender: TObject; var Key: Word;
12144      Shift: TShiftState);
12145    begin
12146            //ブラウザタブ無しで、キー移動で読み飛ばしを可能にするための
12147            //無効時間のTimerの処理
12148            //とりあえず、タイマーを停止する。
12149            SelectTimer.Interval := 0;
12150            if not (GikoSys.Setting.BrowserTabVisible) then begin
12151                    if (GetActiveList is TBoard) then begin
12152                            //Shift Alt Ctrlが話されたときは、方向キーを離していても無視
12153                            if not ((ssShift in Shift) or (ssAlt in Shift) or (ssCtrl in Shift))  and
12154                                    (( Key = VK_LEFT) or (Key = VK_RIGHT) or
12155                                                    (Key = VK_UP) or (Key = VK_DOWN)) then
12156                                            SelectTimer.Interval := GikoSys.Setting.SelectInterval;
12157                    end;
12158            end;
12159    end;
12160    //TActionでGetActiveContentがnil以外で有効になる
12161    procedure TGikoForm.DependActiveCntentActionUpdate(Sender: TObject);
12162    begin
12163    {$IFDEF ACTCHK}
12164            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
12165            if (Sender <> nil) and (Sender is TAction) then begin
12166    {$ENDIF}
12167                    TAction(Sender).Enabled := (GetActiveContent <> nil);
12168    {$IFDEF ACTCHK}
12169            end;
12170    {$ENDIF}
12171    end;
12172    //TActionでGetActiveContentがnil以外かつログを持っている
12173    procedure TGikoForm.DependActiveCntentLogActionUpdate(Sender: TObject);
12174    begin
12175    {$IFDEF ACTCHK}
12176            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
12177            if (Sender <> nil) and (Sender is TAction) then begin
12178    {$ENDIF}
12179                    TAction(Sender).Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);
12180    {$IFDEF ACTCHK}
12181            end;
12182    {$ENDIF}
12183    end;
12184    //TActionでActiveListがTBoardで有効になる
12185    procedure TGikoForm.DependActiveListTBoardActionUpdate(Sender: TObject);
12186    begin
12187    {$IFDEF ACTCHK}
12188            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
12189            if (Sender <> nil) and (Sender is TAction) then begin
12190    {$ENDIF}
12191                    TAction(Sender).Enabled := (GetActiveList is TBoard);
12192    {$IFDEF ACTCHK}
12193            end;
12194    {$ENDIF}
12195    end;
12196    
12197    procedure TGikoForm.FavoriteTreeViewEditing(Sender: TObject;
12198      Node: TTreeNode; var AllowEdit: Boolean);
12199    begin
12200        //編集前の文字列を一時保存する
12201            FOrigenCaption := Node.Text;
12202    end;
12203    //例外処理されなかった例外を処理する
12204    procedure TGikoForm.AppException(Sender: TObject; E: Exception);
12205    var
12206            s : String;
12207    begin
12208            if (Sender <> nil) then begin
12209                    s := ' [' + Sender.ClassName + ']' + #13#10;
12210            end else begin
12211                    s := ' [ Sender is nil ] ' + #13#10;
12212            end;
12213            s := s + E.Message;
12214            MsgBox(Handle, s, '処理されなかった例外', MB_OK or MB_ICONSTOP);
12215    end;
12216    
12217  initialization  initialization
12218                                  OleInitialize(nil);                                  OleInitialize(nil);

Legend:
Removed from v.1.515  
changed lines
  Added in v.1.515.2.27

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