Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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()


Наверх

Титульная страница Поиск, карта сайта Написать письмо