![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка Error creating window device context [D5, Win2k, WinXP]
vic_vm © (2003-05-06 15:57:00)Что это за ошибка такая
Error creating window device context ?
Причем возникает не регулярно, а лишь при каких-то непонятных обстоятельсвах
Morfein (2003-05-07 16:08:00) [1]>>бидно что нет какой-то закономерности...
>>Это вылазит очень редко, но иногда вылазит.
Вот поэтому я и говорю, что это нехватка ресурсов.
vic_vm (2003-05-07 12:25:00) [2]Up
vic_vm (2003-05-06 23:04:00) [3]2 nikkie
Это плагин....
Он создает окно в другом приложении...
http://www.vicscale.narod.ru/searchband.html
Обидно что нет какой-то закономерности...
Это вылазит очень редко, но иногда вылазит.
nikkie (2003-05-06 23:00:00) [4]>vic_vm
Если ресурсов хватает, то скорее всего WindowHandle - не есть valid hwnd.
Твое объяснение ничего не объяснило. Зачем твоему COM серверу понадобился device context? Это ActiveX? Что за приложение?
vic_vm (2003-05-06 22:53:00) [5]2 Morfein
Ну и что ?!!!!!
В этом месте можно вставить raise EPrinter...,
но это не значит что произошла ошибка при печати
Это специалисты Borland предпологают что если GetDC возвратила ноль, то скорее всего не хватает ресурсов...
А реальная причина не известна. Скорее всего прийдется вставлять вместо raise анализ GetLastError....
Morfein (2003-05-06 21:35:00) [6]Не, ну японский Бог... ты бы хоть перевёл название исключения!
EOutOfResources = Нехватка ресурсов!
vic_vm (2003-05-06 21:31:00) [7]>Ошибка в коде (неприведенном)
Во первых - это компонент (не мой), но дело не в этом...
Во вторых - все это появляется в Dll которая является COM сервером.
>Или нехватка графических ресурсов
Не думаю. Есть несколько экземпляров одного приложения к которым она подключена и что странно - в одном из них эта ошибка вылазит, в других - нет.
а вообще, если нужон исходный код то вот он - кусок из Controls.pas
function TWinControl.GetDeviceContext(var WindowHandle: HWnd): HDC;
begin
if csDesigning in ComponentState then
Result := GetDCEx(Handle, 0, DCX_CACHE or DCX_CLIPSIBLINGS)
else
Result := GetDC(Handle);
if Result = 0 then raise EOutOfResources.CreateRes(@SWindowDCError);
WindowHandle := FHandle;
end;
Вот именно тут это и вылазит
raise EOutOfResources.CreateRes(@SWindowDCError);
Это скорей всего какой-то из приколов Delphi, но почему он возникает и как с этим бороться?
Morfein (2003-05-06 18:00:00) [8]Или нехватка графических ресурсов... что тоже, в конечном счёте, есть ошибка в коде :)
Игорь Шевченко (2003-05-06 17:27:00) [9]Ошибка в коде (неприведенном)