我创建了一些动态创建的THTMLabels,但是在创建这些THTMLabels后,当我尝试获取它的高度时,它始终返回默认高度值。动态创建THTMLabel.Height总是返回默认值?
这里是我的代码:
for i := 0 to ASentencePtr^.MUS.Count - 1 do
begin
j := Random(slTemp.Count);
sSen := ASentencePtr^.MUS.Strings[StrToInt(slTemp.Strings[j])] + '/';
THTMLabel.Create(Self).Name := 'lblSen_' + slTemp.Strings[j];
with THTMLabel(FindComponent('lblSen_' + slTemp.Strings[j])) do
begin
Font.Size := 18;
Font.Style := [fsBold];
Parent := FlowPanel1;
Width := Parent.Width;
Cursor := crHandPoint;
DragMode := dmAutomatic;
ControlStyle := ControlStyle + [csDisplayDragImage];
HTMLText.Add(sSen);
Autosizing := True;
end;
slTemp.Delete(j);
end;
现在,当我尝试访问THTMLabel(FindComponent(“lblSen_0”))高度时,只返回默认值是17,我在哪里出了错?任何想法的人?任何帮助非常感谢,谢谢。
我不知道这个'THTMLLabel'是什么,它不是标准的Delphi的一部分。我注意到你将'Autosizing'设置为'True'。你能解释一下为什么你会期待17以外的Height值? – 2012-02-23 09:35:35
感谢您的回复。我期待更高的'Height'值,因为您可以看到我已将'Font.Size'设置为18,比默认值8大,所以使用'Autosizing'设置到'True',创建组件的实际'Height'应该更多的是它的默认值。我对吗? – jhodzzz 2012-02-23 09:44:16
也许这是你应该在更改字体大小之前将autosizing设置为true的一种情况? – 2012-02-23 10:07:22