如何改进Delphi框架的使用

前端之家收集整理的这篇文章主要介绍了如何改进Delphi框架的使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Delphi中使用了多年的框架,它们是VCL最强大的功能之一,但标准使用它们似乎有一些风险,如:

>在框架的主机表单上意外移动或编辑框架子组件很容易,而不意识到您正在对框架进行“调整” – 我知道这不会影响原始的框架代码,但通常不是您想要的。
>当使用框架时,您仍然会将其子组件暴露在可视化编辑中,即使该框架是多年,也不应该被触摸。

所以我想到了….

>有没有一种“分组”组件的方式,使他们的位置“锁定”?这对于完成的表单和框架将是有用的。通常,其他开发人员向我发送代码,只有形式界限发生了变化,甚至没有任何改变。
>有没有办法将框架及其组件转换成单个Delphi组件?如果是这样,框架内部将被完全隐藏,其可用性将进一步增加

我对任何想法感兴趣…

布莱恩。

解决方法

将框架注册为组件可解决1.和2:

>当您将框架控件放在窗体或其他框架上时,框架上的组件将被锁定
>您将获得一个您可以设计视觉的组件(实际上是:控件)

但是,有几个catch(可以解决,看文章链接),其中最重要的是这一个:

将组件放在框架上,然后将该框架作为组件放在Delphi窗体或框架上时,组件在“结构窗格”中可见。

问题是因为它们在结构窗格中可见,您可以删除它们,从而导致访问冲突。

解决这个到not forget the ‘sprig’的伎俩。
我从Ray KonopkaDelphiLive年度获得了宝贵的教训。

由于课程非常有价值,所以我写了一个blog post,详细描述。

这个小块代码(博客文章中的更多细节)的基本部分是:

procedure RegisterFramesAsComponents(const Page: string; const FrameClasses: array of TFrameClass);
var
  FrameClass: TFrameClass;
begin
  for FrameClass in FrameClasses do
  begin
    RegisterComponents(Page,[FrameClass]);
    RegisterSprigType(FrameClass,TComponentSprig);
  end;
end;

希望这可以帮助。

–jeroen

猜你在找的Delphi相关文章