Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Тормозит графический интерфейс, цикл как процесс [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 - помоему так...И все будет шоколадно...


Наверх

Титульная страница Поиск, карта сайта Написать письмо