|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.10.2009, 16:50 | #1 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
Потоки в Builder C++
В окне label и кнопка, при нажатии на кнопку в label появляются рандомные цифры, которые медленно меняются(есть задержка). Знаю что Sleep тут не поможет, а только навредит. Надо использовать новый поток. Может кто-нибудь написать как его создать и использовать в вышеизложенной задаче.
Код:
Последний раз редактировалось NiCola999; 31.10.2009 в 16:54. |
31.10.2009, 17:23 | #2 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
А не проще ли таймер использовать? В Button1Click устанавливать
Код:
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
31.10.2009, 17:36 | #3 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
извиняюсь, я буквально сегодня начал изучать Builder. Поместил таймер на форму, но он не работает или работает, но это не заметно
в свойствах Enabled = false Interval = 1000 Код:
Последний раз редактировалось NiCola999; 31.10.2009 в 17:41. |
31.10.2009, 17:36 | #4 | |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Не знаю как в билдере, если не ошибаюсь там спец. класс для потоков есть, но на WinAPI создаётся поток функцией CreateThread. Все параметры, за исключением 3-го и 4-го можно выставить в 0, на MSDN описано их назначение. В качестве 3-го параметра нужно передавать указатель на функцию void __stdcall function_name(void* parameter);
4-й параметр - то, что передаётся в функцию потока при вызове. Всё это может выглядеть примерно так: Код:
... Цитата:
Наверное в Баттон1Клик должно быть включение таймера, после того, как таймер включён нужно перехватывать событие таймера(WM_TIMER в WinAPI, в билдере как-то иначе) и в нём уже менять текст лабела. Да, и не плохо было бы установить интервал таймера Последний раз редактировалось netrino; 31.10.2009 в 17:56. |
|
31.10.2009, 18:04 | #5 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
=))
я думал когда его включаешь он начинает отсчитывать время и когда доодит до 0 он выключается и начинается следующая итерация. Всё-таки интересно как создаются потоки в Builder е. В нете пока ниче не нашел Последний раз редактировалось NiCola999; 31.10.2009 в 18:14. |
01.11.2009, 10:49 | #6 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Про потоки не знаю, но что касается таймера, то выглядеть это будет так:
Код:
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
01.11.2009, 13:30 | #7 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
то что надо, спасибо, а программа не будет зависать в течение этого интервала ? то есть как с командой sleep
|
01.11.2009, 13:37 | #8 |
Участник клубаДжуниор
Регистрация: 23.08.2008
Сообщений: 1,616
|
Нет, насколько помню у таймера свой поток.
pushl $0x18E3DF6B
call ICQ |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перенести код из C++ Builder 5 в C++ Builder 2009 | Kreadlling | C++ Builder | 2 | 13.09.2009 14:00 |
Builder C++ бинарные потоки,файлы | Yakushov | C++ Builder | 1 | 21.12.2008 11:55 |
Потоки | AidarBik | Win Api | 2 | 04.08.2008 10:00 |