Delphi - OLE Automation
2 отговора
81 прегледа
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
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
Re: Delphi - OLE Automation
Опитай без включена опция Component Wrapper.
Друг ценен подход е ползването на готовите Automation сървъри, предварително дефинирани в Delphi. Ще използвам случая да цитирам пример от г-н Канту:
// ползва се компонента TWordDocument от палитра Servers
WordDocument1.Activate;
WordDocument1.Range.Text:='ala-bala';
чети и дишай по-леко
Друг ценен подход е ползването на готовите Automation сървъри, предварително дефинирани в Delphi. Ще използвам случая да цитирам пример от г-н Канту:
// ползва се компонента TWordDocument от палитра Servers
WordDocument1.Activate;
WordDocument1.Range.Text:='ala-bala';
чети и дишай по-леко