Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.12.2010, 21:01
Аватар для Zolman
Zolman Zolman вне форума
Новичок
 
Регистрация: 19.11.2009
Сообщения: 70
Репутация: 10
Вопрос Error: "Вызов отключён"

Я загружаю в StringGrid файл екселя и у меня всегда первое открытие файла сопровождается ошибкой "Вызов отключён", дальше всё нормально. Помогите мне избавится от этой ошибки. Причём если я до попытки загрузки файла вхожу в эксель, что-то там делаю, то потом всё норм.
Ответить с цитированием
  #2  
Старый 13.12.2010, 23:28
Аватар для Zolman
Zolman Zolman вне форума
Новичок
 
Регистрация: 19.11.2009
Сообщения: 70
Репутация: 10
По умолчанию

Так может кто-то поможет а то стоко умов собралось и никто не может помочь
Ответить с цитированием
  #3  
Старый 13.12.2010, 23:33
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,095
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Скорее всего ты используешь код из стандартных примеров.
Там первым вызовом стоит поытка получения существующего экземпляра объекта, которого, естесвенно, на тот момент не существует. Вот он и падает.

Если не так, то код "в студию", тут умов много, а телепатов маловато...
Ответить с цитированием
  #4  
Старый 14.12.2010, 20:08
Аватар для Zolman
Zolman Zolman вне форума
Новичок
 
Регистрация: 19.11.2009
Сообщения: 70
Репутация: 10
По умолчанию

Код:
function xls_to_stringgrid(agrid: tstringgrid; axlsfile: string): boolean;
const
xlcelltypelastcell = $0000000b;
var
xlapp, sheet: olevariant;
rangematrix: variant;
x, y, k, r: integer;
begin
result := false;
xlapp := createoleobject('excel.application'); 
try
xlapp.visible := false;
xlapp.workbooks.open(axlsfile); 
sheet := xlapp.workbooks[extractfilename(axlsfile)].worksheets[1];
sheet.cells.specialcells(xlcelltypelastcell, emptyparam).activate;
x := xlapp.activecell.row;
y := xlapp.activecell.column;
agrid.rowcount := x;
agrid.colcount := y;
rangematrix := xlapp.range['a1', xlapp.cells.item[x, y]].value;
k := 2;
repeat
for r := 2 to y do
agrid.cells[(r - 1), (k - 1)] := rangematrix[k, r];
inc(k, 1);
agrid.rowcount := k + 1;
until k > x;
rangematrix := unassigned;
finally
if not varisempty(xlapp) then
begin
xlapp.quit;
xlapp := unassigned;
sheet := unassigned;
result := true;
end;
end;
end;

lmikle: пользуемся тегами, а то будет наказание!
Ответить с цитированием
  #5  
Старый 14.12.2010, 20:35
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,095
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Здесь падает?
Код:
sheet := xlapp.workbooks[extractfilename(axlsfile)].worksheets[1];
Ответить с цитированием
  #6  
Старый 14.12.2010, 20:37
Аватар для Zolman
Zolman Zolman вне форума
Новичок
 
Регистрация: 19.11.2009
Сообщения: 70
Репутация: 10
По умолчанию

строчкой выше
Ответить с цитированием
  #7  
Старый 15.12.2010, 18:48
Аватар для Zolman
Zolman Zolman вне форума
Новичок
 
Регистрация: 19.11.2009
Сообщения: 70
Репутация: 10
По умолчанию

Ну так чё??????????
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:22.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025