![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Пытаюсь сделать масштабирование как в фотошоп или солидворкс т.е. по FormMouseWheelDown\Up изображение увеличивается\уменьшается, при этом изображение (видимая в окне часть) позиционируется в зависимости от положения курсора.
Вопрос с какого бока подойти к решению, какие компоненты использовать. Что-то такое набросал, понятно что "шляпа", у меня ощущение что вообще не с той стороны захожу Код:
procedure TForm2.FormMouseWheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); begin Image1.Picture.Bitmap.SetSize(Image1.Picture.Bitmap.Width+10, Image1.Picture.Bitmap.Height+10); end; procedure TForm2.FormMouseWheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); begin Image1.Picture.Bitmap.SetSize(Image1.Picture.Bitmap.Width-10, Image1.Picture.Bitmap.Height-10); end; |
#2
|
|||
|
|||
![]() На форму кидаем TScrollBox, на него TPicture. При загрузке картинки ставим размер TPicture в размер картинки. TPicture.Stretch = True.
В твокм коде убираем строки 5 и 12 (нам не надо переразмеривать сам битмап, только контейнер, а уж он за счет Stretch отрисует картинку с масштабированием). Должно работать. Положение при масштабировании по курсору уж как-нить сам пропишешь, там надо будет просто у ScrollBox'а выставлять смещении, если я не ошибаюсь... |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Помидоркин (21.01.2021)
|
#3
|
||||
|
||||
![]() Смотрите компоненты ImageEn. Там такое есть, и не только.
|
Этот пользователь сказал Спасибо Guaho за это полезное сообщение: | ||
Помидоркин (21.01.2021)
|