Обрезка строки по ширине
Функция обрезает строку 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; |
Часовой пояс GMT +4, время: 19:22. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot