Свойство TagStr мемо-поля

отредактировано 01:47 Раздел: FastReport 3.0
Добрый день!
При работе под Win2000 возникли ошибки при использовании свойства TagStr мемо-полей. Работаем с Delphi 6, SP2
Получить ошибку можно как под XP, так и под 2000 по шагам:
1. Запускаем демку Simple List (1.fr3).
2. В обработчик события OnPreviewClick для Memo9 и Memo10 пишем текст
ShowMessage(Memo8.TagStr);
3. Строим отчет и кликаем на Memo9 или Memo10.
Естесственно, ожидается или [Customers."Cust No"] (что в действительности содержится в Tagstr), или вычисленное значения этого поля. В результате при каждом построении отчета при клике на Memo9, Memo10 в произвольном порядке выводятся следующие сообщения (при кликах на одном построенном отчете текст сообщения не меняется):
1. пустая строка ( примерно в 80% случаях)
2. Access violation at address 00403358 in module 'FRDemo.exe'. Read of address 6E6F-45F2, адреса меняются.
изредка встречаются
3. Invalid variant type conversion.
4. [Customers."Cust No"]
При подписке на событие FastReportClick в приложении, под XP все работает корректно и выводит именно значение поля Cust No таблицы Customers.
Прошу разработчиков проконсультировать по свойству TagStr.

Комментарии

  • отредактировано 01:47
    Проблема в том, что объекта Memo8 во время превью в скрипте не существует. Доступен только объект, вызвавший событие, и к нему надо обращаться не по имени, а как TfrxMemoView(Sender).TagStr.
  • отредактировано 01:47
    Спасибо за консультацию.

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

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