帮我看看 这段代码,为什么不是按想的那样执行? ( 积分: 50 )

  • 主题发起人 主题发起人 chuanxue
  • 开始时间 开始时间
C

chuanxue

Unregistered / Unconfirmed
GUEST, unregistred user!
代码如下。当程序运行后,第一次点按钮会弹出“1”消息窗,但不弹出“hello one”消息窗,但以后点时都 只弹出“hello one”而不弹出“1”了。请问是怎么回事?如何才能每次都是先弹出“1”,再弹出“hello one”?
procedure TForm1.Onddclick(Sender:TObject);
begin
showmessage('hello one');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage('1');
button1.OnClick:=onddclick;
end;
 
代码如下。当程序运行后,第一次点按钮会弹出“1”消息窗,但不弹出“hello one”消息窗,但以后点时都 只弹出“hello one”而不弹出“1”了。请问是怎么回事?如何才能每次都是先弹出“1”,再弹出“hello one”?
procedure TForm1.Onddclick(Sender:TObject);
begin
showmessage('hello one');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage('1');
button1.OnClick:=onddclick;
end;
 
晕,这不就得啦
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage('1');
showmessage('hello one');
end;
 
因为你已经用Onddclick事件替代了Button1Click,也就是说,你点击第一次后,事件被替代,以后你再点击的时候,执行的代码是Onddclick里的代码
 
能不能,在第一次点时就执行onddclick里面的代码。
to lichengbin:
我早知道行,可是有很长一段相同的代码要在不同的地方执行时,还那个样啊。我这只是简化。
 
放到Formshow实践里
begin

button1.OnClick:=onddclick;
end;
 
放到formshow 里,后button的事件里还用不用?
 
十分感谢,便是“1”消息窗显示不出来了?
 
如何才能两个都显示出来?????
 
顶,来自:lichengbin
 
无法实现?不会吧!
 
垃圾问题,一点脑子也不动,大家不要回答
 
可以尝试这样:
加入 Button2 控件(类似也可),事件为:
procedure TForm1.Button2Click(Sender: TObject);
begin
button2.OnClick:=onddclick;
end;

然后 Button1的事件改为:
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage('1');
button2.Click;
end;
 
多人接受答案了。
 
这句是赋值button1.OnClick:=onddclick;但没有执行.直接调用Form1.Onddclick就行乐
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
750
import
I
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部