Я использую tyring для расчета максимального размера шрифта для того, чтобы текст Text вписывался в ClientRect TCxLabel. Но я не могу заставить его работать. (Смотрите рисунок)Calculate Max Размер шрифта
FontSize является большим и thxt не обращал corrent места.
Вот как воспроизвести:
Поместите tcxLabel на пустой форме, и Allign ярлык для клиента
Добавить FormCreate и событие FormResize:
procedure TForm48.FormCreate(Sender: TObject);
begin
CalculateNewFontSize;
end;
procedure TForm48.FormResize(Sender: TObject);
begin
CalculateNewFontSize;
end;
и наконец реализовать CalculateNewFontSize :
Math;
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;
Кто-нибудь знает, как рассчитать размер шрифта и ho, чтобы правильно разместить текст?
'cxLabel1.Style.Font.Size: = cxLabel1.Style.Font.Size * n' где' n' - целое число, означающее, что вы не полностью закрываете пространство шрифта. –
Поскольку Font.Size является целым числом, мне нужно, чтобы n было целым числом!?! –
Итак, если вы начинаете с размера 12, вы считаете, что следующее большее значение равно 24? Используйте MulDiv. –