Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
14-54861
Leran2002
2003-04-01 20:57
2003.04.17
Ты скажи ну хто его придумал... :((


1-54671
vile
2003-04-04 14:21
2003.04.17
Перерисовка формы


6-54775
Eeklo
2003-02-20 12:29
2003.04.17
Прохождение firewall-authentication HTTP и FTP клиентом


4-54961
SeNtiMeL
2003-02-15 14:55
2003.04.17
Вопрос по формам ! Или BringOnTop


9-54389
seemann
2002-10-28 12:20
2003.04.17
3d max





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский