Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Excel вместе, с twebbrowser 
:(
    Опции темы
TrillerMan
Дата 25.12.2006, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 20.12.2006

Репутация: нет
Всего: нет



Здрасти всем использую в программе ole Excel и TWebBrowser.
Когда работаю в программе тока с Excel всё нормально,но после того как пытаюсь вызвать второе окно программы с twebbrowser получаю окно браузера гдето вверху и больше ничего ни какой форму моей программы и ничего.Ну и получаю в ответ ошибку: Could not obtain OLE control window handle

Причём странно когда запускаю одновременно вторую программу с twebbrowser всё нормально,а когда в одной хочу заюзать ексел и twebrowser такую ошибку выдаёт и ничего не выходит.Предполагаю что я не убиваю до конца ексел обьект иначе бы всё должно быть нормально.Ниже привёл код,надеюсь ктото подскажет как убить этот обьект до конца или если я ошибаюсь как избавится от ошибки? smile  smile  smile 


Код

{
Функция загрузки xls-файла в TStringGrid
}
function TMainForm.LoadXLS(XLSFile: string): Boolean;
const
xlCellTypeLastCell = $0000000B;
var
XLApp, Sheet: OLEVariant;
RangeMatrix: Variant;
TableCols, TableRows: Integer;
GridCol, GridRow: Integer;

begin
Result := False;

{Создаем экземпляр Excel}
XLApp := CreateOleObject('Excel.Application');
try
{Скрываем окно Excel}
XLApp.Visible:= False;


{
Загружаем в рабочую книгу xls-файл и получаем
объект - первый лист книги
}
XLApp.Workbooks.Open(XLSFile);
Sheet:= XLApp.Workbooks[ExtractFileName(XLSFile)].WorkSheets[1];

{
Выделяем на листе крайнюю правую ячейку.
Ее номер строки и столбца по сути число заполненных строк и столбцов
на листе
}
Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
TableRows:= XLApp.ActiveCell.Row;
TableCols:= XLApp.ActiveCell.Column;

{
Устанавливаем число строк и столбцов в StringGrid.
Число строк на одну больше, так как мы используем одну строку
на заголовок таблицы
}
SourceGrid.RowCount:= TableRows+1;
SourceGrid.ColCount:= TableCols;

{
Получаем диапазон заполненных ячеек и копируем их значения
в StringGrid.
При адресации ячеек в StringGrid, номер строки увеличиваем на 1
(т.е. не уменьшаем на 1, как номер столбца, а оставляем без изменений).
Причина та же: одна строка на заголовок.
}
RangeMatrix := XLApp.Range['A1', XLApp.Cells.Item[TableRows, TableCols]].Value;

for GridCol:= 1 to TableCols do
begin
for GridRow:= 1 to TableRows do
SourceGrid.Cells[GridCol-1, GridRow]:= RangeMatrix[GridRow, GridCol];

SourceGrid.Cells[GridCol, 0]:= '';
end;

Button2.Enabled:= True;

RangeMatrix := Unassigned;
finally
if not VarIsEmpty(XLApp) then
begin
XLApp.Quit;
XLAPP := Unassigned;
Sheet := Unassigned;
Result := True;
end;
end;
end;



M
Girder
Пользуйся тегом CODE!

PM MAIL   Вверх
Albinos_x
Дата 29.12.2006, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



ничего не понял.....


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0373 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.