powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
25 сообщений из 34, страница 1 из 2
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39680396
srj.frl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, уважаемые форумчане!

Имеем it-проект, работающий с БД. Для объектов одной из его подсистем требуется, чтобы пользователь имел возможность привязывать сопроводительную документацию в формате doc MS Word.
Ранее было принято решение использовать компонент JvRichEdit (из JEDI VCL). В нем реализована поддержка вставки OLE-объектов, в частности документов MS Word. В результате без проблем вставлялись doc-файлы любой сложности и сохранялись в нашу БД, при этом их без проблем можно было распечатать, используя компонент frxRichView из генератора отчетов FastReport.

Но начиная с Win 10 версия 1803, при вызове JvRichEdit.Lines.SaveToStream(ms) возникает ошибка (SaveToStream используем, чтобы потом полученный ms: TMemoryStream сохранить в БД). При этом вставка doc-документа, т.е. вызов JvRichEdit.InsertObjectDialog, проходит и сейчас нормально и doc-документ вставляет нормально.
Ошибка при вызове JvRichEdit.Lines.SaveToStream(ms) такая:
сначала выскакивает Invalid floating point operation, затем access violation at address 73AD75E1 in module 'RICHED20.dll'

Начали копаться в JvRichEdit.pas - ошибку вызывает вызов SendMessage(FRichEdit.Handle, EM_STREAMOUT, TextType, LPARAM(@EditStream)) в методе TJvRichEditStrings.DoExport;

Есть подозрение, что в Microsoft что-то намудрили с библиотекой RichEd20.dll в новой версии Win10. Во всех предыдущих версиях Windows даже в более ранней Win10 - код работает нормально.

Что можете посоветовать, как быть?

Заранее спасибо!
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39680434
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
srj.frl,

привязка к встроенному в винду ричу рано или поздно приводит к тому, что случилось у вас. из простых (но плохих) решений можно предложить вытащить дллку из винды где работало.
из хороших - поменять компоненту.
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39680449
srj.frl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
makhaonsrj.frl,

привязка к встроенному в винду ричу рано или поздно приводит к тому, что случилось у вас. из простых (но плохих) решений можно предложить вытащить дллку из винды где работало.
из хороших - поменять компоненту.
1. пробовали подменять - не помогло
2. какую альтернативную компоненту посоветуете?
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39680464
ma1tus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
srj.frl2.
MS Word - не предлагать?В нем реализована поддержка вставки OLE-объектов, в частности документов MS Word.
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39680468
srj.frl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ma1tussrj.frl2.
MS Word - не предлагать?В нем реализована поддержка вставки OLE-объектов, в частности документов MS Word.
Не подойдет т.к. нужно выводить на печать через FastReport. Дело в том, что у нас формируются различные отчеты в FastReport и в некоторых из них дополнительно выводится как раз-то эта сопроводительная документация (doc-файлы).
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39680472
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обновить мс офис
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39680475
srj.frl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JaDiОбновить мс офис
установлен Office 2016, по-моему 2018 еще не придумали
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39680477
ma1tus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
srj.frlнужно выводить на печать через FastReportНепонятно, зачем вам нужна эта FR-прослойка, тем более - для отчетов сложных... Как вариант-изврат, если уж архитектура такая, что вся завязана на FR, можно и из его скрипта формировать вордовский док-т, добавляя туда doc-файлы.
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39680478
srj.frl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ma1tussrj.frlнужно выводить на печать через FastReportНепонятно, зачем вам нужна эта FR-прослойка,
Возможно не очень хорошо пояснил. Наша программа достаточно специализированная для предприятий определенной промышленности. Работает с БД, выполняет различные тех. задачи, ведет производственный учёт. Проще говоря, чем-то отдаленно напоминает 1С, только более узко специализированная. Имеем кучу всевозможных специализированных отчетов. Для построения отчетов используем FastReport. Есть несколько отчетов, где на нескольких страницах выводятся спец. данные, получаемые из БД программы и часть из них вычисляемые. В конце этих нескольких отчетах в компонент TfrxRichView выводится сопроводительная документация - как раз-то те doc-документы, которые у нас можно загружать в определенном справочнике.
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39680479
ma1tus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
srj.frl,

Понятно.
В минимальном пакете DevExpress, кажется, есть их RichEdit на базе системного, можно его проверить
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39680486
srj.frl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ma1tussrj.frl,

Понятно.
В минимальном пакете DevExpress, кажется, есть их RichEdit на базе системного, можно его проверить
Проверяли - тоже самое, более того у него есть свойство RichEditClass, в котором можно указать библиотеку RichEdit10.dll или RichEdit20.dll или RichEdit41.dll
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39680491
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас есть и RichEditControl, который можно попробовать формировать и распечатывать DOC файлы, не требуя наличия ворда. Правда надо проверять на месте. Есть вещи, в офисе, которые (пока?) не поддерживаются
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39680497
srj.frl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
white_niggerУ нас есть и RichEditControl, который можно попробовать формировать и распечатывать DOC файлы...
RichEditControl - самописный (можно получить?) или это из сторонней библиотеки?
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39680526
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
srj.frlОшибка при вызове JvRichEdit.Lines.SaveToStream(ms) такая:
сначала выскакивает Invalid floating point operation, затем access violation at address 73AD75E1 in module 'RICHED20.dll'

Начали копаться в JvRichEdit.pas - ошибку вызывает вызов SendMessage(FRichEdit.Handle, EM_STREAMOUT, TextType, LPARAM(@EditStream)) в методе TJvRichEditStrings.DoExport;


С делением на ноль у меня была пару лет назад ошибка, правда не с RichEdit'ом. Решилась так: 14407569
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39680642
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
srj.frlRichEditControl - самописный (можно получить?) или это из сторонней библиотеки?DevExpress
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39680784
srj.frl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
white_niggersrj.frlRichEditControl - самописный (можно получить?) или это из сторонней библиотеки?DevExpress
В DevExpress'e есть только TcxRichEdit. А вот TcxRichEditControl - такого нет.
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39680890
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мы купили trichview: https://www.trichview.com/ с ним работает всё без вопросов, стоит адекватных денег. возможно найдешь какие-то бесплатные варианты попроще, мы особо не искали. встроенные в винду рич редакторы работают как повезет. наглядный пример.
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39680996
srj.frl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
makhaonмы купили trichview: https://www.trichview.com/ с ним работает всё без вопросов, стоит адекватных денег. возможно найдешь какие-то бесплатные варианты попроще, мы особо не искали. встроенные в винду рич редакторы работают как повезет. наглядный пример.
Спасибо. А как у него SaveToStrem реализован?

Еще увидели интересную особенность, если загрузить doc-документ в программе в более ранней версии чем Win10 1803. А затем его открыть в Win10 1803 он нормально открывается. Ошибка возникает только в Win10 1803, когда пытаемся сохранить в Stream.
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
...
var
  edtRTF: TJvRichEdit;
  ms: TMemoryStream;
begin

  edtRTF.InsertObjectDialog;  
  ms := TMemoryStream.Create;
  try
    edtRTF.Lines.SaveToStream(ms); //в Win10 1803 ошибка
    //выполняем sql-запрос для сохранения потока ms в БД
  finally
    ms.Free;
  end;
end;

procedure TMyEditor.LoadDoc;
var
  ms: TMemoryStream;
begin
  
  //получаем поток из БД
  ms := GetDocAsStream(DocID);
  //
  edtRTF.Lines.LoadFromStream(ms); //без проблем отрабатывает в любой версии Windows
end;
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39680998
srj.frl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в коде выше edtRTF указан в var - для пояснения его типа, на самом деле это компонент формы и естественно в указанном var'e его нет
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39681017
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
srj.frl,

у него 100% нативного кода, то есть виндовый рич не используется совсем, редактор написан с нуля и с очень богатыми возможностями
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39681093
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
srj.frlВ DevExpress'e есть только TcxRichEdit. А вот TcxRichEditControl - такого нет.Ну давай, расскажи мне, что у нас есть, а чего нет. На ссылку, раз сам не осилил
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39681176
srj.frl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
white_niggersrj.frlВ DevExpress'e есть только TcxRichEdit. А вот TcxRichEditControl - такого нет.Ну давай, расскажи мне, что у нас есть, а чего нет. На ссылку, раз сам не осилил
Какой тип у данного контрола?
TcxRichEditControl - не нахожу
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39681188
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
srj.frlwhite_niggerпропущено...
Ну давай, расскажи мне, что у нас есть, а чего нет. На ссылку, раз сам не осилил
Какой тип у данного контрола?
TcxRichEditControl - не нахожу

RichEditControl - это название библиотеки, а не контрола !
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39681189
ma1tus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
srj.frlTcxRichEditControl - не нахожуT d xRichEditControl
...
Рейтинг: 0 / 0
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
    #39681201
srj.frl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ma1tussrj.frlTcxRichEditControl - не нахожуT d xRichEditControl
Спасибо, посмотрим демку. DevExpress для нас дорог, поэтому в нашем случае, даже если TdxRichEditControl будет работать, не является решением проблемы.

Может есть способы получить данные JvRichEdit после вставки doc-документа через JvRichEdit.InsertObjectDialog не вызывает SaveToStream. Насколько я понимаю, когда мы загрузили doc-документ через JvRichEdit.InsertObjectDialog - данные лежат в памяти остается их получить в Stream
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]