发信人: redfox (Z掉了几乎所有的版...), 信区: BorlandDev
标  题: Delphi编程 -- 2.17 Form有两种设定
发信站: 哈工大紫丁香 (2000年09月01日13:39:11 星期五), 站内信件

Form有AutoCreate与Available两种设定 

Delphi 一个Form 中有一 Edit and Button 按此 Button 会 show 出新 From 而
此新form 中的 Edit 内容要与原Form 相同, 我试不出来说两个 Form 都 uses 对


UNIT1
uses unit2;
procedure button1_click()
begin
form2.show;
end;

UNIT2
uses unit1;
procedure form2_onCreate()
begin
edit1.text:=Form1.edit1.text;
end;

执行结果没效 ??

Form 产生後、使用者使用前先设定 form上元件的值是写在 Form 的 OnCreate 
Event吧? 又如果原 Form是一个 MDIChild 的话, 是否会有差别?

两个 unit 均在 interface 互相 uses 对方是不可以的,一定要互相参考的话, 您
可以在 unitA 的 interfaceuses unitB, 然後在 unitB 的 implementation 中 
uses unitA你写的程式还是曾经执行过, 只是早在程式启动的时候, Delphi就已经
自动为您 Create 这个Form 了,关於这点你可以点一下主选单 View | Project 
Source, 看一下 project1.dpr 的内容, 在 Application.Run 前,是不是已经 
Create 过 Form2 了呢?

建""您可以先从主选单 Option | Project, 将 Form2 从Auto-create forms 移到
 Available forms, 然後在 Button1的OnClick 事件中加入以下程式段:

Application.CreateForm(TForm2, Form2);
Form2.Show;

相信你在 Form2 Create 事件中写的程式码就会如你的预期了。

或者, 您可以用下列的方法试试看:

unit Unit1;
interface
uses
...., Unit2;
.
.
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Edit1.Text := Form1.Edit1.Text;
Form2.Show;
end;
end.


 

--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.227.107]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.037毫秒