Форум: "Основная";
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];
ВнизWord и его потомки Найти похожие ветки
← →
Doctor Deejay (2003-09-20 11:48) [0]Проблема в следующем: Есть программа, которая создает файл док в открытом из нее же ворде. После того как я открываю двойным щелчком еще один файл док, а потом пытаюсь добавить какое-то инфо в свой док, то программа почему-то добавляет во второй. Можно ли как-то защитить или привязать программу к определенному файлу?
← →
jack128 (2003-09-20 13:25) [1]А как ты дабавляешь данные в док файл?
← →
Doctor Deejay (2003-09-21 13:38) [2]{-------------------- ОТКРЫТИЕ ВОРДА -----------------------}
procedure TForm1.wordstart;
begin
try
WApp.Connect;
WApp.Visible := False;
WApp.Caption := "Market Media Monitoring";
except showmessage("Невозможно запустить Word"); end;
end;
{----------------------------------------------------------}
{---------------------- ЗАКРЫТИЕ ВОРДА ----------------------}
procedure TForm1.wordexit;
begin
try
WApp.Disconnect;
WApp.Quit;
except showmessage("Невозможно отключить Word"); end;
end;
{-----------------------------------------------------------}
{--------------- ОТКРЫТИЕ ВЫБРАННОГО ФАЙЛА -------------------}
procedure TForm1.openfile(var napravlenie:integer);
var
filename: olevariant;
begin
path:= extractfilepath(Application.ExeName)else
try WApp.Documents.Add(path,emptyparam, emptyparam, emptyparam);
except showmessage("файл "+ filename +" не найден"); end;
WDoc.ConnectTo(WApp.ActiveDocument);
WParFor.ConnectTo(WApp.Selection.ParagraphFormat);
end;
{-----------------------------------------------------------}
{------------ СОХРАНЕНИЕ ФАЙЛА И ЗАКРЫТИЕ------------------}
procedure TForm1.savefile;
var
SaveChanges: OleVariant;
begin
SaveChanges:=True;
try
WApp.ActiveDocument.SaveAs(path,emptyparam, emptyparam, emptyparam, emptyparam, emptyparam, emptyparam, emptyparam, emptyparam, emptyparam, emptyparam);
except end;
SaveChanges:=False;
WApp.ActiveDocument.Close(SaveChanges, emptyparam, emptyparam);
end;
{----------------------------------------------------------}
{---------------- ПЕЧАТЬ ТЕКСТА В ДОКУМЕНТЕ ---------------}
procedure TForm1.printtext(var txt:string; bold, size, color:integer);
begin
WApp.Selection.Font.Name:="Times New Roman";
WApp.Selection.Font.Bold:=bold;
WApp.Selection.Font.Size:=size;
WApp.Selection.Font.ColorIndex:=color;
WApp.Selection.TypeText(txt+#13);
end;
{-------------------------------------------------------------}
//или второй способ
{------------------- ПЕЧАТЬ ТЕКСТА 2 -------------------------}
procedure TForm1.printurl(var url,urlname:string; bold, size:integer);
var i1,i2,vcol,gcol:OleVariant;
begin
i1:=urlname;
i2:="#"+url;
Wapp.ActiveDocument.Hyperlinks.Add(Wapp.Selection.Range, i2, emptyparam, emptyparam, i1, emptyparam);
vcol:=WApp.Selection.Start-length(urlname)-1;
gcol:=WApp.Selection.End_;
WDoc.Range(vcol,gcol).Font.Color:=clBlack;
WDoc.Range(vcol,gcol).Font.Bold:=bold;
WApp.Selection.Start:=WApp.Selection.End_;
end;
{---------------------------------------------------------}
Всё работае классно, пока не открою 2 файл(не из программы). Потом прога как бы теряет тот документ, который создала сама.
Если кто-то может чем-то помочь - буду очень благодарен, т.к. кроме того, что она "теряет" файл, она сохраняет второй документ на место первого. Так я потерял свою работу в 250 страниц. :(
← →
jack128 (2003-09-21 19:03) [3]Вобщем как я и думал..
> WApp.ActiveDocument.
В корне не верно!
Нужно после открытия документа сделать
WordDoc := WApp.ActiveDocument;и далее работать, только с WordDoc
Дело в том, что после открытия другого документа - он становится активным, сответственно ты работаешь с ненужным тебе док"ом
← →
Doctor Deejay (2003-09-22 11:10) [4]
Спасибо огромное!!!!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c