我正在計算最大字體大小,以便在Text中適合TCxLabel的ClientRect。但我無法讓它工作。 (見圖片)計算最大字體大小
的字體大小是大和thxt沒有繪製corrent地方。
這裏如何重現:
放置一個tcxLabel一個空表上,並allign標籤客戶
添加FORMCREATE和FormResize事件:
procedure TForm48.FormCreate(Sender: TObject);
begin
CalculateNewFontSize;
end;
procedure TForm48.FormResize(Sender: TObject);
begin
CalculateNewFontSize;
end;
,並最終實現CalculateNewFontSize :
使用 數學;
procedure TForm48.CalculateNewFontSize;
var
ClientSize, TextSize: TSize;
begin
ClientSize.cx := cxLabel1.Width;
ClientSize.cy := cxLabel1.Height;
cxLabel1.Style.Font.Size := 10;
TextSize := cxLabel1.Canvas.TextExtent(Text);
if TextSize.cx * TextSize.cx = 0 then
exit;
cxLabel1.Style.Font.Size := cxLabel1.Style.Font.Size * Trunc(Min(ClientSize.cx/TextSize.cx, ClientSize.cy/TextSize.cy) + 0.5);
end;
是否有人知道如何計算字體大小和浩正確地放置文本?
'cxLabel1.Style.Font.Size:= cxLabel1.Style.Font.Size * n'其中'n'是一個整數意味着你沒有覆蓋字體大小的空間。 – 2015-02-23 08:25:12
由於Font.Size是一個整數,我需要n也是一個整數!?! – 2015-02-23 08:34:32
因此,如果您以12的大小開始,那麼您認爲下一個較大的值是24?使用MulDiv。 – 2015-02-23 08:44:36