Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вызов из Word приложения Delphi? [D6, WinXP]


brestmarket ©   (2002-11-16 03:04:00) 

Вызов из Word приложения Delphi. У меня нижеприведенный код не работает, может есть у Вас другие альтернативные решения?

Assuming that you have Word2(6)/Delphi1 or 32bit Word/Delphi2.
Try:

Make macro in Word:
--------------------------------------------------------------------------------

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

Sub MAIN
mystring$ = StringFromDelphi
Insert mystring$
End Sub


--------------------------------------------------------------------------------

Create simple TEST.DLL in Delphi - just form with a button. Save it (eg.in c:\sample - see Word macro) as test.dpr and testform.pas. Now add to your project EXPORTED function "StringFromDelphi" and "close" on button click. You can paste the stuff from below:
--------------------------------------------------------------------------------

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


--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

unit Testform; (* testform.pas in 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.


--------------------------------------------------------------------------------

Compile test.dll. Run macro from Word, Delphi form should appear - click the button to get some data from Delphi.


Fantasist   (2002-11-17 10:50:00) [1]

Ты хоть бы написал, как не работает. Отладчиком бы походил, да выяснил бы подробнее процесс.


Давыд   (2002-11-17 10:17:00) [2]

Не знаю, прислали ли тебе уже исходники или нет. Как сделать ActiveX прочитаешь где-нибудь. А потом читай на
www.microsoft.com/rus/msdn/activ/article/library/kolesov/tips/0012.htm


brestmarket   (2002-11-17 04:42:00) [3]

Кто бы мне пару минут уделил - актуально ведь и многим интересно,- я уверен!


brestmarket   (2002-11-16 10:21:00) [4]

Пожалуйста пришли - очень жду. В любом случае вопрос остается актуальным! - необходимо именно с помощью макроса вызывать функции из моей dll-библиотеки. Очень надеюсь на помощь.


trotski   (2002-11-16 10:15:00) [5]

Делай ActiveX компонент и используй вызов его из Ворда. Я так троянчиеи писал. Могу код прислать.


Наверх

Титульная страница Поиск, карта сайта Написать письмо