Показать сообщение отдельно
  #2  
Старый 05.05.2013, 10:17
forum.sources.ru forum.sources.ru вне форума
Прохожий
 
Регистрация: 22.04.2013
Сообщения: 31
Версия Delphi: d2,4,6,7,8,xe
Репутация: 10
По умолчанию

Можно так. Картинка внутри панели.

Код:
procedure FormCreate(Sender: TObject);
begin
  Image1.Picture.LoadFromFile('picture.bmp');
  // Задаем размеры (масштаб)
  Image1.Width  := Image1.Picture.Width;
  Image1.Height := Image1.Picture.Height;
end;

procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  CursorStartPosY := Y;
  CursorStartPosX := X;
end;

procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  // Перемещение
  if (ssLeft in Shift) then begin
    Image1.Top  := Image1.Top  - (CursorStartPosY-Y);
    Image1.Left := Image1.Left - (CursorStartPosX-X);
    // Чтоб рисунок не выходил за края
     if Image1.Top  < Panel1.Height - Image1.Height then Image1.Top  := Panel1.Height - Image1.Height;
     if Image1.Left < Panel1.Width  - Image1.Width  then Image1.Left := Panel1.Width  - Image1.Width;
     if Image1.Top  > 0 then Image1.Top  := 0;
     if Image1.Left > 0 then Image1.Left := 0;
  end;
end;
Ответить с цитированием