我正在计算最大字体大小,以便在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