我在scollbox中放了一个image,图片超出显示的范围,
1.如何能让方向键(上下左右)可以移动图片;
2.如何实现让鼠标滑轮可以移动图片。
1.如何能让方向键(上下左右)可以移动图片;
2.如何实现让鼠标滑轮可以移动图片。
解决方案 »
- delphi?
- delphi中如何获得用户拖动标题栏移动窗体的事件呢?
- delphi7.0中在sqlserver里用存储过程返回多个表的数据,不知怎么办
- TADODataSet Filter 多条件过滤问题
- 冰天雪地裸体狂奔三百六十里路三百六十度大翻身腾空飞起双膝跪地求解!
- 如何快速确定文本文件一共有几行?
- 高手教我,怎样使DBComboBox显示一个初值?
- dbgrid可選多行,怎樣得到選中的紀錄
- 一个很简单的问题,希望各位大侠指点迷津
- 如何定义stringgrid的各列的宽,将各列的宽设为不同?
- 明天回家,看看我在医院里等着开刀的老妈妈
- 请教熟悉VB的同仁!不知哪位能帮我将此VB源程序翻译成DELPHI?
OnMouseWheelDown
OnKeyDown
中写代码改变位置!但要注意要将各可视控件的TabStop全都设为False!否则方向键会改变焦点,导致下面的代码都无效!
Sendmessage(ScrollBox1.Handle,WM_HSCROLL,SB_LINERIGHT,0);
Sendmessage(ScrollBox1.Handle,WM_VSCROLL,SB_LINEUP,0);
Sendmessage(ScrollBox1.Handle,WM_VSCROLL,SB_LINEDOWN,0);
或者
ScrollBox1.HorzScrollBar.Position:=ScrollBox1.HorzScrollBar.Position+1;
ScrollBox1.HorzScrollBar.Position:=ScrollBox1.HorzScrollBar.Position-1;
ScrollBox1.VertScrollBar.Position:=ScrollBox1.HorzScrollBar.Position+1;
ScrollBox1.VertScrollBar.Position:=ScrollBox1.HorzScrollBar.Position-1;
还有
...方法太多了!关键是思路要开阔!
我刚做过类似的程序。你可以模仿ACDSee里的图片移动功能,就是那个"手"
拖动鼠标,即可实现图片的移动。
代码如下:
NewX, NewY, OldX, OldY, AppendX, AppendY: integer;
gMouseDown: Boolean;在Image的onMouseDown中: gMouseDown := true;
OldX := X;
OldY := Y; AppendX := 0;
AppendY := 0;
在Image的onMouseMove中:
if gMouseDown then begin
NewX := X;
NewY := Y; AppendX := (NewX - OldX);
AppendY := NewY - OldY; ScrollBox1.HorzScrollBar.Position := ScrollBox1.HorzScrollBar.Position - AppendX;
ScrollBox1.VertScrollBar.Position := ScrollBox1.VertScrollBar.Position - AppendY;
end;在Image的onMouseUp中:
gMouseDown := false;
我刚做过类似的程序。你可以模仿ACDSee里的图片移动功能,就是那个"手"
拖动鼠标,即可实现图片的移动。
代码如下:
NewX, NewY, OldX, OldY, AppendX, AppendY: integer;
gMouseDown: Boolean;在Image的onMouseDown中: gMouseDown := true;
OldX := X;
OldY := Y; AppendX := 0;
AppendY := 0;
在Image的onMouseMove中:
if gMouseDown then begin
NewX := X;
NewY := Y; AppendX := (NewX - OldX);
AppendY := NewY - OldY; ScrollBox1.HorzScrollBar.Position := ScrollBox1.HorzScrollBar.Position - AppendX;
ScrollBox1.VertScrollBar.Position := ScrollBox1.VertScrollBar.Position - AppendY;
end;在Image的onMouseUp中:
gMouseDown := false;
我刚做过类似的程序。你可以模仿ACDSee里的图片移动功能,就是那个"手"
拖动鼠标,即可实现图片的移动。
代码如下:
NewX, NewY, OldX, OldY, AppendX, AppendY: integer;
gMouseDown: Boolean;在Image的onMouseDown中: gMouseDown := true;
OldX := X;
OldY := Y; AppendX := 0;
AppendY := 0;
在Image的onMouseMove中:
if gMouseDown then begin
NewX := X;
NewY := Y; AppendX := (NewX - OldX);
AppendY := NewY - OldY; ScrollBox1.HorzScrollBar.Position := ScrollBox1.HorzScrollBar.Position - AppendX;
ScrollBox1.VertScrollBar.Position := ScrollBox1.VertScrollBar.Position - AppendY;
end;在Image的onMouseUp中:
gMouseDown := false;