тонкости связи ворд с билдером
делаю следующее:
OleVariant FE;
Variant g;
FE = ExtractFileDir(Application->ExeName)+"\\forms\\sob.doc";
g = ExtractFileDir(Application->ExeName)+"\\forms\\v.doc";
WordApplication1->Connect();
WordApplication1->Documents->Open(FE);
WordApplication1->Visible = true;
WordDocument1->ConnectTo(WordApplication1->Documents->Item(FE));
WordDocument1->Application->Selection->InsertFile(g);
всё ок.вставляется файл тока в начало открытого файла а мне надо в конце.помогите люди добрые горю
Цитата:
Originally posted by EvilSimba
вот какая проблема:
делаю следующее:
OleVariant FE;
Variant g;
FE = ExtractFileDir(Application->ExeName)+"\\forms\\sob.doc";
g = ExtractFileDir(Application->ExeName)+"\\forms\\v.doc";
WordApplication1->Connect();
WordApplication1->Documents->Open(FE);
WordApplication1->Visible = true;
WordDocument1->ConnectTo(WordApplication1->Documents->Item(FE));
WordDocument1->Application->Selection->InsertFile(g);
всё ок.вставляется файл тока в начало открытого файла а мне надо в конце.помогите люди добрые горю
вот какая проблема:
делаю следующее:
OleVariant FE;
Variant g;
FE = ExtractFileDir(Application->ExeName)+"\\forms\\sob.doc";
g = ExtractFileDir(Application->ExeName)+"\\forms\\v.doc";
WordApplication1->Connect();
WordApplication1->Documents->Open(FE);
WordApplication1->Visible = true;
WordDocument1->ConnectTo(WordApplication1->Documents->Item(FE));
WordDocument1->Application->Selection->InsertFile(g);
всё ок.вставляется файл тока в начало открытого файла а мне надо в конце.помогите люди добрые горю
Вставляется в начало, потому что при открытии документа курсор в начале стоит. Чтобы вставилось в нужное тебе место, нужно сначала курсор передвинуть, а потом уже выводить. Тут уже возможны варианты. Ну что могу посоветовать? Открываешь сам файл в Ворде, ставишь на запись макрос, двигаешься в конец файла, заканчиваешь запись. А потом смотришь на код макроса. Примерно то же самое тебе надо будет сделать и в Билдере. Лично я так и разбирался.
сделалв документе ворд закладку и перемещал курсор к ней перед инсертом файла вот код:
Variant what(wdGoToBookmark);
OleVariant Bookmark1;
Variant addfile;
AnsiString offf;
offf = "teh";
Bookmark1 = offf;
WordApplication1->Selection->GoTo(what,EmptyParam,EmptyParam,Bookmark1);
WordDocument1->Application->Selection->EndKey(Unit:=wdStory);
WordDocument1->Application->Selection->InsertFile(g);
всё
Цитата:
Originally posted by N_Alm
// вставка указателя в конец файла
WordDocument1->Application->Selection->EndKey(Unit:=wdStory);
всё
// вставка указателя в конец файла
WordDocument1->Application->Selection->EndKey(Unit:=wdStory);
всё
не работает эта строчка
uses Registry,Variants, ComObj, OleServer, WordXP//(2000,..)
// ini server word
var RegData:TRegistry;
cls_WordObject:String;
AppWord, Word_Doc:OleVariant;
begin
RegData:=nil;
try
try
cls_WordObject:='Word.Application';
RegData:=TRegistry.Create;
RegData.RootKey:=HKEY_CLASSES_ROOT;
if regData.OpenKey('\Word.Application\CurVer', False) then begin
cls_WordObject:=regData.ReadString('');
regData.CloseKey;
end;
AppWord:=CreateOleObject(cls_WordObject);
AppWord.Visible:=false;
except
raise
end;
finally
RegData.Free;
end;
//---------------
// Empty file
AppWord.Documents.Add(ExtractFilePath(ParamStr(0))+'word\Tmp.doc');
// Go to end
AppWord.Selection.EndKey(Unit:=wdStory);
// Template file
AppWord.Selection.InsertFile(ExtractFilePath(ParamStr(0))+'word\Template.doc', ConfirmConversions:=False, Link:=False);
// Insert Page
//AppWord.Selection.InsertBreak(Type:=wdPageBreak);
AppWord.quit;
varclear(AppWord);
end;