Вниз
Скачать: CL | DM;

Ф-ция, возвращающая указатель на СОМ-сервер   Найти похожие ветки 

← →
TStas ©   (2008-05-20 14:41) [0]

Возвращает его криво и нестабильно. Я писал что-то с экселем, кажется, сетку в него экпортировал, и, почему-то, при попытке создавать СОМ-сервер в ф-ции, возвращающей его, как результат, всё переставало работать.
Вопрос задал, потому что мне и сейчас нужно в Ворд с Экселем данные отправлять. Заметил, что в книжках Ворд и Эксель - почему-то глобальные переменные. Мне это сразу бросалось в глаза и казалось странным, ведь пользователь может закрыть Ворд или Эксель, а тогда всё сглючится. Пробовал передавать указатель на эксель как результат ф-ции, либо совсем переставало работать или, что еще хуже, работало не везде.
Спрашиваю из чистого любопытства: почему так получается? Код привести не могу, т. к. он давным давно стёрт как глючный.


← →
Palladin ©   (2008-05-20 14:43) [1]

это у тебя позднее связывание сработало...


← →
TStas ©   (2008-05-20 14:50) [2]

Это я понимаю, что позднее, но почему оно сработало так странно?


← →
Palladin ©   (2008-05-20 14:52) [3]

не знаю :) я не психолог...


← →
Сергей М. ©   (2008-05-20 15:22) [4]


> при попытке создавать СОМ-сервер в ф-ции, возвращающей его,
>  как результат, всё переставало работать


> Код привести не могу, т. к. он давным давно стёрт


Догадываюсь как она выглядела:

function CreateExcelApplicationObject: OleVariant;
begin
 try
   Result := CreateOleObject("Excel.Application");
 except
   Result := "всё перестало работать";
 end;
end;


← →
tesseract ©   (2008-05-20 16:12) [5]


> Заметил, что в книжках Ворд и Эксель - почему-то глобальные
> переменные.


В книжках примеры приводят, а не рабочий код.


> Result := CreateOleObject("Excel.Application");


Он же про COM говорит, а не про OLE. Там принято IUknown-ами кидаться.


> Пробовал передавать указатель на эксель как результат ф-
> ции, либо совсем переставало работать или, что еще хуже,
>  работало не везде.


Не "указатель", а "интерфейс".


← →
Сергей М. ©   (2008-05-20 16:41) [6]


> tesseract ©   (20.05.08 16:12) [5]


Без разницы.
Excel-сервер в любом случае представлен диспинтерфейсом.


← →
TStas ©   (2008-05-20 18:59) [7]

Извините, конечно, ОЛЕ, а не СОМ.


← →
Сергей М. ©   (2008-05-20 19:28) [8]


> TStas ©   (20.05.08 18:59) [7]


Следует четко понимать разницу между ними (т.е. технологиями)


← →
tesseract ©   (2008-05-20 20:28) [9]


> Следует четко понимать разницу между ними (т.е. технологиями)


IDispatch в приниципе. И вся разница.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.012 c
3-1201166415
Max
2008-01-24 12:20
2008.07.06
работа с Excel


2-1212738159
GreyWolf
2008-06-06 11:42
2008.07.06
Архитектура приложения


3-1201171203
harisma
2008-01-24 13:40
2008.07.06
TADODataSet с выходным параметром.


2-1212738752
tey
2008-06-06 11:52
2008.07.06
знак &


2-1212680998
Makaveli
2008-06-05 19:49
2008.07.06
idhttp




   Наверх