主题:delphi 线程问题
wanghejiang
[专家分:0] 发布于 2012-07-10 21:06:00
有个问题请教大家。
1、我想在不影响主程序运行的前提下,监听一个变量,如果变量发生改变,就去执行一个函数?
2、还有一个问题,能不能有一个办法,在程序一有空闲时就去调用一个定义好的函数?
拜托个位!!!!
回复列表 (共1个回复)
沙发
SupermanTm [专家分:130] 发布于 2012-08-05 16:29:00
问题1是很好解决的,定义一个全局对象:
type
TGlobalVar = class(TObject)
private
FMyVar: Integer; // 可以定义成任意自己的类型
procedure SetMyVar(Value: Integer);
public
OnMyVarChange: TNotifyEvent;
constructor Create;
property MyVar: Integer read FMyVar write SetMyVar;
end;
implementation
constructor TGlobalVar.Create;
begin
OnMyVarChange:= nil;
MyVar:= 0;
end;
procedure TGlobalVar.SetMyVar;
begin
if Value <> FMyVar then
begin
MyVar:= Value;
if Assigned(OnMyVarChange) then OnMyVarChange(Self);
end;
end;
运用时,只要给这个对象的 OnMyVarChange 方法给个入口,当变量改变时,就会调用该方法
至于方法2,是描述不清楚的,因为“空闲”是一个相对的概念,而且,机器大部分时候应该属于空闲,那岂不是不断在调用你的函数?与其这样,还不如直接给个定时器触发它好了
我来回复