На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
Страницы: (3) 1 [2] 3  все  ( Перейти к последнему сообщению )  
> Работаем с Word , COM
    Скорее всего требуется:
    WordApplication1->Visible[0]
      Цитата Budda, 7.10.04, 19:11
      WordApplication1->Visible

      WordApplication1->Visible=true;
      Да у меня было чтото похоже когда переустановил систему и установил BCB - день мучался (ведь знал что работало). Но вспомнил что Update'ы не установил. После установки все пошло как надо.
      Автоматизация приложений Microsoft Office в примерах
        Цитата
        Но вспомнил что Update'ы не установил. После установки все пошло как надо

        По тому линку, что ты привёл - нет ни одного слова об Апдэйтах или обновлениях. Где их взять?

        И ещё: Как можно работать с Вордом без компонент, а используя ОЛЕ технологии?

        Добавлено
        Seva, нет
        ExpandedWrap disabled
          WordApplication1->Visible[0]=true;

        При компиляции выдает ошибку:
        Цитата
        [C++ Error] untMain.cpp(35): E2015 Ambiguity between 'TOLEBOOL::operator bool() const' and 'TOLEBOOL::operator short() const'
          Цитата Budda, 8.10.04, 12:44
          Как можно работать с Вордом без компонент, а используя ОЛЕ технологии?
          Так же, как и с другими приложениями. :)
          ExpandedWrap disabled
            Variant vApp;
            try {
               vApp = Variant::GetActiveObject("Word.Application");
            } catch(EOleSysError &ex) {
               try{
                  vApp = Variant::CreateObject("Word.Application");
               } catch(EOleSysError &ex) {
                  // не удалось запустить сервер
               } catch(...) {
                  // неизвестная ошибка
               }
            } catch(...) {
               // не удалось подключиться к серверу
            }
          А далее через OlePropertyGet, OlePropertyPut, OleFunction, OleProcedure
          ExpandedWrap disabled
            Variant vDoc = vApp.OlePropertyGet("Documents").OleFunction("Open",имя_файла);
          и так далее. :)

          Добавлено
          P.S. Хотя компоненты работают с соответствующим сервером тоже через OLE :)
          Сообщение отредактировано: trainer -
            Выписка
            ExpandedWrap disabled
               
              Аббревиатура OLE обозначает Objects Linked and Embedded (Присоединенные И
              Встроенные Объекты - ПИВО  ;) ). Данные, разделяемые между приложениями
              называются OLE объектом. Приложение, которое может содержать OLE объекты,
              называют OLE контейнером (OLE Container). Приложение, данные из которого
              можно включить в OLE контейнер в виде OLE объекта, называют OLE сервером.
               
              Например, MicroSoft Word может включать в документ графические объекты,
              аудио- и видеоклипы и множество других объектов (такой документ иногда
              называют составным документом - compound document).
               
              Как следует из названия, OLE объекты можно либо присоединить к OLE
              контейнеру, либо включить в него. В первом случае данные будут храниться в
              файле на диске, любое приложение будет иметь доступ к этим данным и сможет
              вносить изменения. Во втором случае данные включаются в OLE контейнер и
              только он сможет просматривать и модифицировать эти данные.
               
              OLE является дальнейшим развитием идеи разделяемых между приложениями
              данных. Если с помощью DDE можно было работать с текстом, то OLE позволяет
              легко встроить в приложение обработку любых типов данных. Как и в случае с
              DDE, для правильной работы приложения-клиента (OLE контейнера) требуется
              наличие приложения OLE сервера. Каждый раз, когда в программе-клиенте
              пользователь обращается к OLE объекту с целью просмотра или редактирования
              данных (обычно двойной щелчок мышкой на объекте), запускается приложение-
              сервер, в котором и происходит работа с данными.
               
              В природе существует несколько видов OLE, отличающихся по способу
              активации OLE сервера. OLE версии 1 запускает сервер в отдельном окне. OLE
              2 реализует то, что называется in-place activation and editing.
               
              Развитие идеи OLE привело к появлению OLE automation - приложение-клиент
              может выполнить часть кода сервера. Тип OLE объекта, помещенного в
              программу-клиент, определяется тем, какую версию OLE поддерживает сервер.
              trainer, Спасибо!


              Bas, Это ты к чему?
                Цитата Budda, 8.10.04, 16:43
                Bas, Это ты к чему?

                Для общего развития.
                  Bas, та мне бы чего-то попрактичнее, тот код, который Тренер дал - тоже сбоит... Ну просто 3.14здец какой-то.

                  Может чего-то где-то в настройках.... Может кинешь маленький конкретный пример? seredaom@ukrpost.net.
                    Цитата Budda, 8.10.04, 18:03
                    который Тренер дал - тоже сбоит
                    В чем это проявляется и покажи свой исходник.
                      Исходник в студию или в приват.
                        Цитата Budda,8.10.04, 11:44
                        Seva, нет
                        ExpandedWrap disabled
                          WordApplication1->Visible[0]=true;

                        При компиляции выдает ошибку:
                        Цитата
                        [C++ Error] untMain.cpp(35): E2015 Ambiguity between 'TOLEBOOL::operator bool() const' and 'TOLEBOOL::operator short() const'

                        Ну подправь соответствующим образом.
                        Хочет TOLEBOOL? Попробуй так:
                        ExpandedWrap disabled
                           
                          WordApplication1->Visible[0]=TOLEBOOL(true);
                          Подскажите, пожалуйста, где скачать компоненты для работы с Office 2007.
                            Цитата dallas0713 @
                            Подскажите, пожалуйста, где скачать компоненты для работы с Office 2007.

                            Читай эту тему с начала.
                              Люди, подскажите пожалуйста, почему происходит следующее: при запуске программы в среде C++ Builder 6, она работает нормально, но когда запускаю экзешник вне среды, работает не совсем так как надо ???

                              Программа должна выполнять следующие действия:
                              1. Открыть файл *.doc, в котором есть формулы.
                              2. Сохранить во временный файл, но уже с расширением *.docx (Open XML Format)
                              3. Извлечь из временного файла формулы в виде картинок.

                              В среде выполняется всё норм. А "автономно" просит сохранить файл.

                              Вот код:
                              ExpandedWrap disabled
                                //---------------------------------------------------------------------------
                                 
                                #include <vcl.h>
                                #pragma hdrstop
                                 
                                #include "Unit1.h"
                                 
                                //---------------------------------------------------------------------------
                                #pragma package(smart_init)
                                #pragma link "Word_2K_SRVR"
                                #pragma resource "*.dfm"
                                TForm1 *Form1;
                                //---------------------------------------------------------------------------
                                __fastcall TForm1::TForm1(TComponent* Owner)
                                        : TForm(Owner)
                                {
                                }
                                //---------------------------------------------------------------------------
                                 
                                void __fastcall TForm1::Button1Click(TObject *Sender)
                                {
                                AnsiString fname;
                                        OpenDialog1->Execute();
                                        fname=OpenDialog1->FileName;
                                        if (fname!="")
                                        {
                                        WordApplication1->Connect();
                                        WordApplication1->set_Visible(false);
                                        WordApplication1->GetDefaultInterface()->Visible = false;
                                        WordApplication1->set_DisplayAlerts(false);
                                 
                                        WordApplication1->Documents->Open(TVariant(fname));
                                        WordApplication1->ActiveDocument->Select();
                                        WordApplication1->Selection->Copy();
                                        WordApplication1->Documents->Add(EmptyParam, EmptyParam);
                                        WordDocument1->ConnectTo(WordApplication1->ActiveDocument);
                                        WordDocument1->Activate();
                                        WordApplication1->Selection->Paste();
                                        WordDocument1->SaveAs(TVariant("c:\\~temp.docx"));
                                        WordDocument1->Close(TVariant(false));
                                        WordApplication1->Quit(TVariant(false));
                                        WordApplication1->Disconnect();
                                 
                                        ZipForge1->FileName="c:\\~temp.docx";
                                        ZipForge1->OpenArchive(fmOpenRead);
                                        ZipForge1->ExtractFiles(L"*.wmf");
                                        ZipForge1->CloseArchive();
                                        DeleteFileA("c:\\~temp.docx");
                                        }
                                 
                                }
                                //---------------------------------------------------------------------------
                                void __fastcall TForm1::Button2Click(TObject *Sender)
                                {
                                ShellExecute(NULL,"open","word\\media", NULL, NULL, SW_SHOWNORMAL);
                                 
                                }
                                //---------------------------------------------------------------------------

                              Заранеее благодарен ! :thanks:
                                При каком действии просит? Покажи скриншот диалога.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) 1 [2] 3  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0741 ]   [ 16 queries used ]   [ Generated: 25.03.25, 01:50 GMT ]