一个非常菜鸟的问题----如何打开一个新FORM,如何如何把一个变量从一个FORM 到另一个FORM? 我在一个FORM1中定义一个BUTTON事件,想在单击该BUTTON时打开另一个FORM,同时要关闭FORM1,我用form2.showmodel;form1.close;没法把FORM1关闭,该如何解决?另外,我想把FORM1中的变量S的值传递到FORM2,该? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你把Form2.ShowModel;改为Form2.Show;就可以了在Form2中定义一个与S同类型的变量然后 Form2.S := Form1.S就可以了 1.form2.showmodel;之后要等到form2关闭后才会执行下一句form1.close;2.定义一个全局变量不就行了.^_^ 试试form2.show;self.close;typeForm2 = class(Form) ...... Public psMyValue:String;end;form1中传变量过去时uses From2........... Form2.psMyValue := s; ....... 可不可以先from1.close,然后再form2.showmodel.至于变量可以定义一个全局的变量. 1、form2.show; self.close;2、这个是form1的unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1; s:string;implementationuses Unit2;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begins:='124';form2.show;self.close;end;end.这个是form2的unit Unit2;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm2 = class(TForm) Label1: TLabel; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form2: TForm2;implementationuses Unit1;{$R *.dfm}procedure TForm2.Button1Click(Sender: TObject);beginlabel1.Caption:=s;end;end. 调用form2,关闭form1 form2.show; form1.visible:=false;调用form1的变量 form2.label:=form1.x;//x为form1的全局变量 如果Form1是你的主窗体的话,你什么都得不到!!!应为Delphi程序中的主窗体Close,就会整个程序退出了^_^!!! 当然其它的窗体也会被关闭。所以如果Form1是主窗体,那么你可以这么做Form1.Visibled = false;Form2.showmodal;如果你有数据要Form2知道,有三种解决方案:1:全局量2:在Form1中定义一个public的变量,在 Form2 := TForm2.Create(self) 在Form2中定义一个pForm : TForm1 重载Form2的Create,并且使 pForm := OWner; 然后就可以通过pForm来访问所有的Form1的公有属性和方法3:就是在Form2中定义公有属行,在showmdal之前,给这些属行赋值 it's almost all above it. 上面说的都有道理,变量仅仅是作成全局变量就可以,窗口如果是CHILDMID,需要更改一下FORM。SYSTEM, 继承自两个基类?? 有问题,请帮助解决 一个送分问题(对DELPHI熟练的人都会) 本人是一DELPHI再菜不过的菜鸟,希望能得到大家的热心帮助! ServerSocket用非阻塞模式,CLIENT端就一定是非阻塞模式才可以和SERVER端通信? delphi自带的DBDEMOS消失了,大家帮忙啊 有没有看完没笑死的??? 怎样对表中的"GRAPHIC"的字段进行付值? 高分求TeamSource的注册码 sevice怎么个写法? 高分请教TeeChart5.02中指针工具的用法 求几个函数!朋友进来看看吧!:)
改为Form2.Show;就可以了在Form2中定义一个与S同类型的变量
然后 Form2.S := Form1.S就可以了
2.定义一个全局变量不就行了.^_^
form2.show;
self.close;type
Form2 = class(Form)
......
Public
psMyValue:String;
end;
form1中传变量过去时
uses From2
......
.....
Form2.psMyValue := s;
.......
至于变量可以定义一个全局的变量.
self.close;
2、这个是form1的
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
s:string;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
s:='124';
form2.show;
self.close;
end;
end.
这个是form2的
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Label1: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
label1.Caption:=s;
end;
end.
form2.show;
form1.visible:=false;
调用form1的变量
form2.label:=form1.x;//x为form1的全局变量
所以如果Form1是主窗体,那么你可以这么做
Form1.Visibled = false;
Form2.showmodal;如果你有数据要Form2知道,有三种解决方案:
1:全局量
2:在Form1中定义一个public的变量,在 Form2 := TForm2.Create(self)
在Form2中定义一个pForm : TForm1
重载Form2的Create,并且使 pForm := OWner;
然后就可以通过pForm来访问所有的Form1的公有属性和方法
3:就是在Form2中定义公有属行,在showmdal之前,给这些属行赋值
窗口如果是CHILDMID,需要更改一下FORM。SYSTEM,