3

有一些类似的问题与解决方案,但没有人回答我的问题,所以在这里。

使用 a 进行TPanel折叠/展开TButton在它上面是可笑的简单,或者我是这么认为的。我到处玩,将按钮放在最顶部(用于从上到下扩展/折叠高度)或左侧(用于从左到右扩展/折叠宽度)一切都按计划进行。事实上,所有可扩展/可折叠的“高级”面板都以完全相同的方式工作 - 按钮仅放置在顶部或左侧。很快我就撞墙了:如果您将按钮分别放在底部或右侧以扩展/折叠高度或宽度,则按钮将停留在它们所在的位置......客户区(?) - 我缺乏解释的知识这是正确的,但我认为在另外指出之前很清楚正在发生什么。关键是,按照我这样做的方式,唯一的解决方案是在面板中重新定位按钮,

所以问题是:我怎样才能正确地做到这一点?因为我调整面板大小然后重新定位按钮的想法看起来不是解决这个问题的正确方法。或者,我很乐意采用一些这样做的组件,但是从我检查过的组件中,所有组件的行为都相同,甚至 JEDI VCLTJvRollOut组件也只能将Placement(按钮/标题的)设置为plTopor plLeft,所以我在想这不是那么简单吗?

4

2 回答 2

6

将您的按钮Anchors属性设置为[akLeft, akBottom].

在此处输入图像描述

于 2012-06-13T14:35:54.503 回答
0

delphi中有两个属性可以调整任意工具的对齐方式:

  1. 对齐(alNone、alLeft、alRight、alTop....)

  2. 锚点(akLeft、akRight、akTop、akBottom)

例如,您有一个面板并在 TPanel 上拖动一个 TEdit。现在,您希望 TEdit 仅占据 TPanel 的左上角,并且它与面板的底角和右上角的距离应保持不变,无论面板大小如何变化(这意味着如果您沿底角或右角扩展面板,TEdit 会扩展)。

  1. 设置对齐-> alNone。(不是 alLeft 否则 tEdit 将占据面板上的整个左侧区域,而不仅仅是左上角)。
  2. 设置锚点-> akLeft=akTop=akRight=akBottom=True。如果您设置 akLeft=akTop=True 和 akRight=akBottom=False: 那么 TEdit 的大小在展开面板上沿底角或右上角保持不变。
于 2012-06-13T17:56:55.590 回答