一个esay的问题:如何把一个form中的一个Object传入另一个form,编辑后再传回来?(20分)

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

Boblee

Unregistered / Unconfirmed
GUEST, unregistred user!
我在form1中有一个Object,设为sceneObj,现在运行中,产生第二个form1,这个form的用处就
是对sceneObj本身的一些Property进行更改,之后,再在form1中用。

能否给点idea,有例码最好。

thx.
 
在Form1的声明中加入:
TForm1=class(TForm)
...
public
AObject:TMyObject;
end;

这样就可以在Form1的相应过程中处理AObject。
下面解决传入问题:

var
AObj:TMyObject;
procedure TForm1.Button1Click(Sender: TObject);
var
AnotherForm:TForm1;
begin
AnotherForm:=TForm1.Create(Self);
AnotherForm.AObject:=AObj
//******
AnotherForm.ShowModal;
AnotherForm.Free;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
AObject.DoSomething
//针对传入的AObject进行操作
end;

initialization
AObj:=TMyObject.Create;

finalization
AObj.Free;

end;
 
TForm1=class(TForm)? 换成我的程序的话就会了为:
THotSpot=class(TScene)? 而THotSpot和TScene是两个完全不同的我自己写的class.这样
行吗?
 
把你的 sceneObj 放入第一个窗口的窗口类(不就是TForm1吗)的 public 部分中
然后在第二个窗口中 uses Unit1(也就是第一个窗口的单元),然后就可以直接
通过 Form1.sceneObj 访问(修改)那个 Object 了,不用传过来再改。
 
beta's currect !
 
THX。我已用另一种方法解决了。给分喽。。
:)
 
后退
顶部