如何在 Delphi 中创建 TMS TAdvPage 的派生组件

Posted

技术标签:

【中文标题】如何在 Delphi 中创建 TMS TAdvPage 的派生组件【英文标题】:How to create a derived component of TMS TAdvPage in Delphi 【发布时间】:2017-07-08 11:03:35 【问题描述】:

我正在使用 TMS 组件库对软件进行编程。具体到这个问题,我正在使用组件 tAdvToolBarPager。

这允许我创建不同的 tAdvPage。 (就像一个工具栏)想想你有类似页面的 MsOffice;文件、首页、页面布局、数据等……

我发现自己想要重复使用我在其他应用程序中创建的页面。

例如,我的页面“数据”具有处理来自 RS 232 端口或通过网络的串行数据所需的所有控件。

我的“数据”页面:

目前,我将页面和所有相关代码从一个应用程序复制并粘贴到另一个应用程序。

我确信我不需要解释这是多么不切实际。

由于没有更好的词,或者它可能是正确的词,我想创建一个派生组件,我可以从 IDE 工具面板拖放到我的应用程序中。这个“组件”将拥有所有控件+代码,以便自给自足。 (就像一个小应用程序)另外,如果我更改“组件”代码,它将适用于我使用该组件的所有软件。当然,我需要能够轻松访问“组件”中的所有控件;文本框、组合框等

我快速浏览了一下创建组件,发现它看起来非常复杂,因为没有视觉元素。 (我的一些页面比我提供的示例更复杂)

有没有一种简单的方法可以将我的页面 + 代码的可视组件复制并粘贴到“组件”。如果没有,我该怎么办?

在将无边框表单停靠到面板之前,我使用了框架方法,但我想知道是否有“更清洁”的方法来做到这一点。

如果有人能给我举个例子,我可能会弄清楚。唉,我在网上找到的东西让我有点困惑,我不太确定什么是最好的方法了。

例如:在 Tpanel 中绘制一个 TButton + Tedit。按下按钮 = 编辑框中的“hello world”。从 Tpanel 创建“组件”。 (我可以从那里拿走它)

我是中级自我思考者,不是全职程序员,这可能是一个愚蠢的问题,但我不想走错路并意识到我需要重新开始一切......

谢谢, E.

【问题讨论】:

原来我找到了关于这个话题的答案:***.com/questions/20723605/… 【参考方案1】:
type
   TMyPager = class( TAdvToolBarPager)
   private
      ....
   protected
      procedure Click;override;
   public
      procedure MyNewProcedure;
   published
      property 
       .....
       .....
      constructor Create(aowner:Tcomponent); override;
end;

procedure Register;

implementation

procedure Register;
begin
   RegisterComponents('My Component', [TMyPager]);
end;

constructor TMyPager.Create(aowner:Tcomponent);
begin
   inherited create(Aowner);
end;

procedure TMyPager.Click;
begin
   inherited click;
    .....
    .....
end;

procedure TMyPager.MyNewProcedure;
begin
   ......
   ......
end;

end.

【讨论】:

感谢您的努力,但它没有提供足够的细节来回答我的问题。找到了一个帮助我弄清楚的链接。干杯

以上是关于如何在 Delphi 中创建 TMS TAdvPage 的派生组件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Delphi XE2 中安装 TMS Component Pack 6.0?

使用 IIS 在 Delphi 2009 中创建 REST Web 服务

delphi TMS FlexCel Sheet工作表新增复制

在delphi 2009 中创建一个gif 动画文件?

使用 Delphi 在 Google 日历中创建事件 - 错误 401

Delphi7下安装TMS component控件