Использование внешней DLL для работы с M$ Word

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Сообщение ViruZ » 14.03.2008 11:10:07

:oops: Исправлюсь - переведу весь украинский текст на русский.
ViruZ
постоялец
 
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина

Сообщение ViruZ » 14.03.2008 13:04:47

Как и обещал - перевел все комментарии на русский, а также создал отдельный файл справки в формате HTML. Новый архив для скачивания http://rapidshare.com/files/99422480/WordDLL.zip.html
Кстати, может, переделать все это "хозяйство" в невизуальный компонент?
ViruZ
постоялец
 
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина

Сообщение ev » 14.03.2008 20:45:25

краткое описание доступно в разделе проекты
dll обновлена
ev
долгожитель
 
Сообщения: 1772
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Re: Использование внешней DLL для работы с M$ Word

Сообщение ViruZ » 06.06.2008 11:59:19

Выложил библиотеку с обновлениями на свой сайт http://www.cybersoft.houa.org/.
Прямая ссылка для скачивания: http://www.cybersoft.houa.org/downloads/WordDLL.zip
Список изменений:
+ Добавлено 2 функции: SetWordVisible,CheckWordVersion
* Описание функций теперь использует stdcall, что позволяет использовать библиотеку с другими языками программирования
+ Добавлено 4 функции: SaveDocAs,CloseDoc,CloseWord,PrintDialogWord
ViruZ
постоялец
 
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина

Re: Использование внешней DLL для работы с M$ Word

Сообщение yuray » 19.06.2008 12:00:22

Здравствуйте, Вадим!

Использую worddll.dll в своем проекте. Спасибо за dll. Появились вопросы, замечания и предложения:
1. Нет описаний функций SaveDocAs, CloseDoc, CloseWord, PrintDialogWord в файле uworddll_pas.htm. (Я не знал об их существовании и, поначалу, думал некоторые из них дописать…).
2. Процедура procedure CreateTable создает таблицу с атрибутами по умолчанию wdWord9TableBehavior = 1, wdAutoFitWindow = 2. Просьба вынести эти атрибуты в параметры функции CreateTable.
3. Решил для себя изменить процедуру CreateTable и заменил в файле worddll.dpr строчку

Wrd.ActiveDocument.Tables.Add(Wrd.Selection.Range,row,col,wdWord9TableBehavior,wdAutoFitWindow);
на
Wrd.ActiveDocument.Tables.Add(Wrd.Selection.Range,row,col,0,0);

В Delphi 6 компилирую библиотеку и пробую вызывать процедуру CreateTable c Lazarus… Получаю ошибку "Не был произведен вызов CoInitialize". В worddll.dpr подключил модуль ActiveX и в процедуре NewDocument первой строчкой добавил CoInitialize(nil);. Компилирую и все заработало. Вопрос. Это я неправильно компилирую библиотеку или файл worddll.dpr не соответствует worddll.dll?
4. Планируется ли создание Exceldll.dll?

Дякую
yuray
новенький
 
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

Re: Использование внешней DLL для работы с M$ Word

Сообщение ViruZ » 20.06.2008 10:43:01

1. Документацию обновлю на днях, т.к. добавятся еще некоторые возможности в библиотеку, которые тоже необходимо будет описать.
2. Для совместимости с предыдущей версией библиотеки опишу дополнительную функцию CreateTableEx, в которой можно будет передавать дополнительные параметры.
3. Я компилировал раньше библиотеку в Delphi3, поэтому указанных Вами проблем не замечал, но в новой версии библиотеки эта недоработка будет устранена.
4. ExelDll.dll будет создана, как только у меня появится немного больше свободного времени и возникнет такая необходимость, но пока это только в планах.
Думаю, где-то на следующей неделе выложу обновленную библиотеку, о чем дополнительно сообщу на форуме и в блоге.

Добавлено спустя 1 час 1 минуту 3 секунды:
Обновил библиотеку, скачать можно там же.
Изменения:
- добавил функцию CreateTableEx
- документация теперь в форматах OpenDocument и PDF, добавил описание недостающих функций
- исправлена ошибка, возникающая при работе с библиотекой, скомпилированной в Delphi новее 3 версии
ViruZ
постоялец
 
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина

Re: Использование внешней DLL для работы с M$ Word

Сообщение yuray » 17.07.2008 15:37:20

Так оперативно было сделано, что я и не заметил. :)
1. Думаю, хорошо было бы обновить проект здесь.
2. Касательно CoInitialize(nil) в библиотеке worddll. Когда я писал
В worddll.dpr подключил модуль ActiveX и в процедуре NewDocument первой строчкой добавил CoInitialize(nil);.

я понимал, что где-то нужно поставить и CoUnInitialize. Но не знал где... Надеялся, что автор сделает все как надо, а я подсмотрю... :)
Пришлось гуглить. Гугля подсказала решение.
3. Интересно, можно ли эту dll-ку использовать в коммерческих проектах? И почему нельзя ее компильнуть в Lazarusе, а не в Delphi?
yuray
новенький
 
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

Re: Использование внешней DLL для работы с M$ Word

Сообщение ViruZ » 20.10.2008 12:46:50

yuray писал(а):1. Думаю, хорошо было бы обновить проект здесь.
2. Касательно CoInitialize(nil) в библиотеке worddll. Когда я писал
В worddll.dpr подключил модуль ActiveX и в процедуре NewDocument первой строчкой добавил CoInitialize(nil);.

я понимал, что где-то нужно поставить и CoUnInitialize. Но не знал где... Надеялся, что автор сделает все как надо, а я подсмотрю... :)
Пришлось гуглить. Гугля подсказала решение.
3. Интересно, можно ли эту dll-ку использовать в коммерческих проектах? И почему нельзя ее компильнуть в Lazarusе, а не в Delphi?

1. Этот вопрос необнодимо задать админу, т.к. я не имею доступа к указанному ресурсу.\
2. Спасибо за ссылку, исправил исходники как в примере.
3. DLL-ка полностью свободна для использования в любых проектах. Если бы FPC поддерживал работу с интерфейсами на уровне Delphi, необходимость в разработке такой DLL-ки отпала бы, т.к. хватило бы просто юнита, который линковался бы к программе.
ViruZ
постоялец
 
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина

Re: Использование внешней DLL для работы с M$ Word

Сообщение yuray » 21.10.2008 09:29:22

ViruZ писал(а):DLL-ка полностью свободна для использования в любых проектах. Если бы FPC поддерживал работу с интерфейсами на уровне Delphi, необходимость в разработке такой DLL-ки отпала бы, т.к. хватило бы просто юнита, который линковался бы к программе.


Да, пытался компильнуть в Lazaruse - не получилось... :(

Добавлено спустя 6 минут 46 секунд:
Просьба админам обновить проект здесь. Хорошая и нужная вещь.
yuray
новенький
 
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

Re: Использование внешней DLL для работы с M$ Word

Сообщение ViruZ » 23.10.2008 13:15:54

yuray писал(а):...4. Планируется ли создание Exceldll.dll? ...

Поанируется. Какие функции в первую очередь необходимо реализовать?
ViruZ
постоялец
 
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина

Re: Использование внешней DLL для работы с M$ Word

Сообщение ev » 23.10.2008 13:20:31

Просьба админам обновить проект здесь. Хорошая и нужная вещь.

обновлено
ev
долгожитель
 
Сообщения: 1772
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Re: Использование внешней DLL для работы с M$ Word

Сообщение yuray » 24.10.2008 14:46:28

ViruZ писал(а):Какие функции в первую очередь необходимо реализовать?


Самые необходимые :wink:
Лично у меня пожелание, чтобы это была одна длл, например, msofficedll.dll.
yuray
новенький
 
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

Re: Использование внешней DLL для работы с M$ Word

Сообщение ViruZ » 27.10.2008 16:52:31

yuray писал(а):
ViruZ писал(а):Какие функции в первую очередь необходимо реализовать?


Самые необходимые :wink:
Лично у меня пожелание, чтобы это была одна длл, например, msofficedll.dll.

Добавил в библиотеку несколько функций для работы с Экселем, изменения залил на свой сайт.
Скачать можно по адресу: http://www.cybersoft.houa.org/
В скором времени (где-то в начале ноября) планирую написать класс-оболочку для работы с Вордом - добавлю обработку ошибок, явную загрузку библиотеки и т.д.
Какие будут пожелания?
ЗЫ: При разработке использую книгу "Программирование документов и приложений MS Office в Delphi".
ViruZ
постоялец
 
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина

Re: Использование внешней DLL для работы с M$ Word

Сообщение EmeraldMan » 29.10.2008 22:47:37

Вообще классная идея с этой dll'кой! Прописал вот несколько функций OutLook самые основные и пользуюсь.

Кстати ещё очень интересна тема OpenOffice. Ведь если разобраться с его OLE сервером было бы просто замечательно - тут тебе и сам OpenOffice и сохранять то можно форматы от MS.

Помоему отличный получился бы проект! :)
Аватара пользователя
EmeraldMan
постоялец
 
Сообщения: 149
Зарегистрирован: 16.10.2008 08:41:51
Откуда: Белгород

Re: Использование внешней DLL для работы с M$ Word

Сообщение ViruZ » 30.10.2008 11:08:13

EmeraldMan писал(а):Вообще классная идея с этой dll'кой! Прописал вот несколько функций OutLook самые основные и пользуюсь.

Кстати ещё очень интересна тема OpenOffice. Ведь если разобраться с его OLE сервером было бы просто замечательно - тут тебе и сам OpenOffice и сохранять то можно форматы от MS.

Помоему отличный получился бы проект! :)

За хорошие слова - спасибо, всегда приятно услышать.
С OpenOffice я и сам хотел бы разобраться, но пока очень не хватает времени, хотя раньше пробовал под Delphi запустить тестовый пример, который после некоторой доработки напильником заработал. В планы входит сначала разработка DLL для работы с Micro$oft Office с отдельными компонентами для Word, Excel и т.д., а при стабильной работе - аналогичная DLL для OpenOffice с аналогичными компонентами для Writer, Calc... Для начала хочу выделить базовые абстрактные классы на основе уже реализованого, а от них уже буду наследовать классы для работы с конкретными приложениями, что должно упростить перенос создания отчетов из M$ Office в OpenOffice и соответственно с Windows в Linux.
А функции для работы с Outlook, если Вам не жалко, напишите в форум, :D , я добавлю их в свою DLL-ку, может, кому-нибуть еще пригодится :mrgreen:
Если что - пишите на мыло cybersoft на rambler.ru или стучите в Аську 486-762-598
ViruZ
постоялец
 
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 20

Рейтинг@Mail.ru