Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как таскать Image [D7]


Ivolg ©   (2004-09-28 18:59:00) 

Привет всем!! Помогите PLIZZ!!! Как можно сделать так когда нажимаешь на Image мышкой, Image можнобыло таскать по всей облости GroupBox'a и что-быза пределы GroupBox'aне лезла!!!


LicProd   (2004-09-28 21:56:00) [1]

Хороший вопрос!
Вообще-то! Если ты умеешь тоскать image1 то проблем с тасканием на GroupBox проблем возникать не должно! просто положи этот компонент НА GroupBoxпри создании ОНОГО и попробуй потаскать ещё в delphi? до компиляции или запуска программы и ты увидишь, что он даже там таскается исключительно в рамках GroupBox... А если ты не знаешь как картинку двигать, то так и скажи!

var
 x0, y0: integer;
 t: boolean;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if button <> mbLeft then t:=false
else begin t:=true;
x0:=x;
y0:=y;
end;
end;

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

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


Проще помоему ничего не бывает!

Ну, а если тебе необходимо, чтобы рисунок двигался в определённых рамках, то на событие OnMouseMove просто сравнивай координаты крайних точек своего изображения с крайними точками прямоугольной области или, в твоём случае - с крайними точками GroupBox и не давай им выйти за пределы!


Наверх

Титульная страница Поиск, карта сайта Написать письмо