Главная страница
    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.04 c
3-1100700425
Александр_
2004-11-17 17:07
2004.12.19
Как узнать о результате выполнения запроса в InterBase?


1-1102310570
SeZuka
2004-12-06 08:22
2004.12.19
Создание/изменение файла


14-1101796819
uny
2004-11-30 09:40
2004.12.19
человеческий фактор или свобода?


1-1101980979
Dimedrol
2004-12-02 12:49
2004.12.19
Подскажите компонентик для ZIP-ования.


8-1095773905
debuger
2004-09-21 17:38
2004.12.19
HDC





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский