Форум: "Основная";
Текущий архив: 2003.12.19;
Скачать: [xml.tar.bz2];
ВнизОшибка - Найти похожие ветки
← →
Донской (2003-12-04 10:36) [0]День добрый!
Есть код, который прорисовывает график на TBitmap, а затем копирует его на TImage - уже на форме.
Почему-то под win98 на не очень быстрой машине появляется такая ошибка (см сабж)и программа слетает. Появляется очень нерегулярно, иногда через часы работы. Но очень нужно разобраться в причинею
Никто не встречался с таким?
← →
Murad (2003-12-04 10:41) [1]1. Может приветешь код
2. А используются ли потоки ?
3. Win98 SE или просто win98 ?
← →
Донской (2003-12-04 10:55) [2]Да код простой.
Да, я использую потоки. Но поток посылает SendMessage(Form.Handle,WM_USER+1,0,0),
И форма прорисовкой занимается сама при обработке этого сообщения.
То есть никакой синхронизации не нужно. Поток раз в три секунды посылает сообщение форме, и больше никакой связанной с графикой деятельности не делает.
Мне пришла в голову такая мысль. Я как-то натолкнулся на проблему под Win98? связанную с установкой на систему оптической мышки (A4-TECH, WOP35). Казалось бы, какая связь? а вот получилось, что связь есть - она слишком часто генерила прерывания и сбивала таймер (простая проверка компонентом TTimer показала сильный разброс во времени срабатывания при активности указанной мышки и при ее отсутствии). Может такое и здесь проявляется (там как раз такая мышка стоит)... Надо будет проверить.
← →
REA (2003-12-04 10:55) [3]Вариант - утечка ресурсов. Под W98 возможно ресурсов меньше и они быстрее кончаются.
← →
Юрий Федоров (2003-12-04 10:59) [4]
> Но поток посылает SendMessage(Form.Handle,WM_USER+1,0,0),
А если заменить на PostMessage ?
← →
хамло (2003-12-04 11:02) [5]2 Донской [2]
похоже на бред, но я верю ))
позавчера не мог понять, почему при инициализации БДЕ машина просто вешается. оказывается в настройках экрана была установлена цветовая палитра в 16 цветов. сменил на 16 бит - и все заработало. меняешь назад на 16 цветов - дуля ))
где логика, где разум? © ))
P.S. Извините за оффтопик.
← →
Донской (2003-12-04 11:07) [6]Кстати, там 16 цветов стоит.
Попробую Postmessage, действительно...
← →
REA (2003-12-04 11:20) [7]Мыши на разных машинах действительно генерируют сообщения с разной скоростью (различающейся на порядки), но это не должно влиять на программу (разве что на производительность).
← →
Anatoly Podgoretsky (2003-12-04 11:29) [8]По сообщению, однозначная утечка ресурсов.
← →
_юзер_ (2003-12-04 11:32) [9]у меня тоже были подобные траблы.
ошибка такая: Canvas not allow drawing - ресурсов винде не хватает
← →
Анонимщик (2003-12-04 11:45) [10]Код все-таки нужно привести.
У тебя в дочернем потоке SendMessage
А в главном что происходит? Откуда он берет данные для прорисовки?
← →
sniknik (2003-12-04 12:06) [11]хамло (04.12.03 11:02) [5]
> 2 Донской [2]
> похоже на бред, но я верю ))
> позавчера не мог понять, почему при инициализации БДЕ машина просто вешается. оказывается в настройках экрана была установлена цветовая палитра в 16 цветов. сменил на 16 бит - и все заработало. меняешь назад на 16 цветов - дуля ))
где логика, где разум? © ))
в программе есть DBGrig? если да то решение проблемы в корректировке его ресурса и перекомпиляции модуля. откроеш ресурс (имадж едитором) посмотри там все битмапы монохромные, исправиш все(исключая маски) на 16цв. будет работать.
← →
Amoeba (2003-12-04 13:25) [12]Сталкивался с таким под Win9x. Под Win2k/XP все нормально. В моем случае имела место нехватка системных ресурсов (количество доступных дескрипторов определяется разрядностью OC). В твоем случае неисключена еще и их утечка, что под Win98 может оказаться фатальным.
← →
_Zergey (2003-12-08 12:02) [13]По поводу ресурсов, а не стоит ли попробывать рисоваться на метафайле :)
По поводу реализации - использование TImage для такого рода задач - бред изначально! Наиболее удачным считаю использование TPaintBox и прописание у него OnPaint с кодом PaintBox1.Canvas.Draw(0,0,MetaFile); если не понравится этапность и мерцание при перересовки - тупо выставляем PaintBox1.Parent.DoubleBuffered:=True;
И вооще такие глобальные рассуждения по поводу плевой траблемы... нет слов :(
← →
Erik (2003-12-08 13:44) [14]Проблема не плевая, у меня она постоянно проявляется на win 98. На Win2k/XP все в порядке. Причем системные ресурсы заканчиваются если запускается какоето звуковое приложкние(Winamp). И возникает это не при рисовании, а при перерисовке обычных визуальных компонентов. Бывает и при загрузке, особенно этим страдает QR. И решение у этой задачи нет.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.12.19;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c