Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Бесконечный холст и Полосы прокрутки


Автор: IvanoffAndrey 12.7.2009, 10:36
Здравствуйте форумчане.
Разрабатываю редактор графов - то есть такую штуку которая позволяет рисовать различные диаграммы и т.д.
Подскажите пожалуйста как можно организовать логику программы если хочется сделать бесконечный холст для рисования. Например в редакторе диаграмм DIA холст бесконечен, а при сохранении диаграммы как рисунка он обрезается и оставляется только диаграмма вне зависимости от ее размера.
Итак, резюмирую - как организовать имитацию бесконечного холста для TImage и как в этом случае прикрутить к нему полосы прокрутки? 

Автор: cemick 12.7.2009, 11:57
Для TImage ни как, памяти под битмап не хватит=), можно только если рисовать будешь на ScroollBox, тут тебе надо будет хранить все нарисованные объекты в памяти, а отрисовывать только видимую область, хотя таким же макаром можно сделать и c TImage фиксированного размера, кинутым на scrollBox. Если пойдеш таким путем, то надо будет позаботится о пересчете координат реальных в относительные видимой области. 

Автор: IvanoffAndrey 12.7.2009, 18:58
cemick - спасибо, понял.

А как вы думаете если предоставить пользователю выбрать размер холста на котором он собирается рисовать перед началом рабоы - как например в ворде или в фотошопе? 

Будут ли против такого варианта пользователи? Может какие мнения по этому счету. 

Конечно не всегда диаграмму можно уместить на том поле о котором думал в начале, надо будет тогда предусматривать средства расширения холста.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)