![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как открыть Excel в модальном режиме? [D5, Win95/98]
Programmer1 © (2002-07-23 09:45:00)Уважвемые мастера!
Мне нужно, чтобы мое приложение после открытия Excel приостанавливало свою работу, и только когда пользователь закроет Excel, и отработает обработчик OnWorkBookClose, должно продолжится выполнение кода. Как мне это сделать?
Я пользуюсь компонентом ExcelApplication.
Помогите, пожалуйста!
Спасибо!
Programmer1 (2002-07-23 16:00:00) [1]Спасобо!!!!!!
Все работает! :)))))))))))
Lord Warlock (2002-07-23 14:53:00) [2]На тебе
var
Form1: TForm1;
flag: Boolean=True;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
ExcelApplication1.Connect;
ExcelApplication1.Visible[LOCALE_USER_DEFAULT]:=True;
ExcelApplication1.Workbooks.Add(EmptyParam,LOCALE_USER_DEFAULT);
ExcelApplication1.ActiveWorkbook.RefreshAll;
Enabled:=False;
Flag:=False;
repeat
Application.ProcessMessages;
until Flag;
ExcelApplication1.ScreenUpdating[LOCALE_USER_DEFAULT]:=true;
ExcelApplication1.Disconnect;
ShowMessage("
Programmer1 (2002-07-23 14:51:00) [3]Нет, а как я его буду делать и где?
У меня же пользователь руками Excel закрывает.
Lord Warlock (2002-07-23 14:42:00) [4]
> Programmer1 © (23.07.02 14:37)
а ExcelApplication.Disconnect делаешь?
Programmer1 (2002-07-23 14:37:00) [5]to Proton>
Попробовала Ваш вариант, дошла пошагово до цикла WHILE, покрутилась в нем немного, перешла в окно Excel и закрыла его, после чего Excel повис вместе с пректом.
Proton (2002-07-23 11:31:00) [6]<ОТКРЫВАЕШ СВОЙ EXCEL>
ENABLED := fasle;
WHILE NOT ENABLED DO APPLICATION.PROCESSMESSAGES;
<делаеш что надо дальше>
только не забудь
OnWorkBookClose
enabled := true;
Proton (2002-07-23 11:29:00) [7]
> Lord Warlock © (23.07.02 09:57)
> Елементарно - при вызове екселя ставишь Visible главной
> формы - false, в OnWorkBookClose - true
или enabled;
Programmer1 (2002-07-23 11:12:00) [8]Уважаемый Питон!
сделала как Вы предлагаете -
Excel виснет.
Может есть еще какие-то идеи?
ПИТОН (2002-07-23 10:42:00) [9]Сделай какой-нибуд флаг в True
После вывода книги делай цикл
While флаг Do;
В OnCloseWorkBook флаг := False
Programmer1 (2002-07-23 10:29:00) [10]Ничего побобного!
Проверила!
После MainForm.Hide; выполняется следующая строчка программы, не дожидаясь, пока в обработчике OnCloseWorkbook сработает MainForm.Show; .
Надо чтобы была полная аналогия с модальным режимом открытия формы.
Lord Warlock (2002-07-23 09:57:00) [11]Елементарно - при вызове екселя ставишь Visible главной формы - false, в OnWorkBookClose - true