Главная страница
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.026 c
3-1081152293
Hooch
2004-04-05 12:04
2004.05.02
Выполнение скрипта программно


6-1078278714
Slym
2004-03-03 04:51
2004.05.02
TIdMessage гонит... сохранил, загрузил и снова сохранил данные по


7-1077957561
Evgeniy_K
2004-02-28 11:39
2004.05.02
Cirix


3-1081345040
Graver
2004-04-07 17:37
2004.05.02
BDE: Lock file has grown too large


14-1081440799
Style
2004-04-08 20:13
2004.05.02
Квартиры в Москве будут отнимать за самовольную перепланировку