Главная страница
    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.002 c
15-1302571619
Jumbo
2011-04-12 05:26
2011.08.07
В этот день, 50 лет назад...


2-1304098588
SIV5000
2011-04-29 21:36
2011.08.07
TObject + TObjectList + Assigned


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


2-1304085586
ПростоВася
2011-04-29 17:59
2011.08.07
Как работать с WM_GETTEXT


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





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