Подскажите более быстрый и менее затратный способ
получить максимально возможный размер шрифта
исходя из статических размеров.TLabel
(с центрованием текста и без переноса строк)
procedure TfrmMain.MaxFontSize(xLabel: TLabel);
var
xFntSize: Single;
xW, xH: Single;
begin
xW := 0;
xH := 0;
xFntSize := 1;
xLabel.ResultingTextSettings.Font.Size := xFntSize;
while (xLabel.Size.Width > xW) and (xLabel.Size.Height > xH) do
begin
xLabel.ResultingTextSettings.Font.Size := xFntSize;
xFntSize := xFntSize + 1;
xLabel.Canvas.Font.Size := xFntSize;
xW := xLabel.Canvas.TextWidth(xLabel.Text);
xH := xLabel.Canvas.TextHeight(xLabel.Text);
end;
end;