![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Тормозит графический интерфейс, цикл как процесс [D7, WinXP]
The Vizit0r! © (2004-12-04 12:03:00)Здраствуйте! У меня возник повторно такой вопрос!
В моей программе есть цикл, который выполняет долгий и муторный процесс!
И тормозит графический интерфейс проги! Так вот нужно реализовать это цикл как отдельный процесс ... Но Я не могу этого сделать, чей-то не получается! Помогите пожалуйста, но только кодом, потому что, что делать я понимаю, а вот реализовать не получается!
Спасибо!
begin...end (2004-12-04 12:50:00) [1]
procedure TMyThread.UpdateForm;
begin
Form1.Caption := IntToStr(N);
end;
В список uses модуля потока добавляете модуль формы Form1, и наоборот.
На форме две кнопки: по нажатию первой запускаете поток ( Thread := TMyThread.Create(False)), по нажатию второй - останавливаете ( MyThread.Terminate).
The Vizit0r! (2004-12-04 12:48:00) [2]Спасибо
begin...end (2004-12-04 12:46:00) [3]> [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:45:00) [4]ну как там?
The Vizit0r! (2004-12-04 12:36:00) [5]type
ABC=class(TThread);
abc.execute а вот что ему присваивать не знаю... как ему сообщить какой мне нужно цикл создать как процее?
begin...end (2004-12-04 12:35:00) [6]> [3] The Vizit0r! (04.12.04 12:34)
> Создаю потомок класса Tthread пытаюсь изменить execute и
> не могу
Ну так покажите, как пытаетесь.
The Vizit0r! (2004-12-04 12:34:00) [7]Application.processmessages неа так все равно иногда под тормаживает...
Нутипа как сделать цикл как процесс TTHread?
Создаю потомок класса Tthread пытаюсь изменить execute и не могу
begin...end (2004-12-04 12:28:00) [8]> The Vizit0r! (04.12.04 12:03)
Что конкретно непонятно?
[lamer]Barmaglot (2004-12-04 12:28:00) [9]В цикле который тормозит поставь Application.processmessages - помоему так...И все будет шоколадно...