![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
ButtonOFF |
|
|||
улетевший ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 16.11.2009 Репутация: нет Всего: нет |
Объясните пожалуйста.
Есть форма - главное окно. Необходимо создать поток через CreateThread и передать в качестве функции - функцию класса
Что я делаю не так? и как сделать так как хочется? Это сообщение отредактировал(а) ButtonOFF - 2.5.2014, 17:51 |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Как минимум - ThreadProc - это функция с результатом типа DWORD
Добавлено через 2 минуты и 10 секунд Ну и, раз не используется BeginThread - надо бы самостоятельно выставить IsMultiThread:=True; |
|||
|
||||
ButtonOFF |
|
|||
улетевший ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 16.11.2009 Репутация: нет Всего: нет |
Можно поподробнее |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Понял, в чем был вопрос
![]()
Но это не отменяет предыдущего сказанного. Добавлено через 4 минуты и 45 секунд Попытаюсь. Емнип, IsMultiThread влияет на работу менеджера памяти, переключая его в какой-то специальный режим. BeginThread, помимо прочих действий, делает IsMultiThread = True. Если так уж надо использовать CreateThread, то надо самому выставить эту системную переменную. Это сообщение отредактировал(а) kami - 2.5.2014, 21:40 |
|||
|
||||
ButtonOFF |
|
||||
улетевший ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 16.11.2009 Репутация: нет Всего: нет |
Хорошо задам по-другому немного вопрос. Можно ли запустить поток на выполнение функции из класса, как в моем примере, только что бы этот поток мог обращаться ко ВСЕМ объектам класса ?
Я так и не понял о чем речь...
|
||||
|
|||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Теперь я не понимаю, о чем речь:) Как это - ко всем объектам класса? Ко всем экземплярам этого класса? Или к полям одного экземпляра? Повторюсь: 1. WorkProc из процедуры сделать функцией, которая возвращает DWORD. 2. В FormCreate до вызова CreateThread написать IsMultiThread:=True; |
|||
|
||||
ButtonOFF |
|
|||
улетевший ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 16.11.2009 Репутация: нет Всего: нет |
kami, Ну вот в первом посте пример, если сделать так, но с поправкой
|
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
ButtonOFF |
|
|||
улетевший ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 16.11.2009 Репутация: нет Всего: нет |
Сейчас именно этим и занимаюсь, основной бедой было вывести в главную форму результат выполнения потока, вот подумал может есть делегат какой-нибуть, типа как на шарпе
|
|||
|
||||
stanilar |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 9.2.2010 Репутация: нет Всего: нет |
У процедуры из WorkProc есть параметры, соответственно ничто не мешает передать весь объект или класс. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
также у классовых методов тоже есть self, поэтому тебе нужен class static
-------------------- Обижено школьников: 8 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |