Задать вопрос
@Black_sun_1906

Как преобразовать код написанный для картинки в код под карту?

Помогите преобразовать данный код. Код написан на Delphi для перемещения мышью картинки, сдвиг ее в произвольном направлении. Надо данный код преобразовать для перемещения не картинки курсором, а для карты.
unit change;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Imaging.jpeg, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    ScrollBox1: TScrollBox;
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
    Moving: Boolean;
    MovePoint: TPoint;

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
             if Button = TMouseButton.mbLeft  then
             begin
               Moving := True;
               MovePoint.X := X;
               MovePoint.Y := Y;
             end;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if Moving then
  begin
  Image1.Left := Image1.Left + X - MovePoint.X;
  Image1.Top := Image1.Top + Y - MovePoint.Y;
  end;

end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
    Moving := False;
end;

end.
  • Вопрос задан
  • 73 просмотра
Подписаться 1 Средний 5 комментариев
Пригласить эксперта
Ответы на вопрос 1
@EDIsaev
Карта в смысле большая, чтобы мышкой её скролить?
Это не рисуют в TImage. Возьми PaintBox, при перемещении или отпускании мыши считай смещение мыши, рисуй в буфере в TBitmap соответствующий кусок карты, в onPaint отображай его.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы