当您在表单设计器中编辑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.