![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как таскать 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 и не давай им выйти за пределы!