Форум: "Начинающим";
Текущий архив: 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