![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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? Если нет могу выслать)