![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Invalid canvas state request
goliath © (2004-07-23 10:15:00)Помогите пожалуйста !!! Возникает такая ошибка при создании объекта динамически и попытке на нем что-либо нарисовать.
han_malign (2004-07-23 11:59:00) [1]> А под Linux'ом такое работать будет ??
- ХЗ, по идее должно. Скорее всего, под Linux вообще таких проблем не будет - на этот случай {$IFDEF MSWINDOWS}/{$IFDEF LINUX}.
goliath (2004-07-23 11:11:00) [2]А под Linux'ом такое работать будет ??
han_malign (2004-07-23 11:09:00) [3]ресурсов не хватат, посмотри семейство TBitmap.Dormant/ReleaseHandle - что то из них должно переводить в DIB, и экономить ресурсы (ну время отрисовки)...
goliath (2004-07-23 10:56:00) [4]> han_malign
Читает WMF файл и отрисовывает его содержимое. WINAPI пользоваться нельзя, т.к. приложение должно работать и под Linux.
Заметил следующее : все отрисовывается замечательно, пока размеры изображения не превышают 5000 х 5000. Причем при размере изображения более 2000 х 2000 прога начинает серьезно тормозить.
han_malign (2004-07-23 10:49:00) [5]TPicture - это контейнер, его ты создал, а вот кто будет Bitmap создавать? В обязанности TPicture это не входит...
Плохиш (2004-07-23 10:42:00) [6]
> goliath © (23.07.04 10:35) [11]
Шёл бы ты к себе в детский садик, молочко пить
goliath (2004-07-23 10:35:00) [7]ДА ПРОСТИТ МЕНЯ МОДЕРАТОР
Если нет желания помочь, то не страдай хуйней и не забивай тему тупыми вопросами. Что я рисую тебя абсолютно не ебет.
Sergey Kaminski (2004-07-23 10:34:00) [8]Затем пытаюсь что-либо нарисовать ... Тут же получаю в лоб.
Что, план Кремля для Пентагона рисуешь? Может покажешь?
goliath (2004-07-23 10:31:00) [9]Извиняюсь ... очепятка ...
Не Canvas->Width , а Bitmap->Width
Sergey Kaminski (2004-07-23 10:30:00) [10]P->Bitmap->Canvas->Width = W;
Откуда у TCanvas взялся Width?
goliath (2004-07-23 10:29:00) [11]CLX нужен затем, что приложение кроссплатформенное (Windows / Linux)
Sergey Kaminski (2004-07-23 10:27:00) [12]если это TWinControl...
погадаем...
DK (2004-07-23 10:27:00) [13]А зачем CLX?
goliath (2004-07-23 10:24:00) [14]Я пишу на С++ Builder(но и на Delphi то же самое), использую библиотеку CLX. Делаю следующее :
TPicture P = new TPicture();
P->Bitmap->Canvas->Width = W;
P->Bitmap->Canvas->Heidht = H;
Затем пытаюсь что-либо нарисовать ... Тут же получаю в лоб.
Кстати, такое происходит не только при диномическом создании объекта. Если я создаю Image на форме и задаю его размеры, скажем 10000 х 10000, то так же получаю в лоб.
han_malign (2004-07-23 10:21:00) [15]если это TWinControl...
han_malign (2004-07-23 10:20:00) [16]отрисовку в Paint(или OnPaint), и вызывать Invalidate
и Parent не забыть
Sergey Kaminski (2004-07-23 10:18:00) [17]Очень информативно.
Но рискну предположить, что создавалось так:
TCanvas.Create
Нельзя.
Можно создать TBitmap (у него есть Canvas) или TMetafileCanvas.