gpt4 book ai didi

delphi - 通过扩展类来设计组件样式

转载 作者:行者123 更新时间:2023-12-03 18:17:04 25 4
gpt4 key购买 nike

从这个问题Passing object in reference / one place to style objects

我只是在想,如果我为我正在设计样式的项目创建一个后代类会怎么样。

例如(请原谅糟糕的代码,不是在 ide 中,但你应该明白我的意思)

TStyledButton = class(TButton)
public
constructor Create; //This overrides the main TButton
end;

constructor TStyledButton.Create;
begin
inherited;
self.Color := clRed;
end;

然后在我的表单中,我只将 Button1 作为 TStyledButton。

这将删除 create 表单中处理设置样式/调用函数以设置样式的所有额外代码。

唯一的问题是,这将如何出现在设计 View 中,我是否必须注册此对象(组件?)以便它在设计 View 中像往常一样实际显示。

最佳答案

当您了解 Delphi packages 时组件编写器,您可以使用 IDE 专家创建新组件,在创建新的设计时包时自动将其添加到组件面板:

首先使用组件/新组件中的 IDE 专家创建它:

New component

New component

出现提示时,选择安装到新包

New package

提供包(文件)名称和描述

Package name

瞧!您的调色板中有了您的新组件:

Component installed

试试这段代码:

  TMyButton = class(TButton)
public
constructor Create(AOwner: TComponent); override;
end;

procedure Register;

implementation
uses Graphics;

{ TMyButton }

constructor TMyButton.Create(AOwner: TComponent);
begin
inherited;
Font.Style := [fsBold];
Caption := 'Click me!';
end;

你会得到这个:

My Button!

关于delphi - 通过扩展类来设计组件样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5438589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com