在bitbtn1:=Tbitbtn.Create(form1);所产生的一个BUTTOM中,如何用语句判断它是否被CLICK了?用什么语句判断返回它的真值???

解决方案 »

  1.   

    不太明白你的意思.你想做什么?是不是想给这个BUTTON+CLICK事件??
    如果是的话.请参考:
     FORM1
    ....
    PRIVATE
     procedure BtnCLick(Sender:TObject);
     begin
      // do anything you want.
     end;
    ................
    BitBtn1:=TBitbtn.Create(Form1);
    BitBtn1.OnCLick:=BtnCLick;
    .............///that's all
      

  2.   

    先写一个过程myclick
    在bitbtn1:=Tbitbtn.Create(form1);
      bitbtn1.onclick:=myclick;
      

  3.   

    补充一点..BITBTN:=TBITBTN.CREATE(FORM1);
             BITBTN.PARENT:=FORM1;//或者其他容器类组建..
      

  4.   

    我在CREATEBUTTON事件中定义了BUTTON的各个不同的TAG属性,
    在FOR语句中调用CREATEBUTTON事件生成N个BUTTON,用楼上的方法,在它的ONCLICK事件中,所有的BUTTON都是同一个TAG值,都是最后一个BUTTON的TAG值,我想知道用什么办法可以读出各个BUTTOM的各不相同的TAG值!
      

  5.   

    procedure TFrm_man.FormCreate(Sender: TObject);
    VAR i:integer;
    begin
      for i:=1 to  Qroom.RecordCount do
       begin
         tag1:=inttostr(trim(Qroom.fieldbyname('roomname').asstring)); 
         createbutton(tag1);  
       end;
    end;procedure Tfrm_main.createbutton(tag1:integer);  
    var
      bitbtn1:Tbitbtn;
    begin
      bitbtn1:=Tbitbtn.Create(frm_main);
      bitbtn1.Parent:=frm_main;
      bitbtn1.Tag:=tag1;
      bitbtn1.OnClick:=emptyclick;
    end;procedure Tfrm_lead.emptyclick(Sender:TObject);
    begin
       if datamodule1.Qroom.Locate('roomno',tag1,[]) then
        begin
          roomname_open:=datamodule1.Qroom.FieldByName('roomname').asstring;
        end;
        datamodule1.Qroom.Close;
        Frm_main.Hide;
        frm_empty.show;
    end;每次的roomname_open都是Qroom表中的最后一条记录,我想读取的是不同的,我指定的该BUTTON的TAG不同的值,用什么方法?
      

  6.   

    晕,要真的需要,试试下面的onclick方法吧
    Procedure Btnclick(Sender:TObject); //当事件被触发时,sender是指向事件的触发来源(也就是那个被click的按钮)
    begin
      showmessage(inttostr(TBitbtn(Sender).tag); //强制认定sender的类型为TBitbtn
    end ;
    ...其他不变
      

  7.   

    你试试这个:
    ====================================
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
        procedure myBnt1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    var
      btn1:TButton;
    begin
      btn1:=TButton.Create(Self);
      with btn1 do
      begin
        Parent:=Self;
        Top:=50;
        Left:=120;
        Width:=80;
        Height:=35;
        Caption:='动态控件';
        onClick:=myBnt1Click;
      end;
    end;procedure Tform1.myBnt1Click(Sender: TObject);
    begin
     if MessageDlgPos('btn1是动态生成的控件,单击事件已经触发'
        +#10+'是否要退出?',mtConfirmation, [mbYes, mbNo],
        0,400,350) = mrYes then
      begin
        MessageDlg(退出单击事件', mtInformation,
          [mbOk], 0);
        Close;
      end;  
    end;end.
      

  8.   

    procedure Tfrm_lead.emptyclick(Sender:TObject);
    begin
       if datamodule1.Qroom.Locate('roomno',Tbitbtn(Sender).tag,[]) then
        begin
          roomname_open:=datamodule1.Qroom.FieldByName('roomname').asstring;
        end;
        datamodule1.Qroom.Close;
        Frm_main.Hide;
        frm_empty.show;
    end;