Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.08.07;
Скачать: CL | DM;

Вниз

можно иметь два указателя на один 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;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.002 c
15-1302726596
Юрий
2011-04-14 00:29
2011.08.07
С днем рождения ! 14 апреля 2011 четверг


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


2-1279050439
Evgeney
2010-07-13 23:47
2011.08.07
Рамка для вырезания рисунка...


2-1303980851
stud92
2011-04-28 12:54
2011.08.07
отношение между таблицами бд


15-1302812996
Юрий
2011-04-15 00:29
2011.08.07
С днем рождения ! 15 апреля 2011 пятница





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