有关窗口的问题; (50分)

  • 主题发起人 主题发起人 逆水
  • 开始时间 开始时间

逆水

Unregistered / Unconfirmed
GUEST, unregistred user!
我将FROM1设为主窗口,将FROM2设为子窗口。
可我运行后,FROM1,和FROM2同时出现在桌面上。为什么我没有点击BUTTON1,FROM2就跳出来了。
我将FROM2的ONCLOSE事件中:ACTION:=CAFREE;
可我关掉FROM2后,再点击BUTTON1时,FROM2再也不出现了。为什么。
2;还有,如果我想在FORM2中调用FROM1中定义的变量:S,首先我在FROM2中
implementation
uses unit1;
在FROM2中,
procedure TForm2.Button1Click(Sender: TObject);
begin
edit1.text:=unit1.s+edit2.text;//这样写好象不对,要把UNIT1改为FROM1吗。

end;
上述地方不对的请多多指出。

可不可以在子窗口下再建子窗口?

多谢多谢各位了。
 
使用动态建立在打开怎么样:
var
modalform:tmodalform;
begin
modalform:=tmodalform.create(application);
try
modalform.showmodal;
....
finally
modalform.free;
modalform:=nil;
end;
end;
 
1.project->option->forms
AutoCreateForms,看到了么?
把form2弄到右边就行了。
再想让他出来就Application.Createform(TForm2,Form2);Form2.Show;

2。不管怎么写,能用就行。
 
问题一、.project->option->forms
把Main Form写成Form1。如果不行如上面bubble所述。
问题二、肯定要把Unit1改成Form1。
 
1.因為是子窗口,所以不能用模態顯示。
點擊菜單project->options->彈出一個窗口,
選擇forms頁,將form2拉到 Available form的
列表中。
form1調用form2可用:
if not assigned(form2) then
form2:=Tform2.create(self);
form2.show;
在form2關閉事件中寫:
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
form2:=nil;
end;
2.在form1中的變量s在Form1的Public下定義:
private
{ Private declarations }
public
s:string;
{ Public declarations }
end;
調用時
edit1.text:=form1.s+edit2.text;//
 
呵呵,披星老兄的程序,我似懂非懂,
BUBBLE老兄的好象不灵吗,我原来的程序写的和你一样的,只是没搞你给我说的那些东东。
反正还是不行么。
 
1.改为动态生成窗体
2.如果S是Private那么你无论如何也不能调用S,如果S是Pulbic,那么你可以这样调用
S:form1.S或unit1.form1.S
 
请问zxb200:
》 public
》 s:string;
》 { Public declarations }
》 end;
》 edit1.text:=form1.s+edit2.text;/
你调用成功了么?
 
我在上面写的是button单击时的过程部分,动态建立的
bubble老兄还提到了:
1.project->option->forms
AutoCreateForms,看到了么?
把form2弄到右边就行了。
我忘了说了,不过form2是modalform(反正是一个窗体)
只不可能不好理解吧.!
另外2中你把s定义为全局变量没有.
 
1:BUBBLE兄说得正确
另外你的ONCLOSE中,
action:=canone;
2,你的问题要改成FORM1,另外就是注意你的s要是全程变量!
 
谢谢大家的帮助,可惜分太少,只能各位各加点表达我的谢意吧。谢谢了。
对BOWL,HEROTUUN,KYLI8N-2000,和徐兄,也表示我的谢意。多谢大家了。
 
谢谢大家了。
 
后退
顶部