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

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

PaintBox и PBitmap [Delphi]


SergeR ©   (2006-10-08 16:38:00) 

Только начал использовать KOL, возник вопрос :)
Имеется рисунок PBitmap.
Как его отобразить на PaintBox`е?
Получилось через MyPBitmap.draw(HandlePaintBox,0,0), но при перерисовке формы рисунок пропадает.
И вообще, странно:
Пишу PaintBox.canvas.ellipse(0,0,100,100), а при перерисовке опять чисто.
Объясните чайнику :).


Vedun   (2006-10-10 14:40:00) [1]

Видел я портированный  модуль для работы с XML. Автор - Theddy. Только не помню где. Либо на www.kolnmck.ru, либо у Theddy на сайте.


SergeR   (2006-10-10 13:47:00) [2]

2 Vladimir Kladov:

В VCL TPaintBox вроде примерно такой же, только он не визуальный.
А я и подумал просто, что TPaintBox в MCK - это аналог Timage в VCL, и вместо того чтоб в исходники KOL глянуть, стал мудрить.

А так - разобрался, почти портировал проект. Жаль XML парсер не нашел, пришлось сочинять.
Осталость только наложение картинок сделать с прозрачностью, но тут, думаю проблем не возникнет :)
Он у меня меньше 100 Кб будет, а была около 1Мб.
Вообщем репект авторам.


Barloggg   (2006-10-10 09:29:00) [3]

зачем нужен PainBox с канвой?
ну, затем чтобы можно было бы что-нибудь положить на форму :)

с таким же успехом можно использовать панель например. но на Paintbox кажется компоненты не прилипают, а на панель прилипают.


Barloggg   (2006-10-10 08:54:00) [4]

лично я привык пользоваться TImage.
в него загружаешь картинку и забываешь про него. компонент все делает сам.
есть канва, на которой можно порисовать и есть канва у картинки на которой тоже можно порисовать, но в этом случае изменения остаются.

все просто и удобно.

в KOLPaintbox необходимость перекрывать onPaint и хранить битмап отдельно поначалу напрягает.
это если сравнивать с TImage.


Vladimir Kladov   (2006-10-09 19:09:00) [5]

разве в VCL tPaintbox не такой же. Что-то я отстал.


SergeR   (2006-10-09 18:30:00) [6]

Всё, понял, спасибо. Буду формировать на отдельном битмапе.
ЗЫ. Только нафига тогда вообще этот painBox с канвой нужен,
если у него нет своего битмапа, за который он отвечает...


Barloggg   (2006-10-09 09:28:00) [7]

ну в общем да.

paintbox это совсем не Timage как мы привыкли в VCL.
это просто панелька.

кстати если код отрисовки будет монструозным начнутся глюки по всему проекту... у меня вот в проекте в onpaint была отрисовка картинки разного размера (до 40мегабайт)... на предельных габаритах переставали отрисовываться даже прочие контролы пришлось сделать вывод графики опциональным (это применимо к этому проекту было).


SergeR   (2006-10-08 17:17:00) [8]

Демки от туда скачал, спасибо.
Вообщем, я так понял - работать надо с PBitmap, а на OnPaint в PaintBox`е
вешать PBitMap.Draw(DC,0,0).
Т.е. работать с paintbox`ом без OnPaint нельзя.


Vladimir Kladov   (2006-10-08 16:58:00) [9]

OnPaint
Смотрите Demo
(кстати, демки выложены ли на kolnmck? Если нет могу выслать)


Наверх

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