窗体之间传递值,但不破坏对象的封装呢? 窗体A中的edit中一个值需要传递到 新开的窗体B的一个edit中。在窗体A中的按钮单击事件会打开窗体B。如何不破坏封装来传递这个值,全局变量的方法就算了. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //先此用B的單元文件procedure Form1.Button1click(Sender:Tobject);begin with Tfrom2.create(nil) do begin try Edit.text := self.Edit.text; ShowModal; finally Free; end; end;end;// 隨手寫的,功能就是在A中建立模態的窗體B並對其的EDIT賦上A窗體中EDIT的值給它 你直接赋值不就可以了 按钮单击事件下 Form2.edit1.text := 在窗体B中设置属性private FMyValue:string; procedure SetValue(Value:string);public property MyValue:string read FMyValue write SetValue;procedure B.SetValue(Value:string);begin FMyValue := Value;end;A中创建B时B:TB;B := TB.Create(nil);B.MyValue := edit1.text;//这里将触发B的SetValue过程B.Show; //TForm2实现 TForm2=class(TForm) private FA:string; public property A:string read FA write FA; procedure Business; end;//TForm1实现procedure TForm1.OnClick;var Form2:TForm2;begin Form2.Create; try Form2.A:=Edit1.Text; Form2.ShowModal; finally Form2.Free; end;end; 也可以用发消息的方法var S: String;begin S := Edit1.Text; SendMessage(form2.Edit1.Handle,wm_settext,0,LongInt(s));end; 3楼的对,用属性的办法.这样不破坏其封装性.不要用全局变量.应该把Tform也理解成一个类,用全局变量破坏了封装性.同时用属性的方法,在SET_XXXX过程中可以写各种由于此属性变化而在窗体上应作的征理.属性和事件,是学delphi必须会用的,特别是在不同窗体之数据和动作传递.TProcedure 的用法大家去查查. 想做一个生成复杂excel文件的应用,哪种工具适合 关于webbrowser的几个小问题 基于SOAP的三层结构:客户端和WebService之间数据传递的安全性怎么实现? ClientDataSet1.PacketRecord如何使用? pardox表中日期常量怎么表示,最好举个例子,谢谢 大家来看看这段代码有什么问题? 急待解决的问题,绝对送分 为什么delphi3无法跟踪? 关于Delphi6中日期的一个问题 关于falshget的问题,高手救命 Tchart上如何随鼠标显示相应图像的数值 dll中如何使用 ExtractFilePath(application.exename);
procedure Form1.Button1click(Sender:Tobject);
begin
with Tfrom2.create(nil) do
begin
try
Edit.text := self.Edit.text;
ShowModal;
finally
Free;
end;
end;
end;// 隨手寫的,功能就是在A中建立模態的窗體B並對其的EDIT賦上A窗體中EDIT的值給它
按钮单击事件下 Form2.edit1.text :=
FMyValue:string;
procedure SetValue(Value:string);
public
property MyValue:string read FMyValue write SetValue;procedure B.SetValue(Value:string);
begin
FMyValue := Value;
end;A中创建B时B:TB;B := TB.Create(nil);B.MyValue := edit1.text;//这里将触发B的SetValue过程B.Show;
//TForm2实现
TForm2=class(TForm)
private
FA:string;
public
property A:string read FA write FA;
procedure Business;
end;
//TForm1实现
procedure TForm1.OnClick;
var
Form2:TForm2;
begin
Form2.Create;
try
Form2.A:=Edit1.Text;
Form2.ShowModal;
finally
Form2.Free;
end;
end;
S: String;
begin
S := Edit1.Text;
SendMessage(form2.Edit1.Handle,wm_settext,0,LongInt(s));
end;