怎样在BITBTN2click中调用BITBTN1CLICK事件?(20分)

  • 主题发起人 主题发起人 pokar
  • 开始时间 开始时间
P

pokar

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TInvoice_print.BitBtn3Click(Sender: TObject);
begin
bitbtn1click; or bitbtn1click(); or bitbtn1click(Sender: TObject);
end;

都出错:Not Enough actual parameters
 
请看以下代码:(同样的代码已经贴了好多次了)

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
showmessage('this is the second BitBtn');
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
BitBtn2Click(Sender);
end;
 
BitBtn1Click(Sender);
 
BitBtn1.Click;
or
BitBtn1Click(nil);
or
BitBtn1Click(Sender);
 
BitBtn1Click(Sender);
or
BitBtn1Click(Self);
or
直接在bitbtn2的onclicl事件中选bitbtnclicl事件,这样就两者完全公用
同一事件,
 
几种方法的区别在于

BitBtn1.Click;相应于点击一次BitBtn1,调用代码的主体是BitBtn1,不管你是点击了
BitBtn1还是点击BitBtn2,程序都以为你是点击BitBtn1触发了该事件;

BitBtn1Click(nil);只是执行一个次BtnBtn1的Click事件中的代码,没有调用的主体,
程序不知道是谁触发了该事件;

BitBtnClick(Sender);和楼上所说的直接在BitBtn2的OnClick事件中选BitBtnClick事件
则是执行了代码,同时也传递了调用的主体,程序可以知道这次执行代码是由点击BitBtn2
触发的,还是由点击BitBtn1触发的。

BitBtn1Click(Self);则是把当前的Form做为主体传入,程序误以为是Form触发了该事件。

这就是以上几种方式的区别,在编程中往往可以利用这些差别编写出精简而又巧妙的代码。
 
大家注意到没有,如果click事件中有如下的语句
bitbtn1.Font.Color:= clblue;
但我想按下bitbtn2它的字体颜色也会改变,该如何写
 
bitbtn2的onclick事件中写入
……
bitbtn1.Font.Color:= clblue;
……
 
后退
顶部