![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Excel [D6, Win2k]
Alibaba © (2003-10-01 10:48:00)
Привет, мастера.
Как мне определить запущен ли Excel?
Alibaba (2003-10-01 13:13:00) [1]
Да, задавал уже много раз... :((
Ни ответа ни привета.
Игорь Шевченко (2003-10-01 12:37:00) [2]
Alibaba © (01.10.03 12:33)
1) Задай свой вопрос в отдельной ветке.
2) И не в этом форуме
Alibaba (2003-10-01 12:33:00) [3]
Собственно, зачем мне это надо...
Использую TxlReport.
Как то он нестабильно работает... (или у меня руки кривые)
То выгружает в Excel, то не выгружает: ошибка "Floating point overflow"
Очень долго борюс с этой проблемой.
Стал замечать, что ошибка возникает, когда нет открытого Excel.
Посоветуйте, как правильно работать с TxlReport.
clickmaker (2003-10-01 12:10:00) [4]
Если ничего не присваивать варианту, он содержит Unassigned
Alibaba (2003-10-01 12:00:00) [5]
Да, так проще всего.
Я сначала думал что, изначально, если ничего не присваивать переменной W - она содержит NULL.
Попробовал:
try
W := GetActiveOleObject ("Excel.Application");
except
end
if VarIsNull(W) then label1.Caption:="NO" else label1.Caption:="OK";
Ничего подобного!
Необходимо именно присваивать
...
except
W := NULL;
...
Игорь Шевченко (2003-10-01 11:48:00) [6]
try
W := Get...
except
W := NULL;
end;
Alibaba (2003-10-01 11:43:00) [7]
>Игорь Шевченко © (01.10.03 11:26) [5]
Если Excel есть - работает.
Если нет - выдает ошибку "Operation unavailable".
Я это обощел:
procedure TfrmMain.Button1Click(Sender: TObject);
var W : Variant;
begin
try
W := GetActiveOleObject ("Excel.Application");
if VarIsNull(W) then label1.Caption:="NO" else label1.Caption:="OK";
except
label1.Caption:="Error";
end
end;
Мне необходимо только знать есть он или нет.
Спасибо.
Игорь Шевченко (2003-10-01 11:26:00) [8]
Alibaba © (01.10.03 11:22)
function IsExcelActive : Booelan;
var
W : Variant;
begin
W := GetActiveOleObject ("Excel.Application");
Result := not VarIsNull(W);
end;
Alibaba (2003-10-01 11:22:00) [9]
> Игорь Шевченко © (01.10.03 11:08) [3]
Функция возвращает результат типа IDispatch
Что мне с ним дальше делать?
Как мне узнать True или False?
Игорь Шевченко (2003-10-01 11:08:00) [10]
GetActiveOleObject("Excel.Application") ?
Е-Моё имя (2003-10-01 11:07:00) [11]
в списке процессов поискать
DVM (2003-10-01 10:52:00) [12]
FindWindow()