Идёт загрузка страницы...

htp://aptem.net.ru





Получение данных из Delphi-приложения в документе Word

Допустим что у вас имеется Word2(6)/Delphi1 или 32bit Word/Delphi2.

Сделайте следующее:

  • Создайте макрос в Word:


        Declare Function StringFromDelphi Lib "c:\sample\test.dll" As String

    Sub MAIN
    mystring$ = StringFromDelphi
    Insert mystring$
    End Sub

  • Создайте простой TEST.DLL в Delphi - просто форма с кнопкой. Сохраните это (например в c:\sample - смотри макрос Word) как test.dpr и testform.pas. Теперь добавьте к вашему проекту экспортируемую функцию 'StringFromDelphi' и 'close' на нажатие кнопки. Вы можете использовать следующий код:


        library Test;  (* test.dpr в c:\sample *)
    uses Testform in 'TESTFORM.PAS';
    exports
    StringFromDelphi;
    begin
    end
    .


        unit Testform; (* testform.pas в c:\sample *)
    interface
    uses

    WinTypes, WinProcs, Forms, Classes, Controls, StdCtrls, SysUtils;

    type
    TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    end;
    var
    Form1: TForm1;

    function StringFromDelphi : PChar; export;
    {$ifdef WIN32} stdcall; {$endif}

    implementation
    {$R *.DFM}

    function StringFromDelphi: Pchar;
    var StringForWord : array[0..255] of char;
    begin
    Application.CreateForm(TForm1, Form1);
    Form1.ShowModal;
    Result:=StrPCopy(StringForWord, Form1.Button1.caption);
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    close;
    end;

    end.

  • Скомпилируйте test.dll. Запустите макрос из Word - должна появиться форма Delphi - нажмите кнопку для получения некоторых данных из Delphi.

    В журнале PCMagazine Vol12.No22 опубликована статья о доступе к DLL из Word. Ознакомиться с ней вы можете в электронной версии журнала на веб-сайте PCMagazine.

    [000190]