2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Перемещение массива Image
Сообщение07.05.2013, 00:33 


09/04/13
20
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    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);
        procedure Image2MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image2MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Image2MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
var
  x0,y0:integer;
  move:boolean;
   x1,y1:integer;
  move1:boolean;

{$R *.dfm}
procedure TForm1.Image2MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
          //проверяем нажата ли левая кнопка мыши
   if button<>mbLeft then move:=false
   else begin
      move1:=true;
      x1:=x; //запоминаем координату x
      y1:=y; //запоминаем координату y
   end;
end;

procedure TForm1.Image2MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if move1 then
begin
  image2.SetBounds(image2.Left+x-x0,image2.Top+y-y0,image2.width,image2.height);
end;

end;

procedure TForm1.Image2MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  move1:=false;
end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
          //проверяем нажата ли левая кнопка мыши
   if button<>mbLeft then move:=false
   else begin
      move:=true;
      x0:=x; //запоминаем координату x
      y0:=y; //запоминаем координату y
   end;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if move then
begin
  image1.SetBounds(image1.Left+x-x0,image1.Top+y-y0,image1.width,image1.height);
end;

end;

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

end.





Это код для перемещения картинок. как сделать,чтоб для 2 картинок была одна и та же функция,но разные номера image в зависимости от того,какой выделен?

 Профиль  
                  
 
 Re: Перемещение массива Image
Сообщение07.05.2013, 01:13 
Заслуженный участник


27/04/09
28128
Ставите обработчиками событий не разные методы формы, а по одному на каждый тип события.

Используете свойство TControl.Tag (может, оно появилось уже и у TComponent) для того чтобы отличить переданные в параметре Sender объекты.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group