回 帖 发 新 帖 刷新版面

主题:delphi 线程问题

有个问题请教大家。
1、我想在不影响主程序运行的前提下,监听一个变量,如果变量发生改变,就去执行一个函数?
2、还有一个问题,能不能有一个办法,在程序一有空闲时就去调用一个定义好的函数?
拜托个位!!!!

回复列表 (共1个回复)

沙发

问题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,是描述不清楚的,因为“空闲”是一个相对的概念,而且,机器大部分时候应该属于空闲,那岂不是不断在调用你的函数?与其这样,还不如直接给个定时器触发它好了

我来回复

您尚未登录,请登录后再回复。点此登录或注册