TImage - Arrastar pelo form
23/08/2004
0
Vamos lá!
DragMode do form e coloquei dmAutomatic
evento onDragOver do form:
if(Source is TImage)then
Accept := True;
evento onEndDrag da Image coloquei:
Image1.Top := Y;
Image1.Left := X;
na realidade eu queria poder arrastar somente em cima de um outro TImage q está em baixo, então tentei colocar no lugar do evento OnDragOver do Form colocar no mesmo evento só q o do segundo TImage q tenho no form, mais fica do mesmo jeito
já pesquisei pelo forum e foi esse exemplo q achei, foi o q deu mais certo mais não totalmente, então se alguém souber como fazer e puder me ajudar eu agradeço
Janete
Posts
23/08/2004
Beppe
Image1.Left := X - (ScreenToClient(Mouse.CursorPos).X - Image1.Left); Image1.Top := Y - (ScreenToClient(Mouse.CursorPos).Y - Image1.Top);
23/08/2004
Janete
Image1.Left := X - (ScreenToClient(Mouse.CursorPos).X - Image1.Left); Image1.Top := Y - (ScreenToClient(Mouse.CursorPos).Y - Image1.Top);
Obrigado pela sugestão, mas não deu certo
23/08/2004
Ipc$
var ClicouNaImagem:Boolean; iLeft,iTop:Integer; procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button <> mbLeft then Exit; ClicouNaImagem := true; iLeft := Mouse.CursorPos.x; iTop := Mouse.CursorPos.y; end; procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if not ClicouNaImagem then Exit; Image1.Left := Image1.Left - iLeft + Mouse.CursorPos.x; Image1.Top := Image1.Top - iTop + Mouse.CursorPos.y; iLeft := Mouse.CursorPos.x; iTop := Mouse.CursorPos.y; end; procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ClicouNaImagem := false; end;
23/08/2004
Janete
var ClicouNaImagem:Boolean; iLeft,iTop:Integer; procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button <> mbLeft then Exit; ClicouNaImagem := true; iLeft := Mouse.CursorPos.x; iTop := Mouse.CursorPos.y; end; procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if not ClicouNaImagem then Exit; Image1.Left := Image1.Left - iLeft + Mouse.CursorPos.x; Image1.Top := Image1.Top - iTop + Mouse.CursorPos.y; iLeft := Mouse.CursorPos.x; iTop := Mouse.CursorPos.y; end; procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ClicouNaImagem := false; end;
Blz, deu certinho obrigado, agora eu não consegui implementar no código a área de arrasto q seria um panel, vc pode me dar mais uma mãozinha? :D
23/08/2004
Ipc$
Se não estiver é só setar a propriedade Parent do TImage p/ TPanel do Panel que automaticamente vc só consegue arrastar dentro dele.
23/08/2004
Janete
Se não estiver é só setar a propriedade Parent do TImage p/ TPanel do Panel que automaticamente vc só consegue arrastar dentro dele.[/quote:19a5342c67]
Desculpe, mas eu não consegui achar a propriedade Parent do TImage só tem ParentShowHint. ???
23/08/2004
Ipc$
Clique aqui para fazer login e interagir na Comunidade :)