问题标签 [tlabel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1471 浏览

delphi - 确定 TLabel 的宽度

你好堆栈溢出用户

我有TGroupBox一个TLabel在里面。有了这个TLabel,我想显示候选人的姓氏和名字。有些候选人有不止一个名字,有时三个,当这种情况发生时,TLabel并不总是适合我的TGroupBox. 发生这种情况时,我只显示姓氏、名字,其余的只显示为首字母。

为了做到这一点,我需要知道TLabel如果要为其分配值,它是否适合。换句话说,TLabel在将值实际分配给它的Caption属性之前,我需要确定它的宽度,因为那将是显示可变数据的糟糕编程。

有什么建议么?

0 投票
2 回答
2547 浏览

delphi - 查找具有固定长度和自动换行属性的标签中的行数 true

我有一个固定长度的标签,并且自动换行属性设置为 true。在运行时,该标签有两行,例如:

在标签上,此文本显示为两行

我想知道运行时的行数:

#13#10不起作用。

0 投票
3 回答
674 浏览

delphi - Delphi中删除TLabel

我目前动态创建了两个 TLabels 和一个 TEdit,将它们命名为 LblDesc+i、EdtAmount+i 和 LblUnit+i - 其中 i 是一个整数,每次添加这 3 个元素时我都会迭代一个。元素中的数据仅用于模拟目的。我现在的问题是删除三个对象。我试过免费和FreeAndNil,一点运气都没有。任何帮助是极大的赞赏。

0 投票
1 回答
357 浏览

delphi - 顶部空间 TLabel 或 TStaticText Delphi

我需要我的标签与顶部对齐,但在最顶部,在第一个顶部像素中。属性布局已经与 Top 对齐,我仍然得到这个间距。出于某种原因,Delphi 添加了一个额外的间距。我不能拥有那个。

在此处输入图像描述

0 投票
3 回答
1465 浏览

delphi - 如何保持标签在滚动框中平稳居中?

我使用TMemoinTScrollBox来显示一些文本,并TLabel在顶部使用 a 作为标题信息。有时备忘录比滚动框更宽,当然Horizontal scroll bar可以用来左右滚动以查看备忘录中的文本。我希望将标签作为标题始终以滚动框可见区域为中心。我可以通过设置来做到这一点Label1.Left:= (Scrollbox1.Width div 2) - (Label1.Width div 2);,它可以工作,但它有点闪烁,来回滚动时会摇晃。备忘录移动顺利,标签没有。

在此处输入图像描述

这里是单位:

和 dfm:

我尝试使用DoubleBuffered但没有帮助。

有什么建议可以让 Label1 在不闪烁/抖动的情况下移动,就像 Memo1 在滚动时一样平滑?


编辑:

设计最终将是我在表单上有 3 个或滚动框,每个包含最多 3 个带有标题的备忘录。并且滚动需要通过滚动框进行,因为同一滚动框中的所有备忘录都需要同时滚动。这意味着我看不到如何将标签放在表单或面板上,然后放在表单上,​​在滚动框之外:

在此处输入图像描述


编辑2:

下面的答案确实提供了很好的解决方案,但它们确实有必要将Labels居中的 ,放在 之外Scrollbox并放在Form自身上。然后移动 byScrollbox's scroll barsscroll bars直接 on Form。这确实得到了预期的效果,但它增加了一些不便,Labels不再是 , 的一部分Scrollbox

0 投票
0 回答
150 浏览

tpanel - 我必须设置什么以便标签文本将自动换行到父面板的宽度?

我正在使用 C++ 生成器。

我创建了一个面板并将所述面板的宽度设置为 350。

我正在使用以下代码来创建标签。

结果是tempLabel2tempLabel3正在扩展的标题超过了包含面板的 350 宽度。我在网上阅读了有关设置AutoSize为真和WordWrap真的信息。这次尝试没有成功。

我必须设置什么以便标签文本将自动换行到父面板的宽度?

0 投票
0 回答
61 浏览

delphi - 挂钩 Delphi TReader.OnFindComponentClass

怎么能利用TReader.OnFindComponentClassTReader创建是硬编码在TStream.ReadComponent. 我没有看到可以挂钩事件的地方。

TStream.ReadComponent不是虚拟的。即使是这样,如果必须推导TStream,也可以TReader直接推导,OnFindComponentClass不会有太大用处。我相信这必须是一些简单的方法来挂钩事件,否则即使没有必要的意义。但我无法识别它。

我问的原因是@DavidHeffernan 的回答:
TLabel 即使在 UI 状态说 not to 时也会显示加速键

我确保我总是创建TUIStateAwareLabel而不是TLabel 通过将表单流机制与TReader.OnFindComponentClass.

0 投票
1 回答
323 浏览

delphi - 我怎么知道一个 TLabel 单词是否包裹了文本?

我创建了一个TLabel并动态添加文本,效果很好。但是我需要知道标签是否将文本换行,因为它对于标签的宽度来说太大了,或者是否不需要换行,因为文本比标签的宽度短。

我不是想知道标签的WordWrap属性是设置为真还是假,我想知道它是否包裹了文本。

将and属性设置TLabel为true,以防万一。AutoSizeWordWrap

0 投票
0 回答
93 浏览

delphi - Firemonkey 加速键

我正在寻找一种方法来注册accelerator key标准方式以外的其他方式,即当带有 的文本accelerator key设置为tLabel.

我用谷歌搜索了很多,并没有找到任何类似的东西。

此外,在其他问题中,建议在设置父级之后在创建时设置Label'sText 属性,但这不起作用,因为Text 和 Parent 属性可能在运行时动态设置。Form'sLabel'sLabel's

假设表单有 a TEdit、 aTLabel和 a ,分别TRectangle命名为和,下面是一个简短的代码示例MyEditMyLabelMyRect

0 投票
1 回答
266 浏览

delphi - Label.Align = alTop 时 TLabel.AutoSize 不起作用

在 Delphi 10.4.2 32 位 Delphi VCL 应用程序中,我有一个TLabel集合在TCard

Label.Color设置为clInfoBk,因此您可以直观地检查标签的大小。

然而,尽管Label.AutoSize设置为True,但标签的 HEIGHT 远高于其文本高度,尽管Label.AutoSize = True

在此处输入图像描述

这是一个错误TLabel.AutoSize吗?

如何将标签高度设置为正确的文本高度?(请注意,标签的宽度可以在运行时动态改变,这也会在运行时动态改变文本高度)。