gpt4 book ai didi

delphi - 如何使用TControl.Align := alCustom?

转载 作者:行者123 更新时间:2023-12-03 14:57:21 30 4
gpt4 key购买 nike

简单的问题。我有一个包含 3 个组件的面板。它们都具有 Align := alRight。但问题是在运行时它们的顺序与设计时不一样。

我可以使用 alCustom 强制在右边界执行订单吗?我用的是D2007。

最佳答案

是的,您可以进行任何类型的自定义对齐。只需使用控件的 OnAlignInsertBefore() 和 OnAlignPosition() 事件即可。 (这些存在于 Delphi 2007 中,但未发布,因此它们不会出现在对象检查器的“事件”选项卡中;您仍然可以在代码中分配它们。我在下面显示了原型(prototype);它们记录在帮助文件中TAlignInsertBeforeEvent 和 TAlignPositionEvent;您还可以看到 CustomAlignInsertBefore 和 OnAlignInsertBefore。)

TAlignInsertBeforeEvent = function(Sender: TWinControl; 
C1, C2: TControl): Boolean of object;

TAlignPositionEvent = procedure(Sender: TWinControl; Control: TControl;
var NewLeft, NewTop, NewWidth, NewHeight: Integer;
var AlignRect: TRect; AlignInfo: TAlignInfo) of object;

文档包含对这两种方法的参数的很好的描述。

在 Delphi 2010 中,这些事件被发布并显示在对象检查器的“事件”选项卡中。

不过,我从未见过您遇到的问题...您是否尝试将它们全部设置为 alNone,将它们移离右边缘,然后按照您的顺序重新设置 Align := alRight希望他们出现吗?

关于delphi - 如何使用TControl.Align := alCustom?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1808730/

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