Выравнивание по ширине

отредактировано 18:17 Раздел: FastReport 4.0
Действия, присваиваем мемке переменную (большой длинны строку). У мемки выравнивание по ширине, в мемке несколько строк.

Что ожидаем: Все строки выравняются по ширине, может быть за исключением посленей

Что получаем: Выравнивается только 1 строка в мемке.

Если на этапе дизайна весь этот текст туда кинуть, то все ОК, но это не технически неосуществимо, строка вычисляется.

Временное решение

В модулеfrxGrapUtils.pas
if Align = haBlock then
begin
GetMem(spaceAr, SizeOf(Integer) * n);
spaceCount := CountSpaces;
// if spaceCount = 0 then //ChaosBringer
// Align := haLeft else //ChaosBringer
extraSize := Abs(dx) - Sz;
end
else
spaceCount := 0;

Решение некорректное, но работает так как требуется.
Исходник указан для 3-йки, но аналогичная проблема была замечена и в демке 4-ки.

Комментарии

  • отредактировано 18:17
    Пришлите отчет или пример, поясняющий суть проблемы. Повторить не удалось.
  • отредактировано 18:17
    Берем демку, любой отчет, кладем мемку на страницу, далее в коде пишем
    memo1.memo.add('Действия, присваиваем мемке переменную (большой длинны строку). У мемки выравнивание по ширине, в мемке несколько строк. Что ожидаем: Все строки выравняются по ширине, может быть за исключением последней Что получаем: Выравнивается только 1 строка в мемке.Если на этапе дизайна весь этот текст туда кинуть, то все ОК, но это не технически неосуществимо, строка вычисляется.');

    Ставим в дизайнере выравнивание мемки по ширине и нажимаем просмотр
  • отредактировано 18:17
    Поправлено, глюк в TWideStrings...
  • отредактировано 18:17
    Классно, жаль у нас тройка пока, четвертую версию тоже купим, но не сегодня ;)

    не могли бы правильный код для 3-йки привести, если он не очень большой?
  • отредактировано 18:17
    в frxUnicodeUtils.pas:

    function TWideStrings.Add(const S: WideString): Integer;
    var
    PWStr: ^TWString;
    begin
    New(PWStr);
    PWStr^.WString := S;
    PWStr^.Obj := nil;
    Result := FWideStringList.Add(PWStr);
    end;
  • отредактировано 18:17
    Спасибо, работает
  • отредактировано 18:17
    Строю фастрепортовскую форму. Накидал несколько Memo-элементов рядом с друг другом, у них разная ширина. Можно ли в FastReport как в MS Excel выровнять выделенные элементы(там ячейки, а тут разумеется мемки в данном случае) по ширине? Кнопка либо в контекстном меню команда есть соответствующая для такого действия ?

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.