菜鸟问题,如何form close后,清除控制的状态? ( 积分: 100 )

  • 主题发起人 主题发起人 xutoa
  • 开始时间 开始时间
X

xutoa

Unregistered / Unconfirmed
GUEST, unregistred user!
比如有一form上有edit控件,填写字符后close 该form,重新show 出这个form时,edit是带有先前输入的字符。如何实现清空状态,不想在form建立时写edit.text:=''这样的语句。
 
procedure ShowForm1;
var
tmpForm: TForm1;
begin
tmpForm := TForm1.Create(nil);
try
tmpForm .Show;
finally
tmpForm.Free;
end;
end;
 
// 下面是工程单元
program Project1;

uses
Forms,
Unit1 in 'Unit1.pas' {frmMain},
Unit2 in 'Unit2.pas' {frmEdit};

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TfrmMain, frmMain);
// Application.CreateForm(TfrmEdit, frmEdit); <--工程里注销这个你要FORM
Application.Run;
end.


//下载是主窗口单元
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TfrmMain = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmMain: TfrmMain;

implementation
uses Unit2;

{$R *.dfm}

procedure TfrmMain.Button1Click(Sender: TObject);
var
frmEdit:TfrmEdit;
begin
frmEdit:=TfrmEdit.Create(Self);
frmEdit.Show;
end;

end.

//下载是你要调用的窗口
unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TfrmEdit = class(TForm)
Edit1: TEdit;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmEdit: TfrmEdit;

implementation

{$R *.dfm}

procedure TfrmEdit.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Self.Free;
end;

end.
 
bbscom的比较详细[:D]
 
也可以不用写相关的代码的.
1.选择菜单中的"project",打开options项
2,在auto-create formsk 中将你要SHOW的FORM移到AVAILABLE FORMS栏,每次CREATE并SHOW时EDIT控件就会自动清空呀.
 
问题是edit控件是在第二个FORM上,不用时close.用时show.但问题是第二次show时,edit控件是带有上次编辑后的状态的。
 
在onclose事件中写:self:=nil
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
357
import
I
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部