Raize控件的RZGroup动态加载子项时,如何写onclick事件啊?

解决方案 »

  1.   

    写一个通用的click过程,创建子项时,把它的onclick事件指向通用click事件就可以了
      

  2.   


    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, RzPanel, RzGroupBar, ExtCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        procedure Item1Click(Sender:TObject);
        procedure Item2Click(Sender:TObject);
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      FGroupBar:TRzGroupBar;
      FGroup:TRzGroup;
      FItem:TRzGroupItem;
    begin
      FGroupBar:=TRzGroupBar.Create(Self);
      FGroupBar.Parent:=Self;
      FGroupBar.Visible:=True;
      FGroup:=TRzGroup.Create(FGroupBar);
      FGroup.Caption:='test';
      FGroupBar.AddGroup(FGroup);
      FItem:=FGroup.Items.Add;
      FItem.OnClick:=Item1Click;
      FItem.Caption:='1';
      FItem:=FGroup.Items.Add;
      FItem.Caption:='2';
      FItem.OnClick:=Item2Click;
    end;procedure TForm1.Item1Click(Sender: TObject);
    begin
      ShowMessage('1');
    end;procedure TForm1.Item2Click(Sender: TObject);
    begin
      ShowMessage('2');
    end;end.
      

  3.   


    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, RzPanel, RzGroupBar, ExtCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        procedure Item1Click(Sender:TObject);
        procedure Item2Click(Sender:TObject);
        procedure ItemClick(Sender:TObject);
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      FGroupBar:TRzGroupBar;
      FGroup:TRzGroup;
      FItem:TRzGroupItem;
    begin
      FGroupBar:=TRzGroupBar.Create(Self);
      FGroupBar.Parent:=Self;
      FGroupBar.Visible:=True;
      FGroup:=TRzGroup.Create(FGroupBar);
      FGroup.Caption:='test';
      FGroupBar.AddGroup(FGroup);
      FItem:=FGroup.Items.Add;
      FItem.OnClick:=Item1Click;
      FItem.Caption:='1';
      FItem:=FGroup.Items.Add;
      FItem.Caption:='2';
      FItem.OnClick:=Item2Click;
    end;procedure TForm1.Item1Click(Sender: TObject);
    begin
      ShowMessage('1');
    end;procedure TForm1.Item2Click(Sender: TObject);
    begin
      ShowMessage('2');
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      FGroupBar:TRzGroupBar;
      FGroup:TRzGroup;
      FItem:TRzGroupItem;
      i:Integer;
    begin
      FGroupBar:=TRzGroupBar.Create(Self);
      FGroupBar.Parent:=Self;
      FGroupBar.Visible:=True;
      FGroup:=TRzGroup.Create(FGroupBar);
      FGroup.Caption:='test';
      FGroupBar.AddGroup(FGroup);
      for i:=1 to 10 do
      begin
        FItem:=FGroup.Items.Add;
        FItem.OnClick:=ItemClick;
        FItem.Caption:=IntToStr(i);
      end;
    end;procedure TForm1.ItemClick(Sender: TObject);
    begin
      if Sender is TRzGroupItem then
      begin
        ShowMessage(IntToStr((Sender as TRzGroupItem).Index+1));
      end;
    end;end.
    结贴散分吧,呵呵
      

  4.   

    如果有多个FGroup,如何确定是哪一个啊?
      

  5.   

    晕,上面的代码看不懂吗?根据Index来
      

  6.   

    看你的事件是多个GROUP共用还是各个GROUP不同了,共用的话判断SENDER参数