Forms 如何将标签置于编辑控件之上

Forms 如何将标签置于编辑控件之上,forms,delphi,controls,Forms,Delphi,Controls,我正试图建立一个用于研究的TEdit,因此,如果有一个显示“当前”/“计数”的标签,那就太好了,在Google Chrome中按CTRL+F可以观察到: 似乎TLabel控件总是放在TEdit控件后面。 我还尝试了label1.BringToFront(在设计时和运行时),但没有效果。有没有一种方法可以将标签放置在编辑控件上?TLabel继承自tgraphicsontrol,它无法显示在窗口控件的顶部,无论您尝试使用BringToFront多少次,它都不会发生 但是,您可以使用容器控件,如T

我正试图建立一个用于研究的TEdit,因此,如果有一个显示“当前”/“计数”的标签,那就太好了,在Google Chrome中按CTRL+F可以观察到:

似乎TLabel控件总是放在TEdit控件后面。


我还尝试了label1.BringToFront(在设计时和运行时),但没有效果。有没有一种方法可以将标签放置在编辑控件上?

TLabel
继承自
tgraphicsontrol
,它无法显示在窗口控件的顶部,无论您尝试使用
BringToFront
多少次,它都不会发生

但是,您可以使用容器控件,如
TPanel
,该控件可用于包含
TEdit
TLabel
控件,请参见下图作为示例:

这是一种快速而肮脏的方式,它只是一个
TPanel
,包含一个
TEdit
TLabel
作为子控件


然而,首选的方法是创建您自己的控件,这将给您充分的灵活性。通常尝试将多个VCL控件拼凑在一起以显示和运行您想要的方式通常并不理想,因此,通过自定义方式,您可以获得更多的自由和可能性。

这就是
TStaticText
控件所能做的。但是最好将文本直接绘制到控件中。别忘了用
EM_SETMARGINS
消息剪裁编辑框输入矩形。在我看来,你的整个方法都是错误的。这需要一个自定义控件。
TLabel
继承自
TGraphicControl
,该控件不能显示在窗口控件的顶部。就像其他人说的那样,你真的更适合为此创建自己的自定义控件。多亏了大家的建议,我将定义一个自定义控件。