Задание
Разработать многопоточное приложение, позволяющие динамически управлять потоками, выводящими на экран круги произвольного радиуса и цвета. Примерная экранная форма представлена на рис.
Список «Поток» содержит созданные в программе потоки. Изменение параметров «Приоритет», «Радиус» и «Цвет» применяются к выбранному потоку.
Список «Приоритет» позволяет указать приоритет потока.
В поле «Радиус» вводится радиус кругов, рисуемых текущим потоком.
При щелчке на поле с цветом выводится стандартное диалоговое окно для выбора цвета потока.
При нажатии на кнопку «Создать поток» создается новый поток с параметрами по умолчанию, имя потока добавляется в список потоков.
Нажатие кнопки «Завершить поток» уничтожает выбранный в списке поток и удаляет его из этого списка.
Список «Приоритет главного потока» позволяет задать приоритет потока формы.
Рекомендации
Ссылки на созданные потоки удобно хранить в динамическом массиве.
Для изменения приоритета главного потока можно использовать приведенные ниже API-функции.
MainTh := GetCurrentThread;
SetThreadPriority(MainTh, THREAD_PRIORITY_NORMAL);