olá boa tarde, estou com mais uma duvida que não estou conseguindo resolver, por exemplo tenho um Panel e um Timage no form, o panel está em baixo e o Timage em cima, aonde no timage tenho uma imagem personalizada então queria que o cursor passava por cima do timage e arrastava o panel que está em baixo, tenho esse código mas ele só funciona direto no panel, tem alguma forma de adaptar ele para usar da forma que gostaria? obrigado
procedure TFRM_IMAGEM.ControlMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
FDownX := X;
FDownY := Y;
FDragging := True;
TMoveCracker(Sender).MouseCapture := True;
end;
procedure TFRM_IMAGEM.ControlMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if FDragging then
with Sender as TControl do
begin
Left := X - FDownX + Left;
Top := Y - FDownY + Top;
end;
end;
procedure TFRM_IMAGEM.ControlMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if FDragging then
begin
FDragging := False;
TMoveCracker(Sender).MouseCapture := False;
end;
end;
Pergunta
JPMADEIRA
olá boa tarde, estou com mais uma duvida que não estou conseguindo resolver, por exemplo tenho um Panel e um Timage no form, o panel está em baixo e o Timage em cima, aonde no timage tenho uma imagem personalizada então queria que o cursor passava por cima do timage e arrastava o panel que está em baixo, tenho esse código mas ele só funciona direto no panel, tem alguma forma de adaptar ele para usar da forma que gostaria? obrigado
procedure TFRM_IMAGEM.ControlMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin FDownX := X; FDownY := Y; FDragging := True; TMoveCracker(Sender).MouseCapture := True; end; procedure TFRM_IMAGEM.ControlMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if FDragging then with Sender as TControl do begin Left := X - FDownX + Left; Top := Y - FDownY + Top; end; end; procedure TFRM_IMAGEM.ControlMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if FDragging then begin FDragging := False; TMoveCracker(Sender).MouseCapture := False; end; end;
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.