我是这样实现的 大家帮忙看看哪里出错了var poisCenter: TPoint; poisLine: TPoint; posiLeft: TPoint; posiRight: TPoint; 这些是全局变量 procedure TCyUsbCamera_frm.img1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);var point: TPoint; begin if Button = mbleft then begin begin with img1, Canvas do begin poisCenter := point; GetCursorPos(poisCenter); poisCenter := ScreenToClient(poisCenter); end; end; end else if Button = mbright then begin with img1, Canvas do begin if ((poisCenter.x <> 0) and (point.X < poisCenter.x)) then begin posiLeft := point; GetCursorPos(posiLeft); posiLeft := ScreenToClient(posiLeft); end else if (poisCenter.X <> 0) then begin posiRight := point; GetCursorPos(posiRight); posiRight := ScreenToClient(posiRight); end; end; end; end;想实现如上图所示的效果 该怎么写?
你看看keyPress事件中 ,有一个参数是说 左键还是右键 还是中间滑轮的 ;
OnMouseDown事件里判断if button=mbLeft then showmessage('1'); if button=mbright then showmessage('2');
poisCenter: TPoint;
poisLine: TPoint;
posiLeft: TPoint;
posiRight: TPoint;
这些是全局变量
procedure TCyUsbCamera_frm.img1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);var point: TPoint;
begin
if Button = mbleft then
begin
begin
with img1, Canvas do
begin
poisCenter := point;
GetCursorPos(poisCenter);
poisCenter := ScreenToClient(poisCenter);
end;
end;
end else
if Button = mbright then
begin
with img1, Canvas do
begin
if ((poisCenter.x <> 0) and (point.X < poisCenter.x)) then
begin
posiLeft := point;
GetCursorPos(posiLeft);
posiLeft := ScreenToClient(posiLeft);
end else
if (poisCenter.X <> 0) then
begin
posiRight := point;
GetCursorPos(posiRight);
posiRight := ScreenToClient(posiRight);
end;
end;
end;
end;想实现如上图所示的效果 该怎么写?
showmessage('1');
if button=mbright then
showmessage('2');