Вниз
Скачать: 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.022 c
1-1102081219
Игорь нтк
2004-12-03 16:40
2004.12.19
Combobox


14-1101969297
Layner
2004-12-02 09:34
2004.12.19
Кто нибудь плотно занимался SFX архивами в WinRAR?


3-1101059264
DuchmanSoft
2004-11-21 20:47
2004.12.19
Фильтр или выборка в DBGrid


14-1101669271
Maxim_S~~
2004-11-28 22:14
2004.12.19
помогите с треем!


4-1099742073
_Delphin_
2004-11-06 14:54
2004.12.19
Как сделать панель задач?




   Наверх