Как получить расчётное значение содержимого Memo?

jonny3djonny3d Чебоксары
отредактировано 20:32 Раздел: FastReport Studio
Здравствуйте.

Есть Memo1 со значением в нем: IIF(True=True, 'ИСТИНА', 'ЛОЖЬ')

На этот мемо вешаем событие Memo1.onBeforePrint:
procedure Memo1OnBeforePrint(Sender: TfrxComponent);
begin
    TfrxMemoView(Sender).Visible := TfrxMemoView(Sender).Memo.Text = 'ИСТИНА';
end;

В итоге нифига ни получим, т.к. в содержимом мемо находится ещё не расчитанное скриптовое выражение.

Как сначала расчитать содержимое мемо и лишь потом работать с его результатом (в процедуре onBeforePrint)?

Комментарии

  • отредактировано 20:32
    Работать нужно не с onBeforePrint, а с onAfterData!
    Вот такой код у меня работает:
    procedure Memo16OnAfterData(Sender: TfrxComponent);
    begin
      TfrxMemoView(Sender).Visible :=  (TfrxMemoView(Sender).Memo.Text = 'ИСТИНА');
    end;
    
  • jonny3djonny3d Чебоксары
    отредактировано 20:32
    ;) Спасибо..

    Получается сначала вызывается onBeforePrint для расчета отображения элемента. В ней уже вызывается onAfterData, где ведётся расчёт отображения содержимого мемо. А уж потом дорабатывает своё onBeforePrint..

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

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