且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在设计时创建将不会存储在表单中的组件?

更新时间:2023-01-25 11:18:00

有两种处理方法


  1. 在设计时根本不要创建 TShadowEffect 对象开始的时间:

procedure TALRectangle.ShadowChanged(Sender: TObject);
begin
  ...
  if fShadow.Enabled and not (csDesigning in ComponentState) then begin
    fShadowEffect := TShadowEffect.Create(Self);
    fShadowEffect.Parent := Self;
  end;
  ...
end;


  • 如果必须创建它,则设置其 已存储 属性设置为false:

  • if you must create it, then set its Stored property to false:

    procedure TALRectangle.ShadowChanged(Sender: TObject);
    begin
      ...
      if fShadow.Enabled then begin
        fShadowEffect := TShadowEffect.Create(Self);
        fShadowEffect.Parent := Self;
        fShadowEffect.SetSubComponent(True);
        fShadowEffect.Stored := False;
      end;
      ...
    end;