Многопоточность в Delphi

                                                                                                                Motorcode, 2009
Uraniumcode@gmail.com

                                          Многопоточность в Delphi.

Многопоточность в приложениях, является одной из основной в программировании. Если бы не было многопоточности, то программа могла бы выполнять только одно действие или один цикл. Все, я думаю, представляют обычный проигрыватель. В самом простом проигрывателе уже есть 3 потока. Само проигрывание, время которое отсчитывается от начала записи и ползунок, который движется синхронно времени. И так во многих приложениях. Без многопоточности — никуда. Поэтому сегодня будем создавать многопоточность в приложениях Delphi, благо что это совсем не сложно.
Для начала создадим новый проект. Если вы открываете Delphi не в первый раз, то с этим проблем не должно возникнуть. Пример сделем простым, но понятным. Поместим на форму компонент TTrackBar и сверху кнопку(TButton). На кнопке напишем «Запустить».  TrackBar удлиним до 15 пунктов для этого в свойстве компонента в параметре  Max, поставим 15.      Теперь открываем Файл->New->Other->delphi files и находем файл Thread object. Он то нам и нужен. Присваиваем имя файла(любое) и сохраняем его. Чтобы не забыть осразу подключаем его к главной форме для этого в uses, пишем то имя, под которым сохраняли файл. И теперь в разделе Var объявляем его как имя класса

var
ban:one;
Где one – имя потока. Теперь переходим в файл с потоком, где будем писать наш код. Находим такой код:

procedure one.Execute;
begin

end;

Где вместо one, у вас будет ваше имя файла. И теперь огранизуем цикл, который будет работать параллельно с программой а именно заставлять двигаться TrackBar на единицу в секунду. Я понимаю, что это очень простой пример, но для примера — самое то. Итак воплотим задумку в жизнь и напишем такой код:

procedure one.Execute;
var
i:Integer;
begin
for i := 0 to 15 do
begin
Sleep(1000);
Form44.TrackBar1.Position:= i;
end;

end;

end.

Согласитесь, всё очень просто: При каждом проходе, засыпаем т двигаем ползунок на главной форме на один пункт. Теперь как раз самое время перейти к этой самой главной форме. Напишем обработчик событий для кнопки OnClick.

bin:= one.Create(true);
bin.Priority:= tplower;
bin.Resume;

Где bin – имя файла, one – имя потока. Сначала создаём поток, потом присваиваем ему приоритет. Остановимся на низком - tpLower. И непосредственно запускаем его. Смотрм что получилось. Нажимаем кнопку и видем что ползунок, каждую секунду перемещается на одно деление вперёд. Развернём, свернём программу, все остётся без изменений. Всё работает. Возможно кое — кто спросит: «А зачем так извращаться, можно же просто на форму цикл поместить?». Давайте попробуем так сделать. Заомментируем инициализацию потока и добавим цикл из файла с потоком. Работает — работает! Только кнопка как — то не естественно вдавилась и форму даже двигать нельзя. Мда... мы зависли! Придётся ждать 15 секунд, чтобы закрыть приложение. Это наглядно продемонстрировало почему надо использовать потоки, тем более это так легко! Удачи вам, во всех начинаниях!



Автор: Uranium | Добавлено: 11.8.2009, 12:36 | Просмотров: 13706
Добавить комментарий


Лучшие программы
Будильник
Lim BurnDisc
Радио плеер
Lim BackUp
Календарь праздников
Телефонный справочник
Аудио конвертер
LimNote
Стикеры
Таймер выключения
Женский календарь
Клавиатурный тренажер
Lim Block Folder
Lim Screenshot
Lim Tree Note
Lim Soft Catalog
Lim Quick Panel
Lim Frame Photo
Lim Image Marker
Lim Flash Security
Lim Launcher
Lim Mosaic Draw
Рисовалка для детей (Котики)
Школьный звонок
Lim Catalog Articles
Lim Anti Boss
Рисовалка для детей (Машинки)
...

Игры
Пасьянс Паганини
Игра_2048
Игра Cursor Run
Пасьянс Косынка
Пасьянс Паук
Игра Server War
Server War History AI
Складское дело
Крестики - Нолики 5 в линию
Сапер
Точки и квадраты
Судоку

Программы
Блог
Комментарии
произошла ошибка, ис...
Ужасно неудобная гос...
Согласен трансляция ...
P.s. Практически каж...
...
Добрый день! Как исп...
День добрый! недавно...
Все исправлено. Спас...
Добрый день! Исправь...
Добрый день на 10ке,...
Группа VK
Поделиться





Копилка MaxLim.

Если Вам понравилась наша программа, Вы можете купить нам кофе (или кофемашину) или пивка для поднятия настроения и ускорения написания новых программ и обновлений :), Пополните копилку и разработка программ ускорится :)...
Пополнить копилку можно несколькими способами:

1. Переводом через Сбербанк Онлайн - Платежи, Перевод клиенту сбербанка по номеру телефона "Номер телефона - +79284741288" -сумма перевода в рублях.
2. Кошелек Яндекс Деньги - 41001737394948
3. Через донаты...

Контакты для связи:
Skype - go_ramalex
mail - maxlim_soft@mail.ru

Яндекс.Метрика PR-CY.ru Яндекс цитирования
MaxLim.org - Сайт Компании MaxLim http://vsofte.biz MaxLim.org - Сайт programs.lv SoftOut.ru - Сайт SoftOut.ru  

Copyright MaxLim © 2007-2023