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

Вниз

Тормозит графический интерфейс, цикл как процесс   Найти похожие ветки 

 
The Vizit0r!   (2004-12-04 12:03) [0]

Здраствуйте! У меня возник повторно такой вопрос!
В моей программе есть цикл, который выполняет долгий и муторный процесс!
И тормозит графический интерфейс проги! Так вот нужно реализовать это цикл как отдельный процесс ... Но Я не могу этого сделать, чей-то не получается! Помогите пожалуйста, но только кодом, потому что, что делать я понимаю, а вот реализовать не получается!
Спасибо!


 
begin...end ©   (2004-12-04 12:28) [1]

> The Vizit0r!   (04.12.04 12:03)

Что конкретно непонятно?


 
[lamer]Barmaglot ©   (2004-12-04 12:28) [2]

В цикле который тормозит поставь Application.processmessages - помоему так...И все будет шоколадно...


 
The Vizit0r!   (2004-12-04 12:34) [3]

Application.processmessages неа так все равно иногда под тормаживает...
Нутипа как сделать цикл как процесс TTHread?
Создаю потомок класса Tthread пытаюсь изменить execute и не могу


 
begin...end ©   (2004-12-04 12:35) [4]

> [3] The Vizit0r!   (04.12.04 12:34)

> Создаю потомок класса Tthread пытаюсь изменить execute и
> не могу

Ну так покажите, как пытаетесь.


 
The Vizit0r!   (2004-12-04 12:36) [5]

type
ABC=class(TThread);

abc.execute а вот  что ему присваивать не знаю... как ему сообщить какой мне нужно цикл создать как процее?


 
The Vizit0r!   (2004-12-04 12:45) [6]

ну как там?


 
begin...end ©   (2004-12-04 12:46) [7]

> [5] The Vizit0r!   (04.12.04 12:36)

Ну вот прямо в ABC.Execute и напишите код цикла, например:

procedure TMyThread.Execute;
begin
 repeat
   // Здесь Ваш код, например:
   N := Random(1000); // N - переменная, объявленная в TMyThread
   // UpdateForm - метод TMyThread, предназначеный для синхронизации (нужно писАть самостоятельно)
   Synchronize(UpdateForm)
 until Terminated // Условие окончания цикла, оно может быть и другим
end.


 
The Vizit0r!   (2004-12-04 12:48) [8]

Спасибо


 
begin...end ©   (2004-12-04 12:50) [9]

procedure TMyThread.UpdateForm;
begin
 Form1.Caption := IntToStr(N);
end;


В список uses модуля потока добавляете модуль формы Form1, и наоборот.

На форме две кнопки: по нажатию первой запускаете поток (Thread := TMyThread.Create(False)), по нажатию второй - останавливаете (MyThread.Terminate).



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

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

Наверх




Память: 0.48 MB
Время: 0.031 c
6-1097261922
QuestionX
2004-10-08 22:58
2004.12.19
Размер принимаемых данных


14-1101667434
IllusoryOrion
2004-11-28 21:43
2004.12.19
Параметры explorer.exe


14-1101655076
tw
2004-11-28 18:17
2004.12.19
Заставка


3-1100592864
DimonNew
2004-11-16 11:14
2004.12.19
UpdateSQL & ADO


14-1101407893
Ломборозо
2004-11-25 21:38
2004.12.19
Новости в RSS или TXT