Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.17;
Скачать: CL | DM;

Вниз

Office & Delphi   Найти похожие ветки 

 
Ruslan.   (2003-04-02 19:18) [0]

Всем привет! Уважаемые мастера чего в этой процедуре не хватает для работы с Office XP или Office2000? С Office 97 прекрасно работает.

uses ComObj;

procedure TForm1.Button1Click(Sender: TObject);
var
MSWord: Variant;
begin
try
MsWord := GetActiveOleObject("Word.Application");
except
try
MsWord := CreateOleObject("Word.Application");
MsWord.Visible := True;
except
Exception.Create("Error");
end;
end;

MSWord.Documents.Add;
MSWord.Selection.Font.Size := 12;
MSWord.Selection.TypeText("Текст");
MSWord.Selection.Font.Bold := true;
MSWord.Selection.TypeText(#13#10"new"); MSWord.ActiveDocument.SaveAs("C:\ex.doc");
end;


 
Иван Шихалев ©   (2003-04-02 21:42) [1]

Я бы попробовал добавить после MSWord.Documents.Add

MSWord.ActiveWindow.Visible := true;

Хотя утверждать не берусь. А что происходит в 2K/XP?


 
Ruslan.   (2003-04-03 19:40) [2]

Что происходит? Да просто выходит сообщение "Variant does not reference an automation object" и все. Помогите пожалуйста очень нужно. И еще один вопрос, можно ли увеличить каким то образом скорость передачи данных в Word.


 
Smashich ©   (2003-04-03 20:10) [3]

1. почему не юзать закладку servers? удобнее мне кажется...и еще толи у тя офис не установлен, толи в D5 проблема...в D6 все работает..
2 а где у тя собственно тормоза? код?


 
Smashich ©   (2003-04-03 20:16) [4]

в D именно под XP и с OfficeXP


 
Clickmaker ©   (2003-04-03 20:28) [5]

update pack 1 для дельфи стоит?


 
Ozone ©   (2003-04-04 05:22) [6]

Может так попробуешь:
var
Wa, Wd: Variant;
begin
Wa:=CreateOleObject("Word.Application");
Wd:=Wa.Documents.Add;
Wa.Visible:=true;
{а помот уже работаешь только с Wd как документом}
{
По окончанию работы Wd.Close; Wa.Quit;
}
end;

И никаких ошибок.


 
Rol   (2003-04-04 06:59) [7]

Обратите внимание на try/except. Ситуация: нет активного окна и по каким-либо причинам не создаётся ОЛЕ-объект, что делаем дальше согласно коду? Правильно, в ЛЮБОМ случае пытаемся получить доступ к его св-вам/методам.


 
Bel ©   (2003-04-04 09:54) [8]

Советую воспользоваться советом Smashich © (03.04.03 20:10) насчёт вкладки Servers. Можешь почитать эту статью: http://www.proglib.ru/articles/art0000039.asp . Там насчёт того, что компоненты из вкладки Servers работают быстрее, чем позднее связывание.

И ещё. Насчёт твоего кода. По-моему, надо использовать не Variant, а OleVariant.


 
Ruslan.   (2003-04-05 18:26) [9]

Спасибо!


 
DrPass ©   (2003-04-05 20:10) [10]

Честно говоря, я грешил на несколько некорректную реализацию объекта, связанного с интерфейсом Word.Application в Office 2000.
Была аналогичная проблема - в совершенно невинном куске кода


> var
> Wa, Wd: Variant;
> begin
> Wa:=CreateOleObject("Word.Application");
> Wd:=Wa.Documents.Add;
> Wa.Visible:=true;
> {а помот уже работаешь только с Wd как документом}
> {
> По окончанию работы Wd.Close; Wa.Quit;
> }
> end;

Вот таком точно. Прога просто заполняла таблицу (документ создавался на основе темплейта), и сохраняла в файл. Единственное, я не закрывал сам документ перед вызовом Quit - по логике, разве не пофиг ему?
После вызова WaQuit Word все равно оставался в памяти, и перед завершением работы программа на пустом месте выдавала Access Violation. А вот в Office 97 все работало, как как и должно было. Я поленился разбираться, т.к. на всех машинах в конторе тогда стоял 97, и проблем не возникало.


 
Ruslan.   (2003-04-06 09:54) [11]

C Word2000 прокатывает а вот с EXCEL2000 не работает.
var
EA: Variant;
begin
EA:=CreateOleObject("Excel.Application");
EA.Visible:=true;
..................
..................
EA.Close; Wa.Quit;
end;


 
Ruslan.   (2003-04-06 10:00) [12]

Ошибачка в предпоследней строчке "EA.Close; Wa.Quit" замена->"EA.Quit"



Страницы: 1 вся ветка

Текущий архив: 2003.04.17;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
14-54862
Василий Тёркин
2003-03-30 15:49
2003.04.17
Злоба дня


1-54640
Vick
2003-03-31 16:06
2003.04.17
Округление


8-54751
KA_
2003-01-11 11:54
2003.04.17
SVG


1-54580
jen_bond
2003-04-07 08:10
2003.04.17
Размер шрифта.


1-54727
Some1
2003-04-03 11:43
2003.04.17
Как удалить папку с подкаталогами?