| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Ошибка со StatusBar |
| Автор: klyaksa 12.11.2010, 19:25 | ||
| Есть StatusBar, в нем выводится разная информация, в том числе сколько времени прошло и осталось... (по таймеру 1 сек) Две панели рисую сам (цветом чтобы выделить когда время мало), остальные text. Так вот иногда вылазит ошибка canvas does not allow drawing. Раньше грешил на Инди (tcpclient и антифриз), но обратил внимания что всегда на статус баре что-то не прорисовано... В чем может быть дело? Куда копать? на всякий:
|
| Автор: Saboten 12.11.2010, 22:12 |
| Скорее всего проблема из-за таймера (2 потока пытаются одновременно что-то нарисовать в канвасе). Как вариант перед рисованием сделать canvas.Lock а после рисования - canvas.Unlock, тогда только один поток сможет рисовать. |
| Автор: ZBugz 15.11.2010, 08:40 | ||
Эта ошибка обычно возникает когда ты пытаешься сделать activecontol чему либо, что недоступно. Не обязательно сам activecontrol, имееться ввиду какой нибуть focus на что то либо что не существует, тот же form1.enable:=false и попытка что то сделать на ней... |
| Автор: klyaksa 25.11.2010, 19:17 |
| В программе для 2 панелей на статус баре ставлю psOwnerDraw - в StatusBar1DrawPanel все закомментировал -- ошибка выскакивает. psText - все работает без ошибок. Да и еще если задвинуть окно вниз за экран, то получить ошибку вероятность больше... |