Главная страница
    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.006 c
6-13759
Ajax
2002-05-11 22:02
2002.08.05
Определение траффика через модемное соединение.


1-13719
Andrew22
2002-07-24 07:39
2002.08.05
Завершение программы


6-13751
Vit3128
2002-05-24 15:56
2002.08.05
Как получить имя компьютера и его название!


7-13839
Jet_vrn
2002-05-17 19:04
2002.08.05
Как ускорить рисование на канве?


3-13573
RDA
2002-07-16 10:48
2002.08.05
FIBDataSet.pas - где взять





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский