Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.038 c
1-1102182353
DNT
2004-12-04 20:45
2004.12.19
Delphi 6,7,8


11-1084284901
Merry
2004-05-11 18:15
2004.12.19
Как запретить меню формы


14-1101725572
Dok_3D
2004-11-29 13:52
2004.12.19
Юлия Тимошенко: Жанна д Арк или подстрекатель, ищущий корысть?


3-1101085149
serko
2004-11-22 03:59
2004.12.19
Установка Ehlib!


4-1099546137
WaS
2004-11-04 08:28
2004.12.19
Получить указатель (pidl) на папку зная handle окна





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский