Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 447

•  TDictionary Custom Sort  6 478

•  Fast Watermark Sources  6 270

•  3D Designer  9 218

•  Sik Screen Capture  6 606

•  Patch Maker  6 991

•  Айболит (remote control)  6 993

•  ListBox Drag & Drop  5 861

•  Доска для игры Реверси  97 030

•  Графические эффекты  7 193

•  Рисование по маске  6 488

•  Перетаскивание изображений  5 360

•  Canvas Drawing  5 737

•  Рисование Луны  5 445

•  Поворот изображения  4 977

•  Рисование стержней  3 533

•  Paint on Shape  2 803

•  Генератор кроссвордов  3 668

•  Головоломка Paletto  2 959

•  Теорема Монжа об окружностях  3 761

•  Пазл Numbrix  2 481

•  Заборы и коммивояжеры  3 166

•  Игра HIP  2 130

•  Игра Go (Го)  2 066

•  Симулятор лифта  2 438

•  Программа укладки плитки  2 111

•  Генератор лабиринта  2 583

•  Проверка числового ввода  2 261

•  HEX View  2 590

•  Физический маятник  2 202

 
скрыть

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



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

  • Создайте макрос в 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.