Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо