发信人: 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毫秒