这样
生成CheckBox的时候加上
CheckBox1.OnClick := CheckBox1OnClick;
然后定义这个过程就可以了 procedure CheckBox1OnClick(Sender: TObject);

解决方案 »

  1.   

    好像不行呀,ilang(中雨)老兄!
      

  2.   

    怎么不行啊 乱说
      procedure cbOnClick(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      cb: TCheckBox;
    begin
      cb := TCheckBox.Create(self);
      cb.Parent := Form1;
      cb.Caption := 'xx';
      cb.OnClick := cbOnClick;
    end;procedure TForm1.cbOnClick(Sender: TObject);
    begin
      beep;
    end;
      

  3.   

    ilang(中雨) 回答的没错,你可以再仔细试试
      

  4.   

    ilang(中雨) 回答的没错,你可以再仔细试试
      

  5.   

    我是定义了一个数组控件即abc:array[0..100] of Tcheckbox;
    我要求在每一个checkbox的click事件是这样:
    i的值是1到100
    if abc[i].checked then
      showmessage(inttostr(i));
    这该怎么写?
      

  6.   

    type
        TFormNewFile = class(TForm)
            imgView: TImageList;
            pcTemplate: TPageControl;
            procedure FormCreate(Sender: TObject);
            procedure ListViewDblClick(Sender: TObject);
        private
            { Private declarations }
            FTemplateCode: string;
            procedure SetTemplateCode(const Value: string);
        public
            { Public declarations }
            property TemplateCode: string read FTemplateCode write SetTemplateCode;
        end;var
        FormNewFile     : TFormNewFile;
    function AddNewFile: string;
    implementation
    uses FrmMain;
    {$R *.DFM}function AddNewFile: string;
    var
        FormNewFile     : TFormNewFile;
    begin
        FormNewFile := TFormNewFile.Create(Application);
        try
            FormNewFile.Visible := False;
            if FormNewFile.ShowModal = mrOk then
            begin
                result := FormNewFile.TemplateCode;
            end
            else
            begin
                result := '';
            end;
        finally
            FormNewFile.Free;
        end;end;procedure TFormNewFile.SetTemplateCode(const Value: string);
    begin
        FTemplateCode := Value;
    end;procedure TFormNewFile.FormCreate(Sender: TObject);
    var
        vATabSheet      : array of TTabSheet;
        vAListView      : array of TListView;
        vlistViewItem   : TListItem;
        i, iRecord      : integer;
    begin
        FormMain.tblTreeViewTemp.Active := True;
        FormMain.tblTreeViewTemp.Filter := 'NodeClass=2';
        FormMain.tblTreeViewTemp.Filtered := True;
        iRecord := FormMain.tblTreeViewTemp.RecordCount;
        FormMain.tblTreeViewTemp.First;
        SetLength(vATabSheet, iRecord);
        SetLength(vAListView, iRecord);
        for i := 0 to iRecord - 1 do
        begin
            vATabSheet[i] := TTabSheet.Create(self);
            try
                vATabSheet[i].PageControl := pcTemplate;
                vATabSheet[i].Caption :=
                    Trim(FormMain.tblTreeViewTemp.FieldByName('Text').asString);
                vAListView[i] := TListView.Create(self);
                vAListView[i].Parent := vATabSheet[i];
                vAListView[i].Align := alClient;
                vAListView[i].LargeImages := imgView;
                vAListView[i].Hint :=
                    Trim(FormMain.tblTreeViewTemp.FieldByName('Code').asString);
                vAlistView[i].ViewStyle := vsIcon;
                vAlistView[i].OnDblClick := ListViewDblClick;
                vAlistView[i].ReadOnly := True;
            finally
            end;
            FormMain.tblTreeViewTemp.Next;
        end;
        for i := 0 to iRecord - 1 do
        begin
            FormMain.tblTreeViewTemp.Filtered := False;
            FormMain.tblTreeViewTemp.Filter := 'FatherCode=' + '''' +
                Trim(vAListView[i].Hint) + '''';
            FormMain.tblTreeViewTemp.Filtered := True;
            FormMain.tblTreeViewTemp.First;
            while not FormMain.tblTreeViewTemp.Eof do
            begin
                vlistViewItem := vAListView[i].Items.Add;
                try
                    vListViewItem.Caption :=
                        Trim(FormMain.tblTreeViewTemp.FieldByName('Text').asString);
                    vListViewItem.SubItems.Add(Trim(FormMain.tblTreeViewTemp.FieldByName('Code').asString));
                    vListViewItem.ImageIndex := 0;
                finally
                end;
                FormMain.tblTreeViewTemp.Next;
            end;
        end;
    end;procedure TFormNewFile.ListViewDblClick(Sender: TObject);
    begin
        TemplateCode := TListView(Sender).Selected.SubItems[0];
        ModalResult := mrOk;
    end;end.
      

  7.   

    YourControl.OnClick := YourProc;
      

  8.   

    ilang(中雨) 的方法应该没问题
      

  9.   

    procedure TForm1.Click(Sender:TObject);
    begin
     //
    end;var
      B:TButton;
    begin
      B:=TButton.Create(Self);
      B.Parent:=Form1;
      B.OnClick:=Click
    end;
      

  10.   

    Rich_Zhou(傻乎乎的同舟)你的我看不懂!
      

  11.   

    procedure TForm1.Click(Sender:TObject);
    begin
      if Sender.Checked then
        ShowMessage(Sender.Caption);
    end;var
      B:TButton;
    begin
      B:=TButton.Create(Self);
      B.Parent:=Form1;
      B.OnClick:=Click;
    end;
      

  12.   

    procedure TForm1.Click(Sender:TObject);
    begin
      if Sender.Checked then
        ShowMessage(Sender.Caption);
    end;var
      B:TCheckBox;
    begin
      B:=TCheckBox.Create(Self);
      B.Parent:=Form1;
      B.OnClick:=Click;
    end;
      

  13.   

    生成CheckBox的时候加上
    CheckBox1.OnClick := CheckBox1OnClick;
    然后定义这个过程就可以了 procedure CheckBox1OnClick(Sender: TObject);
    要把procedure CheckBox1OnClick(Sender: TObject);加到form的type中去。
    要不然程序不认同的。
      

  14.   

    procedure TFormNewFile.ListViewDblClick(Sender: TObject);
    begin
        TemplateCode := TListView(Sender).Selected.SubItems[0];
        ModalResult := mrOk;
    end;
    是给定的ListView控件数组的DblClick方法的定义
    vAListView[i] := TListView.Create(self);
    vAListView[i].Parent := vATabSheet[i];
    vAListView[i].Align := alClient;
    vAListView[i].LargeImages := imgView;
    vAListView[i].Hint :=Trim(FormMain.tblTreeViewTemp.FieldByName('Code').asString);
    vAlistView[i].ViewStyle := vsIcon;
    vAlistView[i].OnDblClick := ListViewDblClick;
    vAlistView[i].ReadOnly := True;
    是对动态生成的ListView控件进行属性定义
    vAlistView[i].OnDblClick := ListViewDblClick;
    是对所有的ListView控件的OnDblClick进行句柄定义,将其定义为ListViewDblClick,即上面定义的
    procedure TFormNewFile.ListViewDblClick(Sender: TObject);
    begin
        TemplateCode := TListView(Sender).Selected.SubItems[0];
        ModalResult := mrOk;
    end;
    对于ListViewDblClick的声明部分需要和TListView.OnListView声明相符
      

  15.   

    click事件有一个sender参数,调用这个参数的名称就可以得出是那一个checkbox被单击了。
    具体的用法是
    (sender as Tcheckbox).name