Текущий архив: 2004.05.30;
Скачать: CL | DM;
ВнизНемного глуповат вопрос, но StrLeft не обрабатывает строку. Найти похожие ветки
← →
IrBisoff © (2004-05-15 06:06) [0]При исполнении этого кода StrLeft срабатывает только в первом контейнере, в остальных же - текст остаётся неизменным. Я даже пробовал убирать все условия и принудительно обрезать - не помогает. =( LastSpace устанавливается во всех случаях верно - следующая строка начинается с последнего пробела... Скорее всего это связано с этим фрагментом:
tmp := tmp+Freader.STotalText.Strings[StrGlobNum][StrGlobPos];
. Раньше у мну всегда проблемы возникали при посимвольном переносе. =)while not FullString do begin
if Freader.LabelCustom.Canvas.TextWidth(tmp) < Freader.LeftPage.Width - 89 then begin // Если текст ещё помещается в контейнер...
// Если это ещё не конец строки, то прибавляем букву, если же нет - конец строки
if StrGlobPos < Length(Freader.STotalText.Strings[StrGlobNum]) then inc(StrGlobPos)
else begin inc(StrGlobPos); EndGlobString := true; Fullstring := true;end;
tmp := tmp+Freader.STotalText.Strings[StrGlobNum][StrGlobPos]; // Добавляем символ в строку
if Freader.STotalText.Strings[StrGlobNum][StrGlobPos] = " " then LastSpace := StrGlobPos; // Если текущий символ - пробел, устанавливаем флаг пробела
end else begin // Если уже не помещается...
Fullstring := true; // Всего лишь ставим флаг
end;
end;
if not EndGlobString then begin // Если это не конец строки...
StrGlobPos := LastSpace; // Устанавливаем последний символ в пробел
CreatePlainLeftLabel(LeftBStr(tmp,LastSpace)); // Создаём контейнер с тем текстом, что предшествует пробелу
end else begin
CreatePlainLeftLabel(tmp); // А если конец строки - создаём с оригинальным текстом.
end;
← →
IrBisoff © (2004-05-15 06:21) [1]Всё, сам решил проблему... =) LastSpace выставлялся для глобальной строки, а мне нужно было его искать в строке локальной... Ввёл вторую переменную для локального LastSpace и усё. =)
Страницы: 1 вся ветка
Текущий архив: 2004.05.30;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.039 c