Обрезка строки по ширине
Функция обрезает строку s, если ее ширина больше ширины width, или возвращает строку s, если ширина строки меньше ширины width. symbol - строка, вставляемая в конец возвращаемой строки, если строка не помещается в ширину width, при этом ширина с символом умещается в ширину (учитывайте это, т. к. если не использовать дополнительный символ больше места останется для строки s), либо используйте строку '(none)', если символ не нужен.
fitstring(s,symbol: string;width: integer): string;
var
strw, i, n: integer;
ch: char;
ws: string;
begin
strw:= 0;
i := 0;if TextWidth(s)>width then
begin
if locase(symbol)='(none)' then width:=width;
else width:=width-TextWidth(symbol);
while (true) do
begin
ch:=GetChar(s, i);
strw:= strw+TextWidth(ch);
if strw > width then break;
else
ws:=ws+ch;
i:=i+1;
end;
if locase(symbol)='(none)' then fitstring := ws;
else
fitstring := ws+symbol;
end;
else
fitstring:=s;
end;
|