В отчёте требуется вписать текст в фиксированный по ширине TfrxMemoView, используя уменьшение размера шрифта. Как это реализовать?

Question: В отчёте требуется вписать текст в фиксированный по ширине TfrxMemoView, используя уменьшение размера шрифта. Как это реализовать?

Answer:

Используйте функцию TfrxMemoView.CalcWidth в обработчике TfrxMemoView.OnAfterData:

1
2
3
4
5
6
procedure Memo1OnAfterData(Sender: TfrxComponent);
 begin
 Memo1.Font.Size:=10; 
 if Memo1.CalcWidth>Memo1.Width-Memo1.GapX*2 then
 Memo1.Font.Size:=Trunc(Memo1.Font.Size*((Memo1.Width-Memo1.GapX*2)/Memo1.CalcWidth)); 
 end;