移动图片(50分)

  • 主题发起人 主题发起人 juky_ma
  • 开始时间 开始时间
J

juky_ma

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在一个form上动态的加载多幅图片,
图片数量无法事先确定,并且可以自由的移动这些图片。
请问该如何做?
 
动态创建控件阿。
创建panel,然后创建Image,然后Image.parent:=panel;
然后让所有你创建的Iagem.OnMouseDown都这样写。
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
TPanel(TImage(Sender).Parent).Perform(WM_Syscommand,$f012,0);
end;
 
补充一下楼上的:
对于动态创建TIMAGE的,你可以用一个动态数组来控制,如下:
AIMAGES:ARRAY OF TIMAGE;
***
//开始使用该数组,n是你的图片个数动态的给予
setnlength(AIMAGES,N);
for I:= 0 TO N-1 DO
AIMAGES:=TIAMGE.CREATE();
***
可以使用了阿^_^
 
动态创建了n个image后,由于image是在运行期间动态创建的,image的事件代码怎样些呢?
 
procedure TForm1.Button1Click(Sender: TObject);
var
Image:TImage;
begin
Image:=TImage.Create(self);
Image.Parent:=Panel;
Image.OnMouseDown:=Image1.OnMouseDown;

end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
TPanel(TImage(Sender).Parent).Perform(WM_Syscommand,$f012,0);
end;
 
我要移动其中某一个图片,我怎样获得这个Image的名称呢?
 
赚你这点分好难。创建的时候Image.Name:='Imagex';引用的时候TImage(FindComponent('Imagex'));
如果还有不明白建议去买一本开发指南看看,很厚,砖头似的,不过很好。
 
都被BUBBLE给说完了,^_^[:D][:D]
 
多些大家指点!
 
后退
顶部