Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение доступа к Excel, exception raised 
:(
    Опции темы
youri
Дата 12.6.2004, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



Люди, подскажите, пытаюсь получить доступ к Excel'ю таким макаром
Код
var
Excel, Range: Variant;
begin
try
 Excel := GetActiveOleObject('Excel.Application');  // 1
except
 try
  Excel := CreateOleObject('Excel.Application');  // 2
  Excel.Visible := True;
 except
  Exception.Create('Error');
 end;
end;
end;

Но в строках 1 и 2 выдает сообщение
Цитата
Project p1.exe raised exception class EOleSysError with message 'Неверная строка с указанием класса'. Process stoped. Use Step or Run to continue.

Excel установлен. Кстати, а почему этот exception не ловится блоком try...except
PM   Вверх
Kesh
Дата 12.6.2004, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 4
Всего: 54



Боюсь ошибиться, но попробуй не Variant, а OleVariant...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
YURIC
Дата 12.6.2004, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 5.8.2003

Репутация: нет
Всего: 1



100%
Код
Excel, Range: OleVariant;

PM MAIL   Вверх
Kesh
Дата 12.6.2004, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 4
Всего: 54



@ля, пардон, ступил... Можно и Variant оставить...
Утебя скорее всего просто var внутри процедуры... - вынеси его в интерфейсную часть модуля...
Вот так примерно
Код
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ComObj;

type
 TForm1 = class(TForm)
   procedure FormClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 Excel, Range: OleVariant;



--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
youri
Дата 12.6.2004, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



Он же говорит что "неверная строка с указанием класса", а не "не могу сохранить ссылку на объект"
PM   Вверх
Kesh
Дата 12.6.2004, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 4
Всего: 54



У меня все сработало... Правда вылетал в Delphi... Но в самой винде все нормально сделал... Причем прямо с твоим кодом...

Это сообщение отредактировал(а) Kesh - 12.6.2004, 20:52


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Albinos_x
Дата 13.6.2004, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Во-первых:
Excel, Range:OleVariant;
Во-вторых, у меня со второй строчкой проблем нет, а вот с первой - пишет: "операция недоступна", Excel не запущен, поэтому это понятно, только не понятно, почему try не срабатывает. Разбираюсь....

PS:
Ты не забыл подключить модули: ExcelXP, ComObj.
Добавлено @ 16:52
Разобрался...
Ошибка выдаётся, если прога запускается под делфёй, а если запускать *.ехе, то выполняется всё корректно.


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Kesh
Дата 13.6.2004, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 4
Всего: 54



Albinos_x Дык само собой он писать будет... Это ж ошибка, получать незапущенный Excel...

Это сообщение отредактировал(а) Kesh - 13.6.2004, 16:57


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Albinos_x
Дата 13.6.2004, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Kesh
Это, яи так уже понял.
Просто до этого, этим блоком я особенно не пользовался.
Я пресекал возможности возникновения ошибок через If...Then...else...; Проверяя корректность всех заданых условий. И даже если пользовался, то с этим не сталкивался.


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Kesh
Дата 13.6.2004, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 4
Всего: 54



Albinos_x дык, это я просто так... не обижайся...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Albinos_x
Дата 14.6.2004, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Kesh
....не обижаюсь.....



--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
youri
Дата 15.6.2004, 06:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



Цитата
Ошибка выдаётся, если прога запускается под делфёй, а если запускать *.ехе, то выполняется всё корректно.

Просто у тебя, Albinos_x, в Tools/Debugger Options/вкладка Language Exceptions стоит галочка Stop On Delphi Exceptions, а меня, по-моему, просто Windows глючит (переустановить бы sad.gif ).

PM   Вверх
Albinos_x
Дата 16.6.2004, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата
(переустановить бы  )

Тык давно пора


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0527 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.