如何以可继承的形式更改工具按钮的顺序?

How can I change the order of ToolButtons in a inheritable form?

我有两种形式。第一个有一个 TToolBar 和两个 TToolButton。第二个继承第一个,多了三个TToolButton。 我在设计时更改了按钮的顺序,将第二种形式的三个按钮放在第一种形式的按钮之前。当应用程序为 运行 时,第二种形式的按钮出现在第一种形式的按钮之后。

有没有办法使用设计时设置的顺序?

不,无法覆盖从祖先窗体继承的按钮的位置。 TToolBar 上的按钮包含在简单的 TList 中,并按创建顺序添加。它们按照它们在 .dfm 文件中出现的顺序创建,并且在继承窗体时,总是首先创建和添加祖先的控件。

即使您在设计时对按钮重新排序,保存表单,然后关闭并重新打开它,布局也只会保留对后代表单工具栏按钮的排序更改,而祖先按钮会再次出现在开头.

这是 TToolBar class 本身的限制。您的选择是编写自定义工具栏或以编程方式管理按钮排列。