Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.08;
Скачать: CL | DM;

Вниз

Invalid canvas state request   Найти похожие ветки 

 
goliath ©   (2004-07-23 10:15) [0]

Помогите пожалуйста !!! Возникает такая ошибка при создании объекта динамически и попытке на нем что-либо нарисовать.


 
Sergey Kaminski ©   (2004-07-23 10:18) [1]

Очень информативно.

Но рискну предположить, что создавалось так:
TCanvas.Create

Нельзя.

Можно создать TBitmap (у него есть Canvas) или TMetafileCanvas.


 
han_malign ©   (2004-07-23 10:20) [2]

отрисовку в Paint(или OnPaint), и вызывать Invalidate
и Parent не забыть


 
han_malign ©   (2004-07-23 10:21) [3]

если это TWinControl...


 
goliath ©   (2004-07-23 10:24) [4]

Я пишу на С++ Builder(но и на Delphi то же самое), использую библиотеку CLX. Делаю следующее :

TPicture P = new TPicture();
P->Bitmap->Canvas->Width = W;
P->Bitmap->Canvas->Heidht = H;

Затем пытаюсь что-либо нарисовать ... Тут же получаю в лоб.

Кстати, такое происходит не только при диномическом создании объекта. Если я создаю Image на форме и задаю его размеры, скажем 10000 х 10000, то так же получаю в лоб.


 
DK   (2004-07-23 10:27) [5]

А зачем CLX?


 
Sergey Kaminski ©   (2004-07-23 10:27) [6]

если это TWinControl...

погадаем...


 
goliath ©   (2004-07-23 10:29) [7]

CLX нужен затем, что приложение кроссплатформенное (Windows / Linux)


 
Sergey Kaminski ©   (2004-07-23 10:30) [8]

P->Bitmap->Canvas->Width = W;

Откуда у TCanvas взялся Width?


 
goliath ©   (2004-07-23 10:31) [9]

Извиняюсь ... очепятка ...
Не Canvas->Width , а Bitmap->Width


 
Sergey Kaminski ©   (2004-07-23 10:34) [10]

Затем пытаюсь что-либо нарисовать ... Тут же получаю в лоб.

Что, план Кремля для Пентагона рисуешь? Может покажешь?


 
goliath ©   (2004-07-23 10:35) [11]

ДА ПРОСТИТ МЕНЯ МОДЕРАТОР

Если нет желания помочь, то не страдай хуйней и не забивай тему тупыми вопросами. Что я рисую тебя абсолютно не ебет.


 
Плохиш ©   (2004-07-23 10:42) [12]


> goliath ©   (23.07.04 10:35) [11]

Шёл бы ты к себе в детский садик, молочко пить


 
han_malign ©   (2004-07-23 10:49) [13]

TPicture - это контейнер, его ты создал, а вот кто будет Bitmap создавать? В обязанности TPicture это не входит...


 
goliath ©   (2004-07-23 10:56) [14]

> han_malign

Читает WMF файл и отрисовывает его содержимое. WINAPI пользоваться нельзя, т.к. приложение должно работать и под Linux.

Заметил следующее : все отрисовывается замечательно, пока размеры изображения не превышают 5000 х 5000. Причем при размере изображения более 2000 х 2000 прога начинает серьезно тормозить.


 
han_malign ©   (2004-07-23 11:09) [15]

ресурсов не хватат, посмотри семейство TBitmap.Dormant/ReleaseHandle - что то из них должно переводить в DIB, и экономить ресурсы (ну время отрисовки)...


 
goliath ©   (2004-07-23 11:11) [16]

А под Linux"ом такое работать будет ??


 
han_malign ©   (2004-07-23 11:59) [17]

>А под Linux"ом такое работать будет ??
- ХЗ, по идее должно. Скорее всего, под Linux вообще таких проблем не будет - на этот случай {$IFDEF MSWINDOWS}/{$IFDEF LINUX}.



Страницы: 1 вся ветка

Текущий архив: 2004.08.08;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.027 c
1-1090472523
cvg
2004-07-22 09:02
2004.08.08
Перехват нажатия клавиши неактивной формой


1-1090774906
Луарвик
2004-07-25 21:01
2004.08.08
ActionManager+ActionMainMenuBar


14-1090518026
Саша
2004-07-22 21:40
2004.08.08
Me на XP


6-1086710125
ev
2004-06-08 19:55
2004.08.08
подсчет контрольных сумм


14-1090176989
GanibalLector
2004-07-18 22:56
2004.08.08
и это уже не в первый раз