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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2014, 15:42   #1
Alexandr17
Форумчанин
 
Регистрация: 10.12.2013
Сообщений: 227
По умолчанию Передвижения Image мышкой

Нужно передвигать Image мышкой в событии
Код:
procedure TForm1.Image2MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin

end;
Но нужно 1
Чтобы имадж передвигался только на 32 пикселя и был всегда по середине мышки дабы событие работало или другое событие но должно происходить в пределах
ScrollBox2
Alexandr17 вне форума Ответить с цитированием
Старый 03.03.2014, 16:59   #2
XE5
Заблокирован
 
Регистрация: 02.03.2014
Сообщений: 439
По умолчанию

Код:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if (abs(Image1.Left - (X - Image1.Width div 2)) > 32)
  or
    (abs(Image1.Top - (Y - Image1.Height div 2)) > 32) then
      begin
        Image1.Left := X - Image1.Width div 2;
        Image1.Top := Y - Image1.Height div 2;
      end;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Form1.MouseMove(Shift, Mouse.CursorPos.X - Left - 9, Mouse.CursorPos.Y - Top - 30);
end;
XE5 вне форума Ответить с цитированием
Старый 03.03.2014, 17:19   #3
Alexandr17
Форумчанин
 
Регистрация: 10.12.2013
Сообщений: 227
По умолчанию

Нужно все это делать не в пределах формы а в пределах ScrolBox2
Alexandr17 вне форума Ответить с цитированием
Старый 03.03.2014, 17:30   #4
Alexandr17
Форумчанин
 
Регистрация: 10.12.2013
Сообщений: 227
По умолчанию

не то совсем не то нужно чтобы было семнтрично как обычно в играх
Alexandr17 вне форума Ответить с цитированием
Старый 03.03.2014, 17:30   #5
XE5
Заблокирован
 
Регистрация: 02.03.2014
Сообщений: 439
По умолчанию

Цитата:
Сообщение от Alexandr17 Посмотреть сообщение
Нужно все это делать не в пределах формы а в пределах ScrolBox2
А такие условия обычно подкрепляют файлами проекта. ГДЕ?
Цитата:
Сообщение от Alexandr17 Посмотреть сообщение
семнтрично как обычно в играх
О какой симметрии речь? Если о центре Image, то симметрия центра абсолютно соблюдена. Огромнейшая просьба, не изъясняться загадками, и разжёвывать невнятные объяснения. Будете лениться, буду и я лениться.

Последний раз редактировалось XE5; 03.03.2014 в 17:33.
XE5 вне форума Ответить с цитированием
Старый 03.03.2014, 17:44   #6
Alexandr17
Форумчанин
 
Регистрация: 10.12.2013
Сообщений: 227
По умолчанию

пример редактора
https://disk.yandex.ru/public/?hash=...HEzeqa9rQk4%3D
Также как сдесь только в пределах ScrolBox'а
Alexandr17 вне форума Ответить с цитированием
Старый 03.03.2014, 17:53   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Поиграйся. Со своими 32 пикселя и по центру сам разбирайся
Код:
var tX,tY: Integer;
    tMoved: Boolean;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  tMoved:=True; tX:=X; tY:=Y;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var xPoint: TPoint;
begin
  if tMoved then begin
    xPoint:=ScrollBox1.ScreenToClient(Image1.ClientToScreen(Point(0,0)));
    xPoint.X:=xPoint.X+X-tX;
    if xPoint.X<0 then xPoint.X:=0
    else if xPoint.X+Image1.Width>ScrollBox1.ClientWidth then xPoint.X:=ScrollBox1.ClientWidth-Image1.Width;
    xPoint.Y:=xPoint.Y+Y-tY;
    if xPoint.Y<0 then xPoint.Y:=0
    else if xPoint.Y+Image1.Height>ScrollBox1.ClientHeight then xPoint.Y:=ScrollBox1.ClientHeight-Image1.Height;
    Image1.Left:=xPoint.X;
    Image1.Top:=xPoint.Y;
  end;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  tMoved:=False;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.03.2014, 21:42   #8
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Тут есть вложение, в котором я реализовывал аналогичную идею, но с шейпами, по идее имейджи тоже должны работать. Могу куда-то ещё залить, если на кибере нет реги.
phomm вне форума Ответить с цитированием
Старый 04.03.2014, 10:59   #9
Alexandr17
Форумчанин
 
Регистрация: 10.12.2013
Сообщений: 227
По умолчанию

Яндекс диск или Google диск или в скайп Andreylog1004
Alexandr17 вне форума Ответить с цитированием
Старый 04.03.2014, 11:03   #10
Alexandr17
Форумчанин
 
Регистрация: 10.12.2013
Сообщений: 227
По умолчанию

Мне нужно также как в этом редакторе ну почти. Просто тут используется тайлы картинки а мне надо с Image именно https://disk.yandex.ru/public/?hash=...HEzeqa9rQk4%3D
Alexandr17 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передвижения картинки по форме(C#) Boris01 Помощь студентам 0 16.10.2013 21:32
реализация передвижения объекта по игровому полю Eugene20 Общие вопросы Delphi 0 11.05.2013 21:24
Ограничение области передвижения компонента Westwood C# (си шарп) 0 19.10.2012 16:25
access передвижения окна Lord_Termit Помощь студентам 0 19.05.2010 11:53
OpenGL. Проблема со скоростью передвижения объектов Blade Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 26.10.2009 13:40