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.414 by yoffy, Thu Sep 9 02:26:20 2004 UTC revision 1.415 by yoffy, Thu Sep 9 03:08:00 2004 UTC
# Line 575  type Line 575  type
575      ThreadRangeButton: TToolButton;      ThreadRangeButton: TToolButton;
576          TabAutoSaveAction: TAction;          TabAutoSaveAction: TAction;
577      TabAutoLoadAction: TAction;      TabAutoLoadAction: TAction;
578        ListColumnPopupMenu: TPopupMenu;
579                                  procedure FormCreate(Sender: TObject);                                  procedure FormCreate(Sender: TObject);
580                  procedure FormDestroy(Sender: TObject);                  procedure FormDestroy(Sender: TObject);
581                  procedure CabinetPanelHide(Sender: TObject);                  procedure CabinetPanelHide(Sender: TObject);
# Line 926  type Line 927  type
927      procedure TabAutoSaveActionExecute(Sender: TObject);      procedure TabAutoSaveActionExecute(Sender: TObject);
928      procedure TabAutoLoadActionExecute(Sender: TObject);      procedure TabAutoLoadActionExecute(Sender: TObject);
929      procedure ListViewColumnDragged(Sender: TObject);      procedure ListViewColumnDragged(Sender: TObject);
930        procedure ListViewColumnRightClick(Sender: TObject;
931          Column: TListColumn; Point: TPoint);
932          private          private
933                  { Private 宣言 }                  { Private 宣言 }
934          //RoundList : TRoundList;          //RoundList : TRoundList;
# Line 1087  type Line 1090  type
1090                  procedure ActiveListColumnSave;                  procedure ActiveListColumnSave;
1091                  /// ListView の Column を真のカラムに変換                  /// ListView の Column を真のカラムに変換
1092                  function        ActiveListTrueColumn( column : TListColumn ) : TListColumn;                  function        ActiveListTrueColumn( column : TListColumn ) : TListColumn;
1093                    /// ListColumnPopupMenu アイテムのクリックイベント
1094                    procedure       ListColumnPopupMenuOnClick( Sender : TObject );
1095          protected          protected
1096                  procedure CreateParams(var Params: TCreateParams); override;                  procedure CreateParams(var Params: TCreateParams); override;
1097                  procedure WndProc(var Message: TMessage); override;                  procedure WndProc(var Message: TMessage); override;
# Line 11479  begin Line 11484  begin
11484                    
11485  end;  end;
11486    
11487    procedure TGikoForm.ListViewColumnRightClick(Sender: TObject;
11488            Column: TListColumn; Point: TPoint);
11489    var
11490            i, j    : Integer;
11491            item    : TMenuItem;
11492    begin
11493    
11494            // ポップアップメニューをクリア
11495            for i := ListColumnPopupMenu.Items.Count - 1 downto 0 do
11496                    ListColumnPopupMenu.Items.Items[ i ].Free;
11497    
11498            // メニューの作成 (メインカラムは必須なのでメニューに含めない)
11499            if TObject( FActiveList ) is TBBS then begin
11500    
11501                    //===== カテゴリリスト =====
11502                    for i := 1 to Length( GikoBBSColumnCaption ) - 1 do begin
11503                            item := TMenuItem.Create( ListColumnPopupMenu );
11504                            item.Caption := GikoBBSColumnCaption[ i ];
11505                            item.Tag := i;
11506                            item.OnClick := ListColumnPopupMenuOnClick;
11507                            for j := GikoSys.Setting.BBSColumnOrder.Count - 1 downto 0 do begin
11508                                    if GikoSys.Setting.BBSColumnOrder[ j ] = TGikoBBSColumnID( i ) then begin
11509                                            item.Checked := True;
11510                                            Break;
11511                                    end;
11512                            end;
11513                            ListColumnPopupMenu.Items.Add( item );
11514                    end;
11515    
11516            end else if TObject( FActiveList ) is TCategory then begin
11517    
11518                    //===== 板リスト =====
11519                    for i := 1 to Length( GikoCategoryColumnCaption ) - 1 do begin
11520                            item := TMenuItem.Create( ListColumnPopupMenu );
11521                            item.Caption := GikoCategoryColumnCaption[ i ];
11522                            item.Tag := i;
11523                            item.OnClick := ListColumnPopupMenuOnClick;
11524                            for j := GikoSys.Setting.CategoryColumnOrder.Count - 1 downto 0 do begin
11525                                    if GikoSys.Setting.CategoryColumnOrder[ j ] = TGikoCategoryColumnID( i ) then begin
11526                                            item.Checked := True;
11527                                            Break;
11528                                    end;
11529                            end;
11530                            ListColumnPopupMenu.Items.Add( item );
11531                    end;
11532    
11533            end else if TObject( FActiveList ) is TBoard then begin
11534    
11535                    //===== スレリスト =====
11536                    for i := 1 to Length( GikoBoardColumnCaption ) - 1 do begin
11537                            item := TMenuItem.Create( ListColumnPopupMenu );
11538                            item.Caption := GikoBoardColumnCaption[ i ];
11539                            item.Tag := i;
11540                            item.OnClick := ListColumnPopupMenuOnClick;
11541                            for j := GikoSys.Setting.BoardColumnOrder.Count - 1 downto 0 do begin
11542                                    if GikoSys.Setting.BoardColumnOrder[ j ] = TGikoBoardColumnID( i ) then begin
11543                                            item.Checked := True;
11544                                            Break;
11545                                    end;
11546                            end;
11547                            ListColumnPopupMenu.Items.Add( item );
11548                    end;
11549    
11550            end;
11551    
11552            // メニューの表示
11553            Point := ListView.ClientToScreen( Point );
11554            if ListColumnPopupMenu.Items.Count > 0 then
11555                    ListColumnPopupMenu.Popup( Point.X, Point.Y );
11556    
11557    end;
11558    
11559    /// ListColumnPopupMenu アイテムのクリックイベント
11560    procedure       TGikoForm.ListColumnPopupMenuOnClick( Sender : TObject );
11561    var
11562            i                                       : Integer;
11563            orderList       : TList;
11564            item                    : TMenuItem;
11565    begin
11566    
11567            if not (Sender is TMenuItem) then
11568                    Exit;
11569    
11570            ActiveListColumnSave;
11571            item := TMenuItem( Sender );
11572    
11573            if TObject( FActiveList ) is TBBS then
11574                    orderList := GikoSys.Setting.BBSColumnOrder
11575            else if TObject( FActiveList ) is TCategory then
11576                    orderList := GikoSys.Setting.CategoryColumnOrder
11577            else if TObject( FActiveList ) is TBoard then
11578                    orderList := GikoSys.Setting.BoardColumnOrder
11579            else
11580                    Exit;
11581    
11582            if item.Checked then begin
11583                    // カラムの削除
11584                    for i := orderList.Count - 1 downto 0 do begin
11585                            if Integer( orderList[ i ] ) = item.Tag then begin
11586                                    orderList.Delete( i );
11587                                    Break;
11588                            end;
11589                    end;
11590            end else begin
11591                    // カラムの追加
11592                    orderList.Add( Pointer( item.Tag ) );
11593            end;
11594    
11595            SetActiveList( FActiveList );
11596    
11597    end;
11598    
11599  initialization  initialization
11600                                  OleInitialize(nil);                                  OleInitialize(nil);
11601  finalization  finalization

Legend:
Removed from v.1.414  
changed lines
  Added in v.1.415

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