一个按钮程序中怎么响应其他按钮事件(50分)

  • 主题发起人 主题发起人 LittleWhale
  • 开始时间 开始时间
L

LittleWhale

Unregistered / Unconfirmed
GUEST, unregistred user!
向大虾们请教一个很菜的问题:
一个按钮程序执行中会屏蔽其他消息。怎么让它能处理某一个按钮事件????
不要用processmessage函数,因为它要处理所有的消息,会影响这个程序的运行性能!
多谢!!
 
??
procedure TForm1.Button1Click(Sender: TObject);
begin
.....
Button2Click(Button2);
.....
end;
 
Button2.Click;
 
假如其他按钮的事件即可。
 
; Button1Click(Sender);
 
前面几位的解释好象是自已在程序中调用另一个按钮事件,
不过LittleWhale好象是问如何在程序运行时能响应另一个按钮的事件,
我看只好processmessage发消息,让windows能处理另一个的响应...
 
第一个按钮程序是一个循环,只有在按下第二个按钮时,第一个按钮程序才执行
第二按钮程序
 
这几个按钮的Click事件的优先级是相同的,在一个未处理完,是不可能去处理另一个的
用ProcessMessage也只能处理在ProcessMessage这句话之前的消息,之后的OnClick应
该也得不到处理,除非你在一个循环里不断的ProcessMessage
 
一定要用 Application.ProcessMessage ,程序如下:
var
CanRun: Boolean;

procedure TForm1.Create(Sender: TObject);
begin
CanRun:=False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Repeat
Application.ProcessMessage;
Untile CanRun;
//你的语句
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
CanRun:=True;
end;
 
可能我没把问题说清楚吧!我的意思是用什么方法实现“在第一个按钮程序的执行过程中,能并行的处理按下第二个按钮的消息,并执行它,而在这过程中不会响应其它消息”。
 
第一个程序采用线程来处理就行了。
 
多人接受答案了。
 
后退
顶部