Показать сообщение отдельно
Старый 20.03.2002, 21:00   #5  
rkouznet is offline
rkouznet
Участник
 
4 / 10 (1) +
Регистрация: 20.03.2002
Адрес: Санкт-Петербург
Цитата:
Изначально опубликовано Андре

COM wb;
COM cn
cn = new COM("Excel.Application");
cn.Visible = True;
wb = cn.Workbooks.Add();
cn.ActiveCell.Value = "1";

Вот этот код работает в Word'е, но не работает в Аксапте.
Навряд ли. Word на попытке выполнить здесь Workbooks.Add оно свалится, т.к. на момент связывания Workbooks будет не иметь определнных свойств. Лучше обращаться напрямую к объекту класса ExcelWorksheet, или Execl.Workspace
Второе, - присвоение может и не поддердживаться. Попытайтесь так -
сn.Visible(True);
Это такое же свойство как и Provider для ADODB.Connection

Цитата:

Непонятно также откуда Аксапта берет информацию о методах и свойствах СОМ сервера. В VB я подключаю соответсвующую библиотеку, в Delphi делаю импорт tlb, здесь же нет ничего подобного.
Это если вы делаете статическое связываение.
А можно ведь ничего и не импортировать. - Смысл использования COM в том, что приложение может и не знать заранее объект какого приложения, какого класса вы создаете, а определять это в момент выполнения. Так и здесь - Аксапта(Delphi-приложение, Word что угодно) обращается к библиотекам COM инетерфейса (ole), та в registry смотрит id класса имеющего нимаенование Excel.Application, находит сервер-приложение, активизирует его, опрашивает и т.д.....