모니터 화면을 마우스로 좌우를 크게 보고싶읍니다.
방법좀 가르켜 주세요.
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
SC_DragMove = $f012;
begin
ReleaseCapture;
(sender as TWinControl).perform(WM_SysCommand, SC_DragMove,0);
end;
이렇게하면 상하도 동시에 이동이됨니다.
단지 좌우만 이동시 어떻게 고쳐야 합니까.
아래는 폼1안에서 패널이 좌우로 안쪽에서만 움직이는 겁니다.
객체를 실행모드에서 싸이즈,이동등 조작시는 여기 찾아보면 있습니다.
일단전역변수 선언하구요
<!--CodeS-->
...
private
{ Private declarations }
WndPos : TPoint;
...
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
WndPos := Point(X, Y);
end;
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if ssLeft in Shift then begin
if TPanel( Sender ).Left + X - WndPos.x > Form1.Width - TPanel( Sender ).Width then
TPanel( Sender ).Left := Form1.Width - TPanel( Sender ).Width
else if TPanel( Sender ).Left + X - WndPos.x < 0 then
TPanel( Sender ).Left := 0
else
TPanel( Sender ).Left := TPanel( Sender ).Left + X - WndPos.x;
end;
end;
<!--CodeE-->
hsr////////////////////////////////////////////////////////////////////////////////////////////////////////////