我认为用paintbox自己画比较好!建议从图形类继承一个新的组件。比如你的背景图为一把尺子,假设在bmpRuler(Tbitmap)中存储!你的可移动的小块存储在bmpMoveBlock(Tbitmap)中。如果要水平移动就可以这样画! var //全局变量 pOld:Tpoint; pNew:Tpoint;在mousedown中 pold.x:=x; pold.y:=y; 在mouseMove中 if ssleft in button begin //画背景 bitblt(pBox.canvas.handle, 0,0,100,20,bmpRuler.canvas.handle,0,0,srccopy); //画透明标块 Transparentblt(pBox.canvas.handle,x,0,20,20, bmpMoveBlock.canvas.handle,0,0,20,20,clwhite);
var //全局变量
pOld:Tpoint;
pNew:Tpoint;在mousedown中
pold.x:=x; pold.y:=y;
在mouseMove中
if ssleft in button begin
//画背景
bitblt(pBox.canvas.handle,
0,0,100,20,bmpRuler.canvas.handle,0,0,srccopy);
//画透明标块
Transparentblt(pBox.canvas.handle,x,0,20,20,
bmpMoveBlock.canvas.handle,0,0,20,20,clwhite);
end;