如何得到在设计期间控件属性变化事件?
例如有两个属性,在object instecpor中改变其中一个属性值,控件能根据改变的属性值,改变另一个属性值.

解决方案 »

  1.   

    private
      FProp1,FProp2:string;
      procedure SetProp1(const Value:string);
    published
    property prop1:string read FProp1 write SetProp1;
    property prop2:string read FProp2 write FProp2;....procedure TMyComponent:SetProp1(const Value:string);;
    begin
    if FProp1<>Value then
    begin
      FProp1:=Value
      FProp2:=//在此处改变另一个属性
    end;
    end;
      

  2.   

    举个例,在你的控件中这两个属性分别为:
    property p1:integer read Fp1 write Setp1;
    property p2:integer read Fp2 write Setp2;
    现在要求改变p1时,p2也自动改变,要求p2始终比p1大10。你可以在Setp1中来做这个操作。
    procedure Txobj.Setp1(value: Integer);
    begin
      Fp1 := Value;
      Fp2 := Value + 10;                        //加上这一句就可以了
    end;为什么不认真看书呢?这叫什么高难啊!!!
      

  3.   

    结构:
    Property 属性 read F属性 write F属性如果把 “write F属性” 后面的“F属性”改为一个“过程”,
    那么,当“属性”改变时便执行你定义的此“过程”。需要注意的是:
    根据改变其中一个属性值,改变另一个属性值,
    1、你要注意不要死循环
    2、似乎开发控件有个规则:任何属性、方法、过程
        不能相互依赖、影响,也不能有先后顺序,不知道你 ...!!!