Delphi - OLE Automation

2 отговора 81 прегледа
#1

Delphi - OLE Automation

var MyWord : _Application;
var MyDoc : _Document;
var MyTab : Table;
var MyCol : Column;
var OleVar : OleVariant;

MyWord := CoWordApplication.Create as _Application;
MyWord.Visible := True;

MyDoc := MyWord.Documents.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam);
OleVar := 0;
MyTab := MyDoc.Tables.Add(MyDoc.Range(OleVar, OleVar), 2, 3, OleVar, OleVar);

MyCol := MyTab.Columns.Item(1); //Prihvashta colona nomer 1;
MyCol.SetWidth(30, wdAdjustProportional); //Zadava shirochina na kolona 100;

MyCol := MyTab.Columns.Item(2);
MyCol.SetWidth(300, wdAdjustProportional);

MyCol := MyTab.Columns.Item(3);
MyCol.SetWidth(70,wdAdjustProportional);

MyTab.Cell(1, 1).Range.Text := "alabala";
MyTab.Cell(1, 2).Range.Text := "alabala";
MyTab.Cell(1, 3).Range.Text := "alabala";

Svarzvaneto na Word.tlb s moeto prilojenie osashtestviavam po slednia nachin : Ot menu Project izbiram Import Type Library, ot spisaka izbiram - Microsoft Word9.0 Object Library (Version 8.1), toest - MSWORD9.olb.
Chrez butona "Create Unit" pri postavena otmetka - "Generate Component Wrapper" namirashtase nai dolu na dialoga.

Vaprosat mi e zashto ne moge da se startira Word.exe ot moeto prilojenie,
Debugera me prashta na reda : "MyWord := CoWordApplication.Create as _Application;"
Tova li e pravilniat nachin na svarzvane i ako ne e koi e?
BLAGODARIA PREDVARITELNO

Отговор
в отговор на BMX #2

Re: Delphi - OLE Automation

Опитай без включена опция Component Wrapper.
Друг ценен подход е ползването на готовите Automation сървъри, предварително дефинирани в Delphi. Ще използвам случая да цитирам пример от г-н Канту:

// ползва се компонента TWordDocument от палитра Servers
WordDocument1.Activate;
WordDocument1.Range.Text:='ala-bala';

чети и дишай по-леко
Отговор
в отговор на BMX #3

Re: Delphi - OLE Automation

ami sled nqkolko 4asa

Отговор