delphi – 我可以将TMemo的大小本身包含在文本中吗?

前端之家收集整理的这篇文章主要介绍了delphi – 我可以将TMemo的大小本身包含在文本中吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当您在表单设计器中编辑TLabel的标题时,会为您调整TLabel的大小.有什么办法可以在运行时得到TMemo吗?

我想要能够使用一个TMemo,为它的.lines.text属性分配一些东西,然后告诉它自己调整大小,而不是超过一定的宽度,尽管它可以像想要的那样高.有人知道怎么做吗

解决方法

将备忘录的WordWrap属性设置为true,将文本转储到其中,对行进行计数,并将高度设置为行数和行高度的乘积.但是你需要知道行高.

tMemo对象不会显示行高度属性,但如果在运行时不更改字体或字体大小,则可以在设计时通过实验确定线高度.

这是我用来设置线高度为13像素的备忘录的高度的代码.我还发现,我需要一个小常数来记录备忘录的顶部和底部边界.我将高度限制在30行(396像素),以保持其在表单上.

// Memo.WordWrap = true (at design time)
Memo.Text := <ANY AMOUNT OF TEXT>;
Memo.Height := min(19+Memo.Lines.Count*13,396);

如果您绝对必须在运行时从对象中提取行高,则必须使用“某人的答案”.或者,您可以使用一个tRichEdit对象,它具有一个SelAttributes属性,它包含一个赋予行高度的Height属性.

-Al.

猜你在找的Delphi相关文章