问题:怎样实现在DBImage控件上,用鼠标的左键点住,然后向左拉,就执行“前一记录”显示前一张图片向右拉就执行“后一记录”,显示后一张图片现在主要的问题出在,虽然可以捕捉到鼠标在图片上的拖动事件,
但不能判断他是向左还是向右。
procedure TForm1.Image1DragDrop(Sender, Source: TObject; X, Y: Integer);
各位有什么好的办法???
但不能判断他是向左还是向右。
procedure TForm1.Image1DragDrop(Sender, Source: TObject; X, Y: Integer);
各位有什么好的办法???
解决方案 »
- 极其简单的if 判断。求大神。
- ListBox如何实现多选,多选后被选中项颜色变深,有例子最好,谢谢了
- 想装个PCISHOW控件,不会,查资料说要编译,还是不会!求详解!怎么编译呀?
- 通过代理才能上网的机器,如何访问远程终端服务器
- 求解~~~~~!!请各位大吓帮忙呀~~![分不多,但给出答案的大虾一定会有分!!!]
- delphi 下怎样调用mssql2000的 存储过程
- 在delphi中可以实现两个文件的合并么?
- delphi程序运行时出错了,我不知道怎么处理了,高手请指教!!!
- 请告诉我,我做错了什么?(数据添加)
- 菜鸟的问题,请各位不吝赐教。
- 错误:[Fatal Error] Spider.dpr(7): Read error on 'Main_unit.dcu' , 救命啊
- 在DbGrid控件中怎么使当前选中的记录变成一种自已期望的color。而不只是当前选中的那个单元格变色.
可以捕捉到X的值,不过就难判断是向左还是向右啊
當鼠標但即使記下x,y,
當屬標移時記下x1,y1,
如果x-x1>0則為右,<0則為左如何?
我也是这样想的,在MouseDown记下X的值,在ondragdrop()和ondragover()判断X的变化不过用了ondragdrop()和ondragover(),就捕捉不到MouseDown的值了,除非用右键好象,ondragdrop()和ondragover()比MouseDown的级别比较高,被他先捕捉了
OnStartDrag & OnEndDrag 就可以了.
procedure TForm1.Image1StartDrag(Sender: TObject;
var DragObject: TDragObject);
procedure TForm1.Image1EndDrag(Sender, Target: TObject; X, Y: Integer);
Image1EndDrag的才有
MouseDown记下X的值
MouseMove记下X1的值
MouseUp判斷是<0還是>0
不可以嗎?
只是我用了ondragdrop()和ondragover(),
就捕捉不到MouseDown的X值
試試在MouseDown\MouseMove\MouseUp中做
MouseDown记下X的值
MouseMove记下X1的值
MouseUp判斷是<0還是>0
不可以嗎?
-------------试过,MouseMove和MouseUp的效果不好用
我試一試
我要在图片上拉就可以的,多方便谢谢你xufenglong(塞北星)
你很热心
之后在判断是左还是右。
在procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
捕捉到的X值, 在执行 procedure TForm1.Image1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);之后,
两个X的值就都一样了
怎么判断?
能不能就在这一个事件里面,判断每次变化的是向左还是向右??这一个事件就行,因为,其他事件都是要鼠标放开,或者鼠标离开才触发
我要实时的
2、在MouseMove事件中判断左键是否按下,是则计算当前鼠标位置和先前记录的横坐标差值,
达到一定条件,比如移动了10个象素就播放图片(当然也可用个TIMER),同时清理以前记录的鼠标位置,为下
一次做准备;不是则清掉原来的记录。
3、如果想鼠标不在窗口上也响应就弄个HOOK,或MouseDoen捕获鼠标。