Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.07.2010, 12:11   #1
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию перемещение image

Код:
Procedure Tform1. novimage;
Var
K:Timage;
Begin
K:=Timage.create(self);
k.parent:=self;
k.onMouseMove:=form1.onMouseMove;
k.onMouseDown:=form1. onMouseDown;
k.onMouseUp:=Form1. MouseUp;
Так вот после этого каждый новый image будет перемещать то, что я напишу в обработчик.
Теперь сам вопрос как сделать перемещение image индивидуальным?
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 19.07.2010, 12:58   #2
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

В обработчиках событий пишите
Код:
TImage(Sender).*** //-это и будет ваш Image (или форма)
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 19.07.2010, 13:19   #3
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Спасибо работает
А вот
Цитата:
Код:
TImage(Sender).*** //-это и будет ваш Image (или форма)
Сюда тока Sender image надо встовлять или чтото другое можно?
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 19.07.2010, 13:27   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
или чтото другое можно?
Можно все что угодно.
Здесь имеется ввиду что параметр Sender указывает на контрол, чей обработчик всплыл. Но поскольку он имеет тип TObject его нужно приводить к типу TImage потому и пишут TImage(Sender)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.07.2010, 13:31   #5
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

У меня не че не перемещается, как собственно это сделать.
VintProg вне форума Ответить с цитированием
Старый 19.07.2010, 13:35   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
VintProg
А вот автор тебе расскажет. Раз он взялся за эту задачу значит уже представляет как
И нам будет полезно узнать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.07.2010, 14:06   #7
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Цитата:
У меня не че не перемещается, как собственно это сделать.
Значит у меня Delphi 7
кидаем на форму image1 и кнопку, чтоб создавались image(ы)
во "всеобщий var" пишем следующие
Код:
var
x2,y2,n:integer;
nagata:boolean;
в обработчике onmousedown пишем следующие
Код:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 nagata:=true;
x2:=x;
y2:=y;
end;
в обработчике onMouseMove пишем следующие
Код:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if nagata=true then begin
if x<>x2 then begin
Timage(sender).Left:=Timage(sender).Left+(x-x2)
end;
if y<>y2 then begin
Timage(sender).Top:=Timage(sender).Top+(y-y2)
end;
end;
end;
в обработчике onMouseUp пишем следующие
Код:
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
nagata:=false;
end;
по нажатию кнопки пишем следующие
Код:
procedure TForm1.Button1Click(Sender: TObject);
Var
K:Timage;
Begin
K:=Timage.create(self);
k.parent:=self;
k.picture:=image1.picture;
k.onMouseMove:=image1.onMouseMove;
k.onMouseDown:=image1. onMouseDown;
k.onMouseUp:=image1.onMouseUp;
k.name:='Image_'+inttostr(n);
inc(n);
end;
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 19.07.2010, 14:26   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Позволь показать тебе еще один способ:
Кидаем на форму TPanel На нее кидаем TImage, и расстягиваем Image на AlClient чтоб оно заполнило всю панель.
Далее в в обработчике зажатия мышки для Image пиешм:
Код:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
const  Sc_dragmove = $F012;
begin
  ReleaseCapture;
  Panel1.Perform(WM_SYSCOMMAND, Sc_dragmove, 0);
end;
Запускаем и мышой таскаем рисунок куда хотим и как хотим
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.07.2010, 18:34   #9
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Цитата:
Кидаем на форму TPanel На нее кидаем TImage
Не пойдёт надо будет ещё и креатить panel(и) и image(ы)
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 20.07.2010, 09:17   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
надо будет ещё и креатить panel(и)
Ужос какие сложности, не так ли?
Впрочем хозяин - барин. Мое дело предложить-твое отказаться.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Image одной формы = Image другой формы DimR Microsoft Office Excel 2 21.04.2010 23:08
перемещение картинки нутри Image Prohor Компоненты Delphi 4 09.04.2010 20:50
Вопрос по Image (скачанная картинка не хочет выводиться в Image) Radnor Мультимедиа в Delphi 2 06.07.2009 02:20
Перемещение image КатенокСПб Компоненты Delphi 3 22.05.2009 10:41
Перемещение окна мышью за Image Viteef Общие вопросы Delphi 2 03.05.2007 23:48