Сейчас на форуме: bartolomeo, tyns777 (+5 невидимых) |
![]() |
eXeL@B —› Программирование —› к теме Delphi, dll, TThread, DialogBox |
Посл.ответ | Сообщение |
|
Создано: 06 марта 2011 16:34 · Поправил: FockuS · Личное сообщение · #1 Есть Dll, которая показывает DialogBox (создан из *.res-файла). Есть TThread, который должен к примеру менять текст в этом DialogBox-е. Суть в след., TThread не обрабатывается при вызове DialogBox-а. Также останавливаются предыдущие потоки. void - по теме ответить никак ? Умный ? мог бы и догадаться. Code:
Archer, что тут отлаживать? предыдущие потоки останавливаются. пока DialogBox не закрыт. потоки заморжены. хотя и стоит статус Active. Тема создана в Программирование. Где ее еще создавать ??? ![]() |
|
Создано: 06 марта 2011 16:50 · Личное сообщение · #2 |
|
Создано: 06 марта 2011 16:57 · Личное сообщение · #3 |
|
Создано: 06 марта 2011 19:45 · Личное сообщение · #4 |
|
Создано: 06 марта 2011 20:02 · Поправил: FockuS · Личное сообщение · #5 |
|
Создано: 07 марта 2011 09:30 · Личное сообщение · #6 |
|
Создано: 07 марта 2011 17:27 · Личное сообщение · #7 FockuS пишет: # if CreateThread(nil,0,@ptfhc,nil,0,ThID)=0 then exit; # DialogBox(hInstance, 'WIN', 0, @DlgProc,0); Ну даже тут сразу видно грубейшее нарушение программирования в делфи. Если работаешь с визуальными компонентами то можно использовать только наследника TThread и больше ничего, иначе может быть миллион всяких разных ошибок. И кстати непонятно сказано что TThread и используется, а пример приводится без него. В общем вопрос непонятный вообще, либо нужно подробнее расписать либо показать исходник. ----- Yann Tiersen best and do not fuck ![]() |
|
Создано: 07 марта 2011 17:51 · Личное сообщение · #8 |
|
Создано: 07 марта 2011 19:20 · Поправил: ajax · Личное сообщение · #9 FockuS Для начала стоит почитать, что про треды из длл написано в мануалах от МС. Дальше - похожие проблемы на дельфевых форумах. Вообще, потоки из либы - не айс, а с прямым вызовом без класса треад надо еще некие телодвижения делать, а не тупо хардкодить. PE_Kill Там нет тредов визуальных. Добавлено: не так понял ----- От многой мудрости много скорби, и умножающий знание умножает печаль ![]() |
|
Создано: 07 марта 2011 21:10 · Личное сообщение · #10 |
|
Создано: 08 марта 2011 01:55 · Поправил: FockuS · Личное сообщение · #11 Archer, Прошу прощения, но я Вас ни в чем не виню. ajax В примере сделан упращенный вариант. Единственное что приходит на ум. поставить вызываемую прогу в цыкл до завершения потока. (минус в том, что прогу писал не я) PE_Kill C наследниками тоже был тест. результат тотже. Без вызова DialogBox поток отрабатывает на УРА. Поток вызываетяс сразу с точки входа без экспорта. (Загрузилась, отработала поток. выгрузилась). tihiy_grom Вообщето вызывается DialogBoxParam, но проблемы не решает. DialogBox нужен только для визуализации, тоесть что происходит в данный момент. (Визуальная работа потока.) ![]() |
|
Создано: 08 марта 2011 02:03 · Личное сообщение · #12 |
|
Создано: 08 марта 2011 02:18 · Поправил: FockuS · Личное сообщение · #13 tihiy_grom пишет: ну делайте сами тогда, если не хотите свои кривые исходники показывать если ответить нечем, то лутше промолчать. без обид. Code:
писать больше нечего. код потока не нужен. читаем обращение к PE_Kill ![]() |
|
Создано: 08 марта 2011 10:52 · Личное сообщение · #14 |
|
Создано: 08 марта 2011 12:32 · Поправил: FockuS · Личное сообщение · #15 |
|
Создано: 08 марта 2011 19:32 · Личное сообщение · #16 |
![]() |
eXeL@B —› Программирование —› к теме Delphi, dll, TThread, DialogBox |
Эта тема закрыта. Ответы больше не принимаются. |