Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2011, 14:37   #1
TEHb
Пользователь
 
Регистрация: 28.01.2009
Сообщений: 32
По умолчанию Отследить завершение Excel книги.

Всем привет! такая проблемка незнаю как отследить закрытие Excel книги.
Создаю OLE, открываю файл:

Код:
 try
    VExcel := GetActiveOleObject('Excel.Application')
  except
    on EOLESysError do
      VExcel := CreateOleObject('Excel.Application');
  end;
    VExcel.Visible := True;
    VExcel.WindowState := -4137;
    VExcel.DisplayAlerts := False;
    VExcel.WorkBooks.Open(Names);
    VExcel.WorkSheets[1].Activate;
а вот как определить закрытие WorkBooks?? помогите кто чем может!
TEHb вне форума Ответить с цитированием
Старый 19.04.2011, 16:00   #2
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

как вариант, в таимере проверяи открыто ли окно
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 19.04.2011, 16:04   #3
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Другой вариант. Проверяйте не закрыта ли книга прежде чем с ней работать.
Третий вариант. А если Вы перепрыгиваете из одного приложения другое и можете попутно закрыть книгу, то проверяйте её наличие по возвращению "домой".
OlegVE вне форума Ответить с цитированием
Старый 19.04.2011, 16:11   #4
TEHb
Пользователь
 
Регистрация: 28.01.2009
Сообщений: 32
По умолчанию

Цитата:
Сообщение от OlegVE Посмотреть сообщение
Другой вариант. Проверяйте не закрыта ли книга
вот это мне и надо. вопрос в том как это сделать по средствам OLE.
нужена функция проверки типа:
IF VExcel.WorkBooks.(функция определяющая наличие этой книги) then
....

есть ли какойто вариант проверки, типа на видимость? или размер?
TEHb вне форума Ответить с цитированием
Старый 19.04.2011, 16:18   #5
TEHb
Пользователь
 
Регистрация: 28.01.2009
Сообщений: 32
По умолчанию

Всё придумал!!
While true do
begin
sleep(1000);
try
VExcel.WorkSheets[1];
except
////делаем нужные веши!
end;
end;

Всем спасибо!!
TEHb вне форума Ответить с цитированием
Старый 20.04.2011, 00:11   #6
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию


Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  try
    VExcel.WorkSheets[1];
  except
    ////делаем нужные веши!
  end;
end;
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 20.04.2011, 00:15   #7
TEHb
Пользователь
 
Регистрация: 28.01.2009
Сообщений: 32
По умолчанию

Цитата:
Сообщение от ArtGrek Посмотреть сообщение

Код:
TForm1.Timer1Timer
у меня нет формы.
TEHb вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книги по Macros Excel и Access clown86 Microsoft Office Excel 2 29.10.2010 14:42
Книги по Excel kenta Microsoft Office Excel 3 19.09.2010 21:22
Можно ли отследить открытие другой книги? parsn Microsoft Office Excel 3 17.01.2010 01:10
Открытие Excel-книги Леон Microsoft Office Excel 1 04.07.2008 09:14
Как отследить завершение выполнения потока TThread? Трик Общие вопросы Delphi 3 24.10.2007 14:55