Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

TForm   Найти похожие ветки 

 
СП   (2004-04-16 13:51) [0]

При выполнении долготекущего процесса требуется доступ к компонентам формы (например к TButton) для его прерывания. Как сделать без создания нового потока?


 
Владислав ©   (2004-04-16 13:54) [1]

В длительном процессе добавить Application.ProcessMesseges.
Только необходимо блокировать тот самый длительный процесс (и все, что с ним связано) от повторного запуска его же. Иначе каша может получиться.


 
СП   (2004-04-16 14:17) [2]

У меня процесс запускается в контексте одной формы а его прерывание надо повесить на TButton.Click другой, создаваемой на время выполнения процесса. Трудность с доступом к этой самой Button.


 
Владислав ©   (2004-04-16 14:20) [3]

Что значит "Трудность с доступом к этой самой Button."? Объясняй подробнее. И вообще, код в студию.


 
MBo ©   (2004-04-16 14:28) [4]

>СП  
>процесс запускается в контексте одной формы
>другой, создаваемой на время выполнения процесса

А что такое "процесс"?


 
Владислав ©   (2004-04-16 14:31) [5]

> MBo ©   (16.04.04 14:28) [4]

Это тот, который "длительный процесс". Скорее всего какая то процедура (судя по контексту). ;)


 
TUser ©   (2004-04-16 14:36) [6]

длительный процесс = отдельный поток


 
Владислав ©   (2004-04-16 14:40) [7]

> TUser ©   (16.04.04 14:36) [6]

Ну зачем же так категорично?


 
СП   (2004-04-16 14:50) [8]

ну, например, так...
procedure TForm1.Button1Click(Sender: TObject);
begin
 with TForm2.Create(Application) do begin
   Caption:= "Run";
   Show;
 end;
 repeat until Form2.Caption = "Finish";

procedure TForm2.Button1Click(Sender: TObject);
begin
 Caption:= "Finish";
end;


 
Семен Сорокин ©   (2004-04-16 14:55) [9]

repeat
 Application.ProcessMessages;
until Form2.Caption = "Finish";

а вообще если серьезные вычисления, то стоит подумать насчет [6]


 
Владислав ©   (2004-04-16 14:55) [10]

Ты смысл пойми. Обрабатывать остановку "длительного поцесса", надо в самом этом "длительном процессе", а коммандовать ты можешь из любого места. Вот тебе уже дали два варианта. Поток, и обработка очереди сообщений. А твой код ни о чем не говорит.


 
Семен Сорокин ©   (2004-04-16 14:56) [11]

СП   (16.04.04 14:50) [8]
а что будет, если форму крестиком закроют, думал?


 
СП   (2004-04-16 15:03) [12]

Спасибо!
Затупил...



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

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
14-1081518879
ISP
2004-04-09 17:54
2004.05.02
Бабахнет? Не бабахнет?


9-1068283809
Thor
2003-11-08 12:30
2004.05.02
ObjectEngine и ParticleEngine в PowerDraw3


3-1081137790
Хэтч
2004-04-05 08:03
2004.05.02
Можно ли по нажатию на Button выделить строку DBGrid а ?


1-1082019865
sergundi
2004-04-15 13:04
2004.05.02
Проблема с сортировкой ListView


11-1059545464
_Polymorphic_
2003-07-30 10:11
2004.05.02
ini-файлы