to whbo(王红波(以后不能午休了)) 你在主程序用view as text把代码改下看??? 什么意思哦?
TIMER并没有单独开线程,只是利用了操作系统的定时消息机制;
在循环中加Application.ProcessMessages;
是在每一个while循环都需要Application.ProcessMessages;??
while 1=1 do begin Application.ProcessMessages; r:=TV_GetDTMFChar(channel); if r=35 then begin Break; end else begin sCome:= sCome+ chr(r); end; end; 是这样吗???
begin r:=TV_GetDTMFChar(channel); if r=35 then Break else begin sCome:= sCome+ chr(r); end; Application.ProcessMessages; end;Application.ProcessMessages的作用是:在程序执行过程中,还是在不断的接受来自程序外部的消息(如:鼠标、键盘等)。应用这个函数可以避免程序发生呆死现象。请楼主试一下,毕竟实践才是检验真理的唯一标准。 ^_^
在什么地方加??
你在主程序用view as text把代码改下看???
什么意思哦?
begin
Application.ProcessMessages;
r:=TV_GetDTMFChar(channel);
if r=35 then
begin
Break;
end
else
begin
sCome:= sCome+ chr(r);
end;
end;
是这样吗???
{
r:=TV_GetDTMFChar(channel);
if r=35 then
begin
Break;
end
else
begin
sCome:= sCome+ chr(r);
end;
end;
Application.ProcessMessages;
end;
是不是要用到线程同步??
r:=TV_GetDTMFChar(channel);
if r=35 then Break
else
begin
sCome:= sCome+ chr(r);
end;
Application.ProcessMessages;
end;Application.ProcessMessages的作用是:在程序执行过程中,还是在不断的接受来自程序外部的消息(如:鼠标、键盘等)。应用这个函数可以避免程序发生呆死现象。请楼主试一下,毕竟实践才是检验真理的唯一标准。
^_^