Unit1 单元有
      
      procedure XinxiExecute(Sender: TObject);  
      begin
        if  判断sender的值,如果是speedbutton1则 then
        begin
          …………
        end
        else if 判断sender的值,如果是speedbutton2则 then
        begin
          …………
        end;
      end;    Unit2 单元中调用
      
      procedure TForm2.SpeedButton1Click(Sender: TObject);
      begin
         form1.XinxiExecute(sender);
      end;       procedure TForm2.SpeedButton2Click(Sender: TObject);
      begin
         form1.XinxiExecute(sender);
      end; 
 
在unit1单元中如何判断sender的值?  

解决方案 »

  1.   

    if (sender=speedbutton1) thenif (sender=speedbutton2) then
      

  2.   

    if (sender is speedbutton1) thenif (sender is speedbutton2) then
      

  3.   

    sender 这个参数是 Tobject(对象)类型的。
    如果你这样调用:如下
     procedure TForm2.SpeedButton1Click(Sender: TObject);
          begin
             form1.XinxiExecute(sender);
          end;
    那么这个sender 是TForm2.SpeedButton1Click(Sender: TObject);这行代码中的sender.
     即是 speedButton1 这个按钮。那么这个 procedure XinxiExecute(Sender: TObject);  
     接收到的是 speedButton1 .
    当然你也可以传空值。 如:form1.XinxiExecute(nil); 
    如果你要判断sender的值。你可以这样写:
    procedure XinxiExecute(Sender: TObject);  
    begin
       if Sender is TspeedButton then
          if TspeedButton(sender).name='speedbutton1' then
          begin
           //加入你的代码
          end else if TspeedButton(sender).name='speedbutton2' then
          begin
            //加入你的代码
          end;
    end;
      

  4.   

    sender 这个参数是 Tobject(对象)类型的。
    如果你这样调用:如下
     procedure TForm2.SpeedButton1Click(Sender: TObject);
          begin
             form1.XinxiExecute(sender);
          end;
    那么这个sender 是TForm2.SpeedButton1Click(Sender: TObject);这行代码中的sender.
     即是 speedButton1 这个按钮。那么这个 procedure XinxiExecute(Sender: TObject);  
     接收到的是 speedButton1 .
    当然你也可以传空值。 如:form1.XinxiExecute(nil); 
    如果你要判断sender的值。你可以这样写:
    procedure XinxiExecute(Sender: TObject);  
    begin
       if Sender is TspeedButton then
          if TspeedButton(sender).name='speedbutton1' then
          begin
           //加入你的代码
          end else if TspeedButton(sender).name='speedbutton2' then
          begin
            //加入你的代码
          end;
    end;
      

  5.   

    if (sender=N13)or(sender=speedbutton1) then   注speedbutton1是另一个窗体的
      begin
       ……………
      end
      else if sender=N22 then
      begin
        ………………
      end;    如何实现?
      

  6.   

    if (sender=N13)or(TSpeedButton(sender).name='speedbutton1') then   注speedbutton1是另一个窗体的
      begin
       ……………
      end
      else if sender=N22 then
      begin
        ………………
      end;