图片移动后怎样达到这样的效果 ( 积分: 50 )

  • 主题发起人 主题发起人 brain12345
  • 开始时间 开始时间
B

brain12345

Unregistered / Unconfirmed
GUEST, unregistred user!
在Panel1 中放一个image控件,image中放一个比较大的图片。用鼠标拖动图片时,要实现这样的效果。就是不论怎样来拖动图片,都要使图片能填充满整个“Panel1”
比如:当我向有右下方图动图片时,图片的上边和左边都跟"Panel1"的上边和左边重合的时候,这时图片就不可以在向“右下方拖动了”
只有这么多份了。
 
在Panel1 中放一个image控件,image中放一个比较大的图片。用鼠标拖动图片时,要实现这样的效果。就是不论怎样来拖动图片,都要使图片能填充满整个“Panel1”
比如:当我向有右下方图动图片时,图片的上边和左边都跟"Panel1"的上边和左边重合的时候,这时图片就不可以在向“右下方拖动了”
只有这么多份了。
 
不太明白你说的意思,能不能再说详细点,你的比如后的过程,是在你程序运行起来之后吗??
 
楼主说的是做成ACDSEE那样的吧?
 
这个问题一解决了。
我想在PANEL中的IMAGE 这个图片上来动态的添加图片,应该怎样来实现呢
(是动态的在原来的图片上添加图片)
 
图片上加图片,什么意思,如果Image上本来是个黑色图片,加个白色图片,你想要什么效果?
 
Image.Canvas.Draw(x,y,Graphics);
 
在大的图片上动态的添加小的图片这个问题我以解决。(如果谁需要我可以把代码贴出来)
现在有个新的问题。就是我在大的图片上创建了小的图片了。但是怎样在程序中写这些动态创建的这些动态小图片的各种事件呢 比如 小图片的 “onmousemove”“onmousedown”“onmouseup ”等等这些事件呢?
 
以我理解的意思写段代码给你:
var
BeginPoint, EndPoint: TPoint; //用来保存画图时起始点坐标和终止的坐标
myImage : TImage;//临时创建用来加载小图片的控键

procedure TForm1.PaintBoxMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
BeginPoint := Point(X, Y);
EndPoint := Point(X, Y);
end;

procedure TForm1..PaintBoxMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
EndPoint := Point(X, Y);
Self.Canvas.Pen.Style := psDot;
Self.Canvas.Brush.Style := bsClear;
Self.Canvas.Rectangle(BeginPoint.X, BeginPoint.Y, EndPoint.X + 1, EndPoint.Y + 1);//画一个虚线框,来标注新的图形的位置
end;

procedure TForm..PaintBoxMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
myImage := TImage.Create(Self);
myImage.Parent := Self;
myImage.Top := BeginPoint.X;
myImage.Left := BeginPoint.Y;
myImage.Width := abs(EndPoint.X - BeginPoint.X);
myImage.Height := abs(EndPoint.Y - BeginPoint.Y);
myImage.Visible := True;
if OpenPictureDialog1.Execute then //加载图片
myImage.LoadFromFile(OpenPictureDialog1.FileName);
end;

这是比较简单的办法,应该可以实现你说的功能。如果需要创建多个这样的图形对象,你可以另外再建一个结构:
var GraphicsList : TList;

在MourseUp中加入:GraphicsList.add(myImage);

如果需要对新增加的图形拖放,建议你用派生类,创建新的图形对象。
 
大家谁有比较好的 学习DELPHI 的 群号。给几个。
谢谢了
 

Similar threads

回复
0
查看
845
不得闲
D
回复
0
查看
767
DelphiTeacher的专栏
D
D
回复
0
查看
740
DelphiTeacher的专栏
D
后退
顶部