Главная страница
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.031 c
1-1090930435
GrayFace
2004-07-27 16:13
2004.08.08
Чем отличаются GetMem и AllocMem?


14-1090566156
Mur_r
2004-07-23 11:02
2004.08.08
MS Help Workshop


14-1090618605
lak
2004-07-24 01:36
2004.08.08
МеГаРеСпЕкТ


3-1089633365
Tempo
2004-07-12 15:56
2004.08.08
Параметры Locate


1-1090965433
барбос
2004-07-28 01:57
2004.08.08
после компиляции программа плохо работает