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

Вниз

Ув. мастера, как на время действия пр-ры вывести окно "Ждите"?   Найти похожие ветки 

 
LordBTR   (2004-03-10 12:05) [0]

Дело вот в чем: Есть на форме кнопка, по нажатию на которую вызывается процедура проводки документа по базе данных. И вот при входе в эту процедуру необходимо вывести окно вроде "Ждите", а перед выходом окно это убрать, а то юзвери по десять раз жмут на кнопку, а то и вовсе задачу снимают. :(  Да, можно, конечно, перенести все действия в форму "Ждите", а в процедуре просто ShowModal формы, но не хотелось бы. Есть ли способ вывести окно с сообщением без прерывания выполнения процедуры?


 
Тимохов ©   (2004-03-10 12:09) [1]

А в чем проблема?
Показываете информационное окошко, далее application.processmessages, далее проводка документа по базе, далее free окошку...

Пользователь будет видеть "Ждите" и, думаю, ждать.

Или вам надо сделать это асинхронно, т.е. пользователь может продолжать работать пока идет проводка документа?
Задача до конца не ясна.


 
stelius ©   (2004-03-10 12:09) [2]

begin
 FormWait := TForm.Create(self);
 FormWait.Show;
 FormMain.Enabled := False;
 <действия>
 FormMain.Enabled := True;
 FormWait.Free;
end;


 
Anatoly Podgoretsky ©   (2004-03-10 12:10) [3]

Show


 
LordBTR   (2004-03-10 12:28) [4]


> stelius ©   (10.03.04 12:09) [2]

Есть один нюанс. После FormWait.Free срабатывает FormMain.OnActivate и всю картину портит, т.к. там переоткрываются запросы, а делать еще и Locate после всего этого просто не разумно. :( Как быть?


> Тимохов ©   (10.03.04 12:09) [1]

Если я правильно Вас понял, то application.processmessages надо вызывать в OnActivate нового окна? Или я ошибаюсь?


 
Тимохов ©   (2004-03-10 12:37) [5]


> LordBTR   (10.03.04 12:28) [4]

нет, application.processmessages нужен для того, чтобы перед долгой операцией на экране все перерисовалось.


 
LordBTR   (2004-03-10 12:51) [6]


> Тимохов ©   (10.03.04 12:37) [5]

Т.е. application.processmessages необходимо вставить в OnClick, перед вызовом нового окна?


 
Тимохов ©   (2004-03-10 12:55) [7]

полсле создания и показа окна


 
stelius ©   (2004-03-10 13:14) [8]

begin
 ...
 FlagWait := True;
 FormMain.Enabled := True;
 FlagWait := False;
end;

procedure TFormMain.OnActive(Sender: TObject);
begin
 if not FlagWait then begin
   <переоткрытие запросов>
 end; //if
end;


Ну это типа "решение в лоб", может еще как-то можно.


 
LordBTR   (2004-03-10 14:15) [9]


> stelius ©   (10.03.04 13:14) [8]

Да насчет флага и так было ясно, а вот насчет "еще как-то можно" стоит подумать... Вроде я где-то компонент с подобным свойством видел. Попробую найти...



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

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

Наверх





Память: 0.46 MB
Время: 0.037 c
14-1078140492
John S.
2004-03-01 14:28
2004.03.28
AVP кто нибудь юзает ?


14-1077981348
TButton
2004-02-28 18:15
2004.03.28
TServerSocket+TClientSocket


1-1078932225
В л а д и м и р
2004-03-10 18:23
2004.03.28
Как прочитать слово из середины предложения?


7-1072264252
nester
2003-12-24 14:10
2004.03.28
Как внедрить свой тулбар в оутлук?


7-1073661424
Marat_Ch
2004-01-09 18:17
2004.03.28
Диспетчер задач





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