慚愧,編了這么多年程序,還沒用過拖拽功能
這次同事要實現圖標互換的功能,讓我幫忙看一下,於是趁機研究了一下拖拽事件,發現還是比較簡單的
參考了http://topic.csdn.net/u/20081015/14/98eef84c-0d2f-43a7-aa82-eef7028ef4f7.html里3150379的回答
要做以下事情:
1、放2個image控件(廢話)
2、把要拖拽的image的dragmode屬性設為dmAutomatic
3、在目的地image的OnDragOver事件里判斷是否接受
4、在目的地image的OnDragDrop事件里實現圖標位置的互換
代碼如下:
- procedure TF_Main.img2DragDrop(Sender, Source: TObject; X, Y: Integer);
- var
- Oldx: Integer;
- imgsrc, imgdes: timage;
- begin
- imgsrc := TImage( Sender );
- imgdes := TImage( Source );
- Oldx := imgsrc.Left;
- imgsrc.Left := imgdes.Left;
- imgdes.Left := Oldx;
- end;
- procedure TF_Main.img2DragOver(Sender, Source: TObject; X, Y: Integer;
- State: TDragState; var Accept: Boolean);
- begin
- if Source is TImage then
- Accept := True;
- end;
http://blog.csdn.net/youthon/article/details/6671679