在form上,想把一个image控件拖放到form1上的任何位置,于是在image1上加上dragover事件procedure TForm1.Image1DragOver(Sender, Source: TObject; X, Y: Integer;State: TDragState; var Accept: Boolean);
begin
form1.Edit1.Text:='x:'+inttostr(x)+',y:'+inttostr(y);
image1.Left:=x;
image1.Top:=y;
image1.Refresh;
end;
但是,每次一开始拖动,image马上出现在form最左上角的地方,而且,拖来拖去都拖不出左上角那块小小的区域。后来发现,原来这个image1的width是33,height也是33,拖动时,image.left,image.top最大只能是32,所以才局限在form的左上角。 这问这是什么回事,怎么解决。分数不多了,请大家帮帮忙,谢谢。
begin
form1.Edit1.Text:='x:'+inttostr(x)+',y:'+inttostr(y);
image1.Left:=x;
image1.Top:=y;
image1.Refresh;
end;
但是,每次一开始拖动,image马上出现在form最左上角的地方,而且,拖来拖去都拖不出左上角那块小小的区域。后来发现,原来这个image1的width是33,height也是33,拖动时,image.left,image.top最大只能是32,所以才局限在form的左上角。 这问这是什么回事,怎么解决。分数不多了,请大家帮帮忙,谢谢。
解决方案 »
- 在线等候:请问在Delphi8中怎样把一个c写的dll导入到工程中
- 请回答??????????????
- 再次重申:我5416正式加入CSDN,送上1大分,不成敬意,最后一个回贴的同志可以得到这一分,我向foxnt、windindance...等各位老同志保证!
- 变量声明与赋值:
- 如何用程序实现Ping(不调用dos命令"ping")?
- DELPHI尽善尽美
- 抽烟的鱼,请进,刚才的问题还有一点。。。。。
- 3.请问我安.dpk的包了,不过安到哪里了呢?什么也没看到,就安完了。??
- 请问各位前辈:当改变数据库中某些字段时,相应字段亦随之改变,是否只有将相应字段定义成计算字段才可?
- 求助,有關一個ClientDataSet問題
- lists out of bound (0)........
- sql数据库中限制连接客户端数量
然后在Image的OnMouseDown写如下代码,就可以实现拖动了procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if (Button = mbLeft) then//按下鼠标左按钮
begin
PostMessage(Panel1.Handle, WM_SYSCOMMAND, SC_MOVE or 2, 0);
ReleaseCapture;
end;
end;
试试这个:
var
pt: TPoint;
begin
pt.X := X;
pt.Y := Y;
pt := ClientToParent(pt);
Image1.Left := pt.X;
Image1.Top := pt.Y;
Image1.Refresh;
end;