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

Вниз

можно иметь два указателя на один Excel, разных типов?   Найти похожие ветки 

 
OW ©   (2011-04-29 12:08) [0]

Половина кода написана в таком стиле:
 ExcelApp, Workbook: Variant;
     ExcelApp := CreateOleObject("Excel.Application");
     Workbook := ExcelApp.WorkBooks.Add;

половина через компоненты
 exapp1: TExcelApplication;  
 IWorkbook: Excel2000.ExcelWorkbook;
    exapp1.Connect;
    exapp1.Workbooks.Add(EmptyParam, 0);
    IWorkbook := exapp1.ActiveWorkbook;

подскажите прием, как бы сделать так, что бы exapp1 и ExcelApp указывали на одно и тоже.

 exapp1.Connect;
 exapp1.Visible[0] := True;
 exapp1.Workbooks.Add(EmptyParam, 0);
 IWorkbook := exapp1.ActiveWorkbook;

 Workbook := Variant(IWorkbook);  // тут можно приравнять книги

 ShowMessage( IntToStr(IWorkbook.Worksheets.Count) ); //спрашиваем кол- во у одного

 WorkBook.WorkSheets[1].delete; // удаляем у другого

 ShowMessage( IntToStr(IWorkbook.Worksheets.Count) ); // переспрашиваем у первого, он понял все. На одну меньше показал.

то же с объектом выше не идет
ExcelApp := Variant(exapp1);
[Error] : Invalid typecast


 
DiamondShark ©   (2011-04-29 12:14) [1]


> ExcelApp := Variant(exapp1);

ExcelApp := exapp1.DefaultInterface;


 
OW ©   (2011-04-29 12:39) [2]

а ларчик прост..
Спасибо!


 
OW ©   (2011-04-29 12:41) [3]

А еще бы наоборот, для полного счастья..


 
OW ©   (2011-04-29 12:42) [4]

или где почитать?


 
OW ©   (2011-04-29 12:42) [5]

или что погуглить?


 
DiamondShark ©   (2011-04-29 13:03) [6]


> OW ©   (29.04.11 12:41) [3]
> А еще бы наоборот, для полного счастья..

Наоборот будет не совсем наоборот.

var
 dispExcel: IExcelApplication; // или какой там тип интерфейса?
...

dispExcel := IDispatch(ExcelApp) as IExcelApplication;

где-то так.

А может быть у обёртки TExcelApplication есть возможность подключиться к существующему экземпляру COM-объекта.
Я наизусть не помню, дельфи нет, и давно это было.

Загляни в исходник TExcelApplication, там всё понятно должно быть, это довольно тупая машинногенерированная обёртка над automation-объектами.

Читать и гуглить можно про COM, Automation. Чтоб далеко не гуглить можно начать с мсдн, делая поправки на дельфи. Исходники обёрток, которые дельфи генерирует для COM-объектов, тоже очень проясняют дело.


 
OW ©   (2011-04-29 13:56) [7]

понял. так и думал.
никогда не копался в сторону интерфейсов.. боюсь я их :)

Спасибо, Дмитрий!


 
OW ©   (2011-04-29 15:44) [8]

еще раз спасибо!
всех получилось скрестить :)


 
Anatoly Podgoretsky ©   (2011-04-29 16:09) [9]

> DiamondShark  (29.04.2011 12:14:01)  [1]

Pointer1: Pointer;
Pointer2: Pointer;

а если нужно три, то

Pointer3: Pointer;


 
ов (дом)   (2011-04-30 10:27) [10]


> Anatoly Podgoretsky ©   (29.04.11 16:09) [9]



> разных типов?


 
Anatoly Podgoretsky ©   (2011-04-30 13:54) [11]

> ов (дом)  (30.04.2011 10:27:10)  [10]

Любых



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

Форум: "Начинающим";
Текущий архив: 2011.08.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.064 c
15-1303122801
DiamondShark
2011-04-18 14:33
2011.08.07
Мобильные браузеры (WM)


2-1303912277
young and strong
2011-04-27 17:51
2011.08.07
выбор типа параметра


15-1303146671
Nic
2011-04-18 21:11
2011.08.07
Баннер на сайте. Как вести статистику?


1-1261562629
DL
2009-12-23 13:03
2011.08.07
парсин строки имени файла


6-1239719308
sasha73
2009-04-14 18:28
2011.08.07
TidPOP3 заголовки не всех писем получает. Как заставить?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский