Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.036 c
1-1102187540
Bobby Digital
2004-12-04 22:12
2004.12.19
Компонент


4-1099662483
Ivolg
2004-11-05 16:48
2004.12.19
Перехват


3-1101115078
YurikGL
2004-11-22 12:17
2004.12.19
Выборка из процедуры.


9-1085669345
Micah'GF
2004-05-27 18:49
2004.12.19
DelphiX: А вы не верили!?!


14-1101958957
080D:07BBh
2004-12-02 06:42
2004.12.19
Кажется опять студенты пошли со своими лабараторными.




   Наверх