Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Error: Canvas does not allow drawing. что с этим делать. 
:(
    Опции темы
stab
  Дата 28.9.2003, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 14
Всего: 48



Есть приложение. В приложении есть UI и есть еще один поток (обычный TThread). Время от времени вылетает ошибка "Canvas does not allow drawing". Я на 101% уверен, что поток не использует ни одного холста из UI части. Поток занят тем, что пингует сервак и если нет пинга выводит окно средствами API. Причем, что особенно хреново, программа не вылетает в отладчик, а в сообщении не указан адрес по которому произошла ошибка.

Ума не приложу где искать баг.

з.ы. Заметил, что это как-то связано с памятью -- если мало свободной памяти, то сообщение появляется чаще. Чаще всего глюк происходит, когда пингер скрывает свое окно, но не всегда в это время.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
<Spawn>
Дата 29.9.2003, 05:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Покажи код.

П.С. Кажись я где то про это читал. В Марко Кенту что ли, но точно не помню.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Vit
Дата 29.9.2003, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Ничего-ничего из потомков TWinControl не пользуется в потоке? Ни к одному визуальному компоненту ты не обращаешься? Никаких в Gauge или Label статус из потока не пишешь? - не поверю! Что-то такое ты делаешь - там и собака порылась...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
stab
Дата 29.9.2003, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 14
Всего: 48



по каким причинам вылетает "Canvas does not allow drawing"? что с этим может быть связано кроме доступа из потоков в то время когда другой поток уже рисует?


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
stab
Дата 29.9.2003, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 14
Всего: 48



Код

SNoCanvasHandle = 'Canvas does not allow drawing';

procedure TCanvas.RequiredState(ReqState: TCanvasState);
var
 NeededState: TCanvasState;
begin
 NeededState := ReqState - State;
 if NeededState <> [] then
 begin
   if csHandleValid in NeededState then
   begin
     CreateHandle;
     if FHandle = 0 then
       raise EInvalidOperation.CreateRes(@SNoCanvasHandle);
   end;
   if csFontValid in NeededState then CreateFont;
   if csPenValid in NeededState then CreatePen;
   if csBrushValid in NeededState then CreateBrush;
   State := State + NeededState;
 end;
end;


Судя по всему отсутствует dc, т.е. он уничтожен или не создан. Млин, ни че не понимаю.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0449 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.