17th
Фев

Как сделать большое изображение на маленькой форме?

Posted by Chas under Пост-обзор

Столкнулся с такой проблемой….
Имеются много (10к+) картинок 256х256 формата jpg. Необходимо их всех склеить и разместить на форме. При их склеивании образуется оч. большая картинка. Как сделать так, что бы размеры формы остались к примеру 800х800, а картинка была на этой форме в натуральную величину (т.е. не уменьшалась), а передвижение по этой картинке осуществлялось с помощью мышки ( при удержании ЛКМ можно было передвигаться по этой большой картинке ).

SERG1980:
Я бы так сделал
Кидаем на форму ScrollBox на него Image.
Клеим ваши фото в битмапе и выводим на имидж
потом пишем вот это

var xn,yn:integer;//объявлены глобально
procedure Form1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 if ssLeft in Shift then
 begin
  xn:=x;
  yn:=y;
 end;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
  var xm,ym:integer;
begin
if  ssLeft in Shift then//ЛКМ
begin
 xm:=-(xn-x);
 ym:=-(yn-y);
 form1.ScrollBox1.ScrollBy(xm,ym);
 xn:=x;
 yn:=y;
end;
end;

и наслаждаемся передвижением по этой картинке с помощью мышки

тема на форуме

Похожие статьи