Here is my solution.
function ansi_str_AveCharSize(TCanvas_Han:THandle;const Sir:string;out xwi,yei:integer):Boolean;
var coo:windows.tpoint;
begin
coo.x :=00; result:=false;
coo.y :=00; if (length(sir)<01) then exit;
if (GetTextExtentPoint(TCanvas_Han,pchar(sir),length(sir), TSize(coo)))and(coo.x>0)and(coo.y>00) then
Begin xwi:=coo.x;
yei:=coo.y;
result:=true;
End;
end;//off-GetAveCharSize3
procedure TMainForm.FormResize(Sender: TObject);
Var x1c,x2c,ync:integer;
Const bif23:array[false..true] of integer=(3,2);
begin
x1c :=00;
x2c :=00;
ync :=00;
if (Ansi_str_AveCharSize(StatusBar1.Canvas.Handle,'A',x1c,ync)) and (ync>00) and
(Ansi_str_AveCharSize(StatusBar1.Canvas.Handle,' ',x2c,ync)) and (x2c>00)
then
Begin rStatusBar1CountVisibleChar:=Width div (x1c+x2c);
if (rStatusBar1CountVisibleChar<00) then rStatusBar1CountVisibleChar:=000 else
if (rStatusBar1CountVisibleChar>255) then rStatusBar1CountVisibleChar:=255; //Rugăciunea pe care Arsenie Boca o rostea în fiecare seară.mp4
End;
Listlog1.Height:=Height div 03;
End;// div bif23[height>444];
Anyone, have other opinion? Other method. Is good enougg, the my solution.