我創建了一些動態創建的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