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

Вниз

Скрытие формы перед запуском долго выполн. алгоритма   Найти похожие ветки 

 
Андрусь   (2002-12-10 14:23) [0]

Привет всем!Такой вопрос возник:в приложении запускается долго работающий алгоритм proc1.Он запускается из модальной формы,которая перед запуском закрывается.На деле же получается,что форма не прячется,а висит до тех пор пока proc1 не отработает.Один "умный" товарищ насоветовал запускать proc1 на событие OnIdle приложения.Но по-моему это не выход. Посоветуйте,что делать,чтобы работало,как задумано.Зараннее всем благодарен!


 
Diouzshev   (2002-12-10 14:29) [1]

странно!
все должно быть ОК!
если так делаешь:

procedure btnShowDialogClick(Sendr : TObject);
begin
if dlgStartAlgorithm.ShowModal = mrOk then
begin
StartAlgorithm;
end;
end;


 
Skier   (2002-12-10 14:35) [2]

>Андрусь

Не поможет ?

var
StartAlgorithm : TStartAlgorithm;
begin
StartAlgorithm := TStartAlgorithm.Create(...)
try
if StartAlgorithm.ShowModal = mrOk then begin
StartAlgorithm.Hide;
StartLongAlgorithm;
end; //if
finally
FreeAndNil(StartAlgorithm);
end; //try




 
Anatoly Podgoretsky   (2002-12-10 14:35) [3]

Сообщения системы обработал?


 
Андрусь   (2002-12-10 18:21) [4]

>Skier,Diouzshev
Так было опробавано ранее,так не работает.
>Anatoly Podgoretsky
Какие вы имели ввиду.


 
FreeLancer   (2002-12-10 18:23) [5]

Запускай его не из этой формы, а в форме только спрашивай "Запустить или не стоИт?"


 
Андрусь   (2002-12-10 19:28) [6]

>FreeLancer © (10.12.02 18:23)
А что по твоему описано выше.


 
Юрий Зотов   (2002-12-10 19:51) [7]

procedure btnShowDialogClick(Sendr : TObject);
var
StartOK: boolean;
begin
with TDlgStartAlgorithm.Create(nil) do
try
StartOK := ShowModal = mrOk
finally
Free
end;
if StartOK then StartAlgorithm
end;

И еще пара слов.

1. Вообще-то, для таких вещей существует MessageBox. Зачем плодить лишние формы?

2. Возможно, есть смысл вынести долго работающий алгоритм в отдельный поток.


 
Андрусь   (2002-12-12 14:43) [8]

Да нет,всё равно работает как ранее.
1.MessageBox там не подойдёт - там сосложнее(настройки и т.п.).
2.Мне кажется,нет в этом смысла.Пользователь не должен ничего трогать в течении работы алгоритма.


 
Александр Спелицин   (2002-12-13 00:49) [9]

procedure btnShowDialogClick(Sendr : TObject);
var
StartOK: boolean;
begin
with TDlgStartAlgorithm.Create(nil) do
try
StartOK := ShowModal = mrOk
finally
Free
end;
if StartOK then
begin
Application.ProcessMessages;
StartAlgorithm;
end;
end;



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

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

Наверх





Память: 0.46 MB
Время: 0.007 c
1-74646
bAgmAn
2002-12-12 18:14
2002.12.23
Как удалить не пустой католог


14-74890
France
2002-12-04 12:40
2002.12.23
TStringList и Drag&Drop


1-74659
oomneeq
2002-12-12 19:36
2002.12.23
объект как var - параметр


3-74594
Tiny
2002-12-04 08:31
2002.12.23
DBGrid и картинки....


1-74841
don_dampster
2002-12-11 16:37
2002.12.23
unrar.dll





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