Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.08.05;
Скачать: [xml.tar.bz2];

Вниз

Как открыть Excel в модальном режиме?   Найти похожие ветки 

 
Programmer1   (2002-07-23 09:45) [0]

Уважвемые мастера!
Мне нужно, чтобы мое приложение после открытия Excel приостанавливало свою работу, и только когда пользователь закроет Excel, и отработает обработчик OnWorkBookClose, должно продолжится выполнение кода. Как мне это сделать?
Я пользуюсь компонентом ExcelApplication.
Помогите, пожалуйста!
Спасибо!


 
Lord Warlock   (2002-07-23 09:57) [1]

Елементарно - при вызове екселя ставишь Visible главной формы - false, в OnWorkBookClose - true


 
Programmer1   (2002-07-23 10:29) [2]

Ничего побобного!
Проверила!
После MainForm.Hide; выполняется следующая строчка программы, не дожидаясь, пока в обработчике OnCloseWorkbook сработает MainForm.Show; .
Надо чтобы была полная аналогия с модальным режимом открытия формы.


 
ПИТОН   (2002-07-23 10:42) [3]

Сделай какой-нибуд флаг в True
После вывода книги делай цикл
While флаг Do;
В OnCloseWorkBook флаг := False


 
Programmer1   (2002-07-23 11:12) [4]

Уважаемый Питон!
сделала как Вы предлагаете -
Excel виснет.
Может есть еще какие-то идеи?


 
Proton   (2002-07-23 11:29) [5]


> Lord Warlock © (23.07.02 09:57)
> Елементарно - при вызове екселя ставишь Visible главной
> формы - false, в OnWorkBookClose - true

или enabled;


 
Proton   (2002-07-23 11:31) [6]

<ОТКРЫВАЕШ СВОЙ EXCEL>
ENABLED := fasle;
WHILE NOT ENABLED DO APPLICATION.PROCESSMESSAGES;
<делаеш что надо дальше>
только не забудь
OnWorkBookClose
enabled := true;


 
Programmer1   (2002-07-23 14:37) [7]

to Proton>
Попробовала Ваш вариант, дошла пошагово до цикла WHILE, покрутилась в нем немного, перешла в окно Excel и закрыла его, после чего Excel повис вместе с пректом.



 
Lord Warlock   (2002-07-23 14:42) [8]


> Programmer1 © (23.07.02 14:37)


а ExcelApplication.Disconnect делаешь?


 
Programmer1   (2002-07-23 14:51) [9]

Нет, а как я его буду делать и где?
У меня же пользователь руками Excel закрывает.


 
Lord Warlock   (2002-07-23 14:53) [10]

На тебе

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 16:00) [11]

Спасобо!!!!!!
Все работает! :)))))))))))



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.08.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
14-13796
Катерина
2002-07-10 12:23
2002.08.05
Help`ы. Крик души


3-13567
sdram
2002-07-15 15:05
2002.08.05
Помогите отредактировать запись.


14-13809
melifaro
2002-07-11 19:08
2002.08.05
Встреча Мастеров DELPHI В Санкт-Петербурге


7-13831
Ernar
2002-05-11 22:01
2002.08.05
Процессор


1-13674
Sub
2002-07-23 16:48
2002.08.05
Общие вопросы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский