怎么把form1的一个变量传到form2去啊? 怎么把form1的一个变量传到form2去啊?我试了在form1里面声明了一个public integer变量,然后在form2调用。。但是调用的值一直都是0 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //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 } val: integer; end;var Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begin val:=100; form2.Show;end;end.//Form2的代码--------------------------------------------unit Unit2;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm2 = class(TForm) 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);begin showmessage(inttostr(form1.val));end;end. 当然赋过了。。我在form1调用都是正常的。。是不是我声明那个变量的地方放错了啊??这是代码:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, DB, ADODB, jpeg;type TForm_Logo = class(TForm) Label3: TLabel; LOGO_backimage: TImage; Edit1: TEdit; RaB_stu: TRadioButton; RaB_academy: TRadioButton; Edit2: TEdit; RaB_manage: TRadioButton; Label2: TLabel; Label1: TLabel; Button1: TButton; ADOConnection1: TADOConnection; ADOStoredProc1: TADOStoredProc; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } Cauthority : integer;//就是这个变量 end;地方放错没有?? 我找到问题了。。原来delphi会先把所有的form先初始化一遍,而我是在form2初始化的时候调用的,form1中的变量还没来得及赋值。但是又有了个新问题。。我是想用那个变量去动态生成一个treeview,而我没找到treeview的初始化函数,所以才在form2建立的时候初始化treeview的。。可以告诉我treeview怎么在form建立的时候初始化吗?? 而我没找到treeview的初始化函数///////////不是你的错,因为根本就没有什么初始化函数只有动态创建.在form2建立的时候初始化Treeview?///////////放在form2的oncreate或者是onshow都可以的。 但是我需要那个变量去初始化treeview啊。。怎么解决呢? delphi的对象实例化的时候一般都回有一个初始值的,比方integer类型的数据就是0,这没什么好奇怪的。你如果想要实现,新窗口从form1中的一个参数哪里获得值的话,可以在新窗口中uses form1的那个文件,然后在窗口onCreate或者OnShow的时候读出来那个数,然后给你的Cauthority : integer赋值就可以了。关于动态构造TreeView的问题,基本上调用几个TreeNode的add或者addchild方法基本上就能够搞定。 我就是放在form2的oncreate的啊。。可是那个变量在form2初始化的时候还没赋值呢delphi会先把所有的form先初始化一遍 1、确认已经uses进去了form1(参数来源,这里暂称之为form1)。2、在form2(新建的窗口,赞成为form2)OnCreate事件当中从form1读取数值,给form2的Cauthority赋值。3、在form2的OnCreate或者OnShow事件当中动态的构造TreeView,当然如果写在OnCreate里面的话,要注意赋值和动态构造的先后顺序。 你可以让form2主动去读数据的看现在你是让form1给form2去赋值,这样的话就不行了,为什么不让form2去主动的读取那??? 问题已经解决,在form2.show里面调用那个数据就可以了to:heluqing(鉴之小河〖挣大钱娶美女〗) 非常谢谢,不过你还是没看动我的意思。。我意思是,那个变量是在form1。buttonclick事件里面赋值的,而delphi会在运行的时候把所有的form都先初始化了,也就是先调用了create,而这个时候那个变量还没赋值,所以在form2.create里面调用这个变量的值是0高兴啊。。困绕了我一晚上,主要是没想到delphi会在运行的时候把所有的form都先初始化该去睡觉了 :p pagecontrol的舌页标题能否竖向显示? 关于使用代码关机及截获关机消息并响应的问题[急,分不够加!] Borland挺有意思. 如何判断edit的内容两次输入的是否为同一个值 有谁比我晚吗? 有一个密码保存的问题 DELPHI自带的Resource WorkShop在哪呢?? delphi中如何知道句柄中的值 热敏打印机的定位问题 谁能提供一份ADODataSet数据导出到EXCEL的解决方案 COM ,COM+,ActiveX三种控件有什么区别,又有什么联系? Very easy 的问题
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 }
val: integer;
end;var
Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
val:=100;
form2.Show;
end;end.
//Form2的代码--------------------------------------------
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm2 = class(TForm)
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);
begin
showmessage(inttostr(form1.val));
end;end.
是不是我声明那个变量的地方放错了啊??
这是代码:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, DB, ADODB, jpeg;type
TForm_Logo = class(TForm)
Label3: TLabel;
LOGO_backimage: TImage;
Edit1: TEdit;
RaB_stu: TRadioButton;
RaB_academy: TRadioButton;
Edit2: TEdit;
RaB_manage: TRadioButton;
Label2: TLabel;
Label1: TLabel;
Button1: TButton;
ADOConnection1: TADOConnection;
ADOStoredProc1: TADOStoredProc;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
Cauthority : integer;//就是这个变量
end;
地方放错没有??
但是又有了个新问题。。我是想用那个变量去动态生成一个treeview,而我没找到treeview的初始化函数,所以才在form2建立的时候初始化treeview的。。可以告诉我treeview怎么在form建立的时候初始化吗??
///////////不是你的错,因为根本就没有什么初始化函数
只有动态创建.
在form2建立的时候初始化Treeview?
///////////放在form2的oncreate或者是onshow都可以的。
关于动态构造TreeView的问题,基本上调用几个TreeNode的add或者addchild方法基本上就能够搞定。
delphi会先把所有的form先初始化一遍
2、在form2(新建的窗口,赞成为form2)OnCreate事件当中从form1读取数值,给form2的Cauthority赋值。
3、在form2的OnCreate或者OnShow事件当中动态的构造TreeView,当然如果写在OnCreate里面的话,要注意赋值和动态构造的先后顺序。
看现在你是让form1给form2去赋值,这样的话就不行了,为什么不让form2去主动的读取那???
to:heluqing(鉴之小河〖挣大钱娶美女〗)
非常谢谢,不过你还是没看动我的意思。。我意思是,那个变量是在form1。buttonclick事件里面赋值的,而delphi会在运行的时候把所有的form都先初始化了,也就是先调用了create,而这个时候那个变量还没赋值,所以在form2.create里面调用这个变量的值是0高兴啊。。困绕了我一晚上,主要是没想到delphi会在运行的时候把所有的form都先初始化
该去睡觉了 :p