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

Имеем 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
27.07.2018, 22:26
    #39680434
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
srj.frl,

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

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

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

Понятно.
В минимальном пакете DevExpress, кажется, есть их RichEdit на базе системного, можно его проверить
Проверяли - тоже самое, более того у него есть свойство RichEditClass, в котором можно указать библиотеку RichEdit10.dll или RichEdit20.dll или RichEdit41.dll
...
Рейтинг: 0 / 0
28.07.2018, 02:47
    #39680491
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
У нас есть и RichEditControl, который можно попробовать формировать и распечатывать DOC файлы, не требуя наличия ворда. Правда надо проверять на месте. Есть вещи, в офисе, которые (пока?) не поддерживаются
...
Рейтинг: 0 / 0
28.07.2018, 08:55
    #39680497
srj.frl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
white_niggerУ нас есть и RichEditControl, который можно попробовать формировать и распечатывать DOC файлы...
RichEditControl - самописный (можно получить?) или это из сторонней библиотеки?
...
Рейтинг: 0 / 0
28.07.2018, 13:38
    #39680526
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
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
29.07.2018, 02:20
    #39680642
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
srj.frlRichEditControl - самописный (можно получить?) или это из сторонней библиотеки?DevExpress
...
Рейтинг: 0 / 0
29.07.2018, 23:34
    #39680784
srj.frl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
white_niggersrj.frlRichEditControl - самописный (можно получить?) или это из сторонней библиотеки?DevExpress
В DevExpress'e есть только TcxRichEdit. А вот TcxRichEditControl - такого нет.
...
Рейтинг: 0 / 0
30.07.2018, 10:22
    #39680890
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
мы купили trichview: https://www.trichview.com/ с ним работает всё без вопросов, стоит адекватных денег. возможно найдешь какие-то бесплатные варианты попроще, мы особо не искали. встроенные в винду рич редакторы работают как повезет. наглядный пример.
...
Рейтинг: 0 / 0
30.07.2018, 12:50
    #39680996
srj.frl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
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
30.07.2018, 12:52
    #39680998
srj.frl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
в коде выше edtRTF указан в var - для пояснения его типа, на самом деле это компонент формы и естественно в указанном var'e его нет
...
Рейтинг: 0 / 0
30.07.2018, 13:11
    #39681017
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JvRichEdit ошибка при вставке OLE-объекта (doc-файла), начиная с Win 10 1803
srj.frl,

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

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

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


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