请高手帮忙!(100分)

  • 主题发起人 主题发起人 lisheng77
  • 开始时间 开始时间
L

lisheng77

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么样做出象ACDSee一下用鼠标直接拖动图像的效果的,不要滚动条的!
 
用OnMouseUp,OnMouseDown和OnMouseMove组合起来用
 
能给出代码吗?要不要通过滚动条?
 
不要通过滚动条
在OnMouseDown时做标记,记下位置
在OnMouseUp时撤消标记
在OnMouseMove中判断标记,在根据记下的位置移动。

已经差不多了,还要代码吗?
 
试试!

var mouselbstate:boolean;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if button=mbleft then
begin
mouselbstate:=true;
canvas.MoveTo(x,y);
canvas.LineTo(x,y);
end;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if button=mbleft then
mouselbstate:=false;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if mouselbstate then
canvas.LineTo(x,y);
end;

 
to 人在边缘:
受人渔胜于受人鱼。
若看官能理解算法,自会举一返三。
若不能,则你给的程序是用来画线的
 
to LeeChange:
呵呵!我的意思本来就是解释OnMouse事件的用法。
如果他看懂了,文件拖放问题很容易解决啊!只要注意获取 WM_DROPFILES 消息即可!
 
多人接受答案了。
 
后退
顶部