Форум: "Media";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];
ВнизImage со ScrollBar ами Найти похожие ветки
← →
lockheed_man © (2006-05-21 00:15) [0]Доброго времени суток. Ув. Мастера не подскажите ли как организовать прокрутку изображения когда оно не влазит в свои рамки или рамки контейнера. Заранее спасибо.
← →
Efir (2006-05-21 13:19) [1]Можно поступить так. Допустим, нужно вывести на форму Bitmap, который
не умещается. Объясню прокрутку только для оси Х, так как для Y аналогично.
Располагаем на форме ScrollBar со свойством Allign:=alBottom (для оси Х).
При выводе Bitmap"а проверяем, умещется ли он по ширине на форме, а так как у наc SrollBar.Width равен ширине окна вывода изображения, то проверяем по нему:
if Bitmap.Width>ScrollBar.Width then ...
усли не умещается то рассчитывае значение ScrollBar.Max:
ScrollBar.Max:=Bitmap.Width>ScrollBar.Width;
иначе ScrollBar.Max:=0;
А дальше в событии ScrollChange пишем:
Form.Canvas.Draw(-ScrollBar.Position, 0, Bitmap);
← →
homm © (2006-05-21 15:17) [2]
> [1] Efir (21.05.06 13:19)
А просто TImage поместить в TScrollBox, придав ему значение AutoSize := TRUE чем не способ?
← →
Efir (2006-05-21 15:51) [3]Из-за перерисосовки TImage будут появляться артефакты по краям при скролле. Лучше обходиться вообще без TImage при работе с графикой.
← →
lockheed_man © (2006-05-22 03:04) [4]Ну дело вообщето в том что я не про картинку как битмап имел в виду. Просто мне нужно нарисовать схему, размеры которой могут превышать границы контейнера. Вот как организовать такую прокрутку?
← →
homm © (2006-05-22 23:10) [5]
> Просто мне нужно нарисовать схему, размеры которой могут
> превышать границы контейнера.
В чем проблема, не пойму. Между построением изображениея будет какй-то момент времени. Именно в этот момент и будет известны размеры. Нужно их и задать как размеры имэйджа.
> Из-за перерисосовки TImage будут появляться артефакты по
> краям при скролле
Артефакты AFAIK другое. Есть двойная буферизация для контролов. Поищите по ключевым словам "WM_PAINT WM_ERASEBKGND homm Игорь Шевченко" в разделе API.
> Лучше обходиться вообще без TImage при работе с графикой.
Для каждого случая лучше выбирать средства индивидуально.
← →
lockheed_man © (2006-05-23 17:51) [6]
> Между построением изображениея будет какй-то момент времени.
> Именно в этот момент и будет известны размеры.
Да, это конечно же вариант. Но если размер схемы будет превышать размеры экрана, тогда что? Ведь TImage не нарисует скролбары сам (хотя я это вариант не проверял)?
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c