Что я не так делаю? Memo.OnBeforePrint

отредактировано September 2005 Раздел: FastReport 3.0
Здравствуйте, уважаемые, вот решился переползать с 2.54 на 3.x
и навскидку не понял что я не так делаю:

скачал демо-сборку FR3 (3.17.6), установил (Delphi7)
открываю Demo - BasicReport - Simple List.
зову дизайнер, щёлкаю, например, по Memo10 (это [Customers."Contact"]) и пишу ему обработчик OnBeforePrint


procedure Memo10OnBeforePrint(Sender: TfrxComponent);
begin
if Copy(Memo10.Text, 1, 1) = 'M' then
Memo10.Color := clRed
else
Memo10.Color := clNone;
end;

ну смысл его очевиден - сделать красный фон для полей, начинающихся с указанной буквы...

на выходе имеем изменённый фон у первого встреченного поля (правильно), и потом у СЛЕДУЮЩИХ за правильными записями (гон).
то есть ощущение такое, что скрипт работает как AfterPrint а не Before...

перенёс скрипт один в один на OnBeforePrint бэнда мастердата - полностью аналогичный эффект.

что не так?

Комментарии

  • отредактировано 23:11
    Упс. Сорри, вроде понял где туплю:

    procedure Memo10OnBeforePrint(Sender: TfrxComponent);
    begin
    if Copy(<Customers."Contact">, 1, 1) = 'M' then
    Memo10.Color := clRed
    else
    Memo10.Color := clNone;
    end;

    так - работает правильно. действительно, откуда там Text-у взяться в OnBefore...
  • Andrew_ShAndrew_Sh г.Минск
    отредактировано 23:11
    Вариант 1:

    Вместо Memo10.Text используйте поле Customers."Contact".
    procedure Memo10OnBeforePrint(Sender: TfrxComponent);
    begin
      if Copy(<Customers."Contact">, 1, 1) = 'M' then
        Memo10.Color := clRed
      else
        Memo10.Color := clNone;
    end;
    

    Вариант 2:

    Для Memo10 в дизайнере установите следующие свойства:
    HighLight.Condition=Copy(<Customers."Contact">, 1, 1) = 'M'
    HighLight.Color=clRed

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

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