Resmi fareyle hareket ettirme

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Resmi fareyle hareket ettirme

Mesaj gönderen vedatkaba »

Kod: Tümünü seç

var
    StartX,
    StartY,
    MoveX,
    MoveY: Integer;
  IsMoved: Boolean;

implementation

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbLeft then
  begin
    IsMoved := True;
    StartX  := X;
    StartY  := Y;
    MoveX   := X;
    MoveY   := Y;
    Scrollbox1.DoubleBuffered := True;
  end;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
  if isMoved then
  begin
    if (X < MoveX) and
      ((Image1.Left + Image1.Width + 25) > Scrollbox1.Width) then
      Image1.Left := Image1.Left + (X - StartX);

    if (X > MoveX) and (Image1.Left < 0) then
      Image1.Left := Image1.Left + (X - StartX);

    if (Y < MoveY) and
      ((Image1.Top + Image1.Height + 25) > Scrollbox1.Height) then
      Image1.Top := Image1.Top + (Y - StartY);

    if (Y > MoveY) and (Image1.Top < 0) then
      Image1.Top := Image1.Top + (Y - StartY);

    MoveX := X;
    MoveY := Y;
  end;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var 
  tr1, tr2: TRect;
begin
  if Button = mbLeft then
  begin
    IsMoved := False;
    Scrollbox1.DoubleBuffered := False;
  end;
end;
Bunun için forma bir tane scrollbox koy ve autosize özelliği true olsun,

Kolay gelsinnn...
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Cevapla