用户通过右键菜单进行删除group操作,我现在不知道如何判断用户所要删除的是那个group?

解决方案 »

  1.   

    好象不太好控制,
    可以通过鼠标坐标是否在某Group的区域内,
    或者用一变量来记录某个group曾获得过焦点
      

  2.   


    这样可以不?unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, RzGroupBar, Menus;type
      TForm1 = class(TForm)
        RzGroupBar1: TRzGroupBar;
        RzGroup1: TRzGroup;
        RzGroup2: TRzGroup;
        PopupMenu1: TPopupMenu;
        MIDelete: TMenuItem;
        procedure RzGroup1MouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
        procedure RzGroup2MouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
        procedure MIDeleteClick(Sender: TObject);
      private
        { Private declarations }
        curRzGroup:TRzGroup;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.RzGroup1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      curRzGroup:=TRzGroup(Sender);
    end;procedure TForm1.RzGroup2MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      curRzGroup:=TRzGroup(Sender);
    end;procedure TForm1.MIDeleteClick(Sender: TObject);
    begin
      RzGroupBar1.RemoveGroup( curRzGroup );
    end;end.
      

  3.   


    动态创建控制group好像方便了很多
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, RzGroupBar, Menus, StdCtrls;type
      TForm1 = class(TForm)
        RzGroupBar1: TRzGroupBar;
        PopupMenu1: TPopupMenu;
        MIDelete: TMenuItem;
        cmdCreateGroup: TButton;
        procedure MIDeleteClick(Sender: TObject);
        procedure cmdCreateGroupClick(Sender: TObject);
      private
        { Private declarations }
        curRzGroup:TRzGroup;
        procedure RzGroupMouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.MIDeleteClick(Sender: TObject);
    begin
      RzGroupBar1.RemoveGroup( curRzGroup );
      TRzGroup( curRzGroup ).Free;
    end;procedure TForm1.cmdCreateGroupClick(Sender: TObject);
    var
      I:Integer;
      tg:TRzGroup;
    begin
      for i:=0 to 10 do
      begin
        tg:= TRzGroup.Create( Owner );
        tg.Caption:='group'+IntToStr( I );
        tg.OnMouseDown:=RzGroupMouseDown;
        tg.PopupMenu:=PopupMenu1;
        self.RzGroupBar1.AddGroup( tg );
      end;
    end;procedure TForm1.RzGroupMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      curRzGroup:=TRzGroup(Sender);
    end;end.
      

  4.   

    hongqi162 视乎能得到所求的值,但是好像出来两次
      

  5.   

    哈哈,好了,mousedown换成up就好了