我自己写的ocx,其中加了一个image组件,在object inspector面板中
居然没有visible属性可供设置,不过,可以直接通过.visible属性设置,
可是设置了之后,控件还是可见的。
即使我在自动生成的
procedure TSComMonitor.Set_Visible(Value: WordBool);
begin
  Visible := Value;
end;
中加上
procedure TSComMonitor.Set_Visible(Value: WordBool);
begin
  Visible := Value;
  Image1.visible := value;
end;
其image1是看不见了,可还是会有一个框在引用的窗体上,请问,如何才能
让整个ocx都变为不可见的。

解决方案 »

  1.   

    我研究过了。现象是这样的:
    在引用窗体的FormCreate中执行
        SComMonitor1.Visible := false;
    不起作用。
    在引用窗体的FormShow过程中执行
        SComMonitor1.Visible := false;
    就可以了。
    可是为什么会这样呢?
    我自己写的ActiveForm,中间没有任何地方
    修改过其Visible属性,可是为什么会出现这两个现象?
    1   object inspector中没有visible属性
    2   在FormCreate中设置visible无用,而非要在FormShow中设置才有用不懂,请大侠们指定迷津,不胜感激。
      

  2.   

    没弄过这个现象,可能是VCL的机制问题