| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 901 人关注过本帖
标题:问个技术性的问题,实在是想不出解决方法。。。
只看楼主 加入收藏
zhanghj
Rank: 1
来 自:江苏盐城
等 级:新手上路
帖 子:56
专家分:0
注 册:2007-11-24
结帖率:100%
收藏
 问题点数:0 回复次数:2 
问个技术性的问题,实在是想不出解决方法。。。
我做了两个组件X,Y,两个组件里各有一个变量X.a和Y.a,是相同的意义,我想实现X.a变化了那Y.a也自动变化。在组件X内部,X.a的变化是随机的,所以我本来想 在主程序中 一直监视X.a是否变化,变化了就赋给Y.a,但是这样太麻烦了,耗资源。不知道有什么办法能实现  X.a变化了而Y.a也自动变化
搜索更多相关主题的帖子: 技术性 
2009-09-14 10:24
yeye55
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:66
专家分:152
注 册:2007-1-19
收藏
得分:0 
把a设计成属性,只能通过成员函数来访问。

我的百度空间→http://hi.baidu.com/yeye55
2009-09-15 09:38
CityWalker
Rank: 2
等 级:论坛游民
帖 子:5
专家分:13
注 册:2009-9-25
收藏
得分:0 
TX = class(...)
private
  Fa: ...;
  FaChanged: TNotifyEvent;

  procedure SetaProperty(const Value: ...);
public
  property a: ... read Fa writeSetaProperty;
  property aChanged: TNotifyEvent write FaChanged;
end;

实现部分
procedure TX.etaProperty(const Value: ...);
begin
  if a <> Value then
  begin
    a := Value;
    if Assigned(FaChanged) then
      FaChanged(Self);
  end;
end;

=====================================================
那么在实例化 X 时,
  X := TX.Create(...);
  X.aChanged := XaChanged;
其中 XaChanged 是一个类过程, 如:
procedure TForm1.XaChanged(Sender: TObject);
begin
  if Y <> nil then
  begin
    Y.a := X.a;
  end;
end;
2009-09-25 17:53
快速回复:问个技术性的问题,实在是想不出解决方法。。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016649 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved