procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if ssDouble in shift then showmessage('1');
end;
噢,我没说清楚,我是说执行了双击后就退出去,不想往下执行button = mbleft的语句了。
procedure TfrmECG.imgStyleEditMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if ssDouble in Shift then
begin
showmessage('ok');
exit;
end;
if button = mbleft then showmessage('我不想执行这句');
end;
procedure TfrmECG.imgStyleEditMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if ssDouble in Shift then
begin
showmessage('ok');
exit;
end
else
if button = mbleft then showmessage('我不想执行这句');
end;
哦——是这样的,双击就是两个单击。这样呢??
procedure TfrmECG.imgStyleEditMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if button = mbleft then
begin
if ssDouble in Shift then
begin
showmessage('ok');
exit;
end;
showmessage('我不想执行这句');
end;
可以了吧
procedure TfrmECG.imgStyleEditMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if (button = mbleft) and (ssDouble in Shift) then
begin
showmessage('ok');
exit;
end;
end;
我的意思是:
procedure TfrmECG.imgStyleEditMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if (button = mbleft) then
begin
if (ssDouble in Shift) then
begin
showmessage('ok');
exit;
end;
Showmessage('如果只单击一下左键,执行我,双击左键就不执行我了:)');
end;
end;
你的意思我明白,但我还是不明白你的作用;
实现方法:
procedure TfrmECG.imgStyleEditMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if (button = mbleft) then
begin
releaseCapture;
if (ssDouble in Shift) then
begin
showmessage('ok');
exit;
end;
Showmessage('如果只单击一下左键,执行我,双击左键就不执行我了:)');
end;
end;
试试看,不一定能行;
但还有另外的方法;
你的怪问题有答案了,给分吧!我付出几个小时呢。
先定义:clickTimes: integer;
procedure TF.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
count: integer;
begin
if button<>mbLeft then exit;
count:=getTickcount;
clickTimes:=1;
if (ssDouble in Shift) then clickTimes:=2;
while getTickCount<GetDoubleClickTime+count
do Application.ProcessMessages;
if clickTimes=1
then
Showmessage('如果只单击一下左键,执行我,双击左键就不执行我了:')
else
if clickTimes=2 then showmessage('Only dbClick');
clickTimes:=0;
end;