ZBEP
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Frodo_Torbins, вроде нашел в чем проблема, но не совсем разобрался, позже напишу подробнее, в чем дело было. (В функции загрузки изображения) п.с. Блин, чет не выходит ничего, как бы не выводил - все равно иногда виснет, хоть и реже.. Завтра буду пробовать обойти это.. Можно вообще сделать по другому, но это дольше и больше нагрузки. Заносить все в логи, а потом по таймеру, построчно искать в логах нужную строку, затем в этой строке побуквенно искать нужные значения.. Но хотелось бы без этого обойтись, т.к. если бы не зависания, то было бы очень удобно, сразу принимать нужные команды без лишних манипуляций с логами. Если у кого-нибудь есть желание, то могу залить простейший пример клиент-сервера с выводом изображения через DX по принятию команды от сервера, может это я криворукий. Frodo_Torbins, Цитата: Попробуйте вызывать DXLoadTextureFromFile('Data/Karts/1.png',Bus,0); в ответ на кастомное сообщение | При принятии любых сообщений idIRC -ом текстуры загружаются через раз и когда не загружаются, прога намертво виснет и иногда жалуется на память. Если создать отдельную процедуру загрузки текстуры и вызвать ее в IdIRC1DellKart, с ожиданиями или сразу, то все равно текстуры иногда не загружаются и прога намертво виснет. П.п.с. Не знаю как у Вас у всех, но у меня при использовании INDY постоянные проблемы XD Правда все что были ранее успешно решены, а с этим я хз что делать.. Скорее надо LoadTextureFromFile ковырять чем INDY, но DXLoadTextureFromFile я уже ковырял и это мало чем помогло А если сделать так: Код: procedure TForm1.IdIRC1DellKart(ASender: TIdCommand); begin IdIRC1.CommandHandlers.Items[1].Enabled:=false; //Это команда DellKart, типа обрабатывать ее или нет. DXLoadTextureFromFile('Data/Karts/1.png',Bus,0); IdIRC1.CommandHandlers.Items[1].Enabled:=true; end; | То иногда начинаются жуткие артефакты (видео) в программе и немного поменьше вне ее и после закрытия проги не исчезают. (Начинает экран зерниться). С чем это связано я хз, INDY явно против DX Отключил в ннди ParseParams и сделал паузу перед загрузкой текстуры в 10мс, немного помогло, зависает реже, но зависает. Код: IdIRC1.CommandHandlers.Items[1].ParseParams:=False; | Кинул в таймер обновление всех текстур карт. Если приходит нужная команда, то таймер включается, обновляет текстуры и отключается. Т.к. текстур всего 20 (те что могут меняться по команде), то для системы это не очень напряжно. | Всего записей: 186 | Зарегистр. 09-04-2009 | Отправлено: 01:00 28-12-2010 | Исправлено: ZBEP, 19:29 28-12-2010 |
|