Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.14;
Скачать: CL | DM;

Вниз

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 вся ветка

Текущий архив: 2007.01.14;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.012 c
3-1162187801
vlgrig1961
2006-10-30 08:56
2007.01.14
Есть ли в SQL для парадокса что-то вроде To_Char конверт из цифр


15-1166685828
Jeer
2006-12-21 10:23
2007.01.14
Самолет так и не взлетел.


15-1166630309
vidiv
2006-12-20 18:58
2007.01.14
борьба со спамом. идея 2.


9-1142076235
Yeg
2006-03-11 14:23
2007.01.14
Дополнительный форматы файлов


15-1166474454
Cyrax
2006-12-18 23:40
2007.01.14
Можно ли (теоретически и практически) заюзать Xerces ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский