Конференция "Corba" » Количество страниц в документе Word. Раннее связывание. [Delphi, Windows]
 
  • misha_gr (26.09.07 14:11) [0]
    Нужно получить количество страниц в документе Word.

    Вариант для позднего связывания:

    uses Word2000, ComObj;

    procedure TForm1.Button1Click(Sender: TObject);
    var
     WordApp: OLEVariant;
     SaveChanges: OleVariant;
     iPages : integer;
    begin
     SaveChanges := false;
     WordApp := CreateOleObject('Word.Application');
     WordApp.Documents.Open('D:\Test.doc');
     iPages := WordApp.ActiveDocument.BuiltInDocumentProperties[wdPropertyPages].Value;
     ShowMessage(IntToStr(iPages));
     // ...
     // ...
     WordApp.Quit(SaveChanges, EmptyParam, EmptyParam);
    end;

    Работает нормально.

    Вариант для раннего связывания:

    procedure TForm1.Button2Click(Sender: TObject);
    var
     WordApp: _Application;
     Doc: _Document;
     iPages : integer;
     Name : OleVariant;
    begin
     WordApp := CoWORDApplication.Create;
     Name := 'D:\Test.doc';
     Doc := WordApp.Documents.Open(Name, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
              EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
     iPages := Doc.BuiltInDocumentProperties[wdPropertyPages].Value;
     ShowMessage(IntToStr(iPages));
    end;

    Выдает ошибку компиляции: Class does not have a default property
    То есть, как бы понятно, что Doc.BuiltInDocumentProperties возвращает тип IDispatch. Ну и что с ним дольше делать? А можно ли вызов свойства описать коротко и ясно, как в позднем связывании?
  • umbra © (26.09.07 16:31) [1]
    iPages := Doc.BuiltInDocumentProperties.Item[wdPropertyPages].Value;
  • misha_gr (26.09.07 16:51) [2]
    А Вы проверили, или "по памяти" сказали?

    Undeclared identifier: 'Item'
  • umbra © (27.09.07 15:00) [3]

    > Doc.BuiltInDocumentProperties возвращает тип IDispatch.
    > Ну и что с ним дольше делать?

    дальше надо делать Invoke
  • имя (24.11.07 19:54) [4]
    Удалено модератором
    Примечание: спам
  • имя (24.11.07 19:54) [5]
    Удалено модератором
    Примечание: спам
 
Конференция "Corba" » Количество страниц в документе Word. Раннее связывание. [Delphi, Windows]
Есть новые Нет новых   [120350   +22][b:0][p:0]