delphi 关闭窗体怎样把窗体里面的内容都清空
作者&投稿:代秒 (若有异议请与网页底部的电邮联系)
将窗体上的所有 edit 组件清空,示例代码如下:
procedure TForm1.Button1Click(Sender: TObject);var i:integer;begin for i:=0 to self.ComponentCount-1 do begin if (self.Components[i] is Tedit) then begin Tedit(Components[i]).Clear; end; end;end;
窗体关闭,其实就是将窗体隐藏起来,没有显示而已,他并没有从内存中清除,可以随时通过show方法再次显示,而动态创建的窗口,可以通过FREE 方法将其销毁.即从内存中清除.不信你可以打开会务管理器查看.当关闭一个程序启动时就加载的窗体时,内存资源占用是不会减少的,但关闭一个动态创建的窗体时,程序占用的内存资源就会减少.因此你在窗体关闭事件中写隐藏窗体的代码,就会发生冲突,而出错.
两种方法:1.在OnClose事件中一个一个清除
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Edit1.Text := '';
Edit2.Text := '';
Memo1.Lines.Clear;
end;
2.每次显示窗口前,都新建一个窗口类,关闭时把它Free掉
procedure TForm1.Button1Click(Sender:TObject);
var
f2:TForm2;
begin
f2:=TForm2.Create(Self);
f2.ShowModal;
f2.Free;
end;
一楼正确!
这样的代码也好意思拿出来教人啊?
那要是几百个edit该怎么办啊?
赤宇康复: 关闭窗口很简单,可以关闭自己程序的窗口,也可以关闭其它程序的窗口.关闭自己程序的窗口只需要调用相应窗口的close方法即可,比如Form1.close;关闭其它程序的窗口需要知道它的HANDLE,用过程PostMessage可以关闭,比如: PostMessage(handleWID,WM_QUIT,0,0)
琅琊区13813021208: Delphi如何让隐藏的窗体显示 - ?
赤宇康复: 下面是Delphi显示和隐藏窗体的代码:隐藏:Application.Minimize();ShowWindow(application.Handle,SW_HIDE); 显示:ShowWindow(application.Handle,SW_SHOW);Application.Restore();
琅琊区13813021208: Delphi编程:如何用菜单关闭窗口 - ?
赤宇康复: 在菜单点击事件中加一行就可以:Close;
琅琊区13813021208: delphi如何实现5秒内自动关闭窗体?
赤宇康复: '这个简单 implementation//定义全局变量i var i:Integer; {$R *.dfm} //添加一个Timer控件,双击这个控件 //代码为 procedure TForm1.Timer1Timer(Sender: TObject); begin i:= i+1; if i=5 then Form1.Close; end;
琅琊区13813021208: DELPHI关闭子窗体 - ?
赤宇康复: 在Delphi中,所有窗体关闭时都会调用OnClose过程.该过程的Action: TCloseAction变量决定窗体的关闭方法.对于SDI子界面,默认是caHide,也是就隐藏.对于MDI子界面,默认是caMinimize,也就是最小化.你可以在窗体的OnClose过程中设置Action为caFree,就可以正常关闭窗体了.procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end;
琅琊区13813021208: Delphi运行程序如何实现关闭隐藏所有子窗体,留下父窗体? - ?
赤宇康复: 循环查询所有子窗体,如果显示则关闭 for i:=0 to mainForm.MDIChildcount do begin mainForm.MDIChildren[i].close; // or mainForm.MDIChildren[i].setToback; end;
琅琊区13813021208: delphi登录窗体是子窗体,运行时怎样只显示登录窗体,隐藏其他窗体 - ?
赤宇康复: 你把应用窗体做主窗体 登陆窗体不用去管 只是你再工程这样写 Application.CreateForm(TLOG_f, LOG_f); Application.CreateForm(TMain_f, Main_f);
琅琊区13813021208: delphi用一个按钮打开关闭某窗体 - ?
赤宇康复: procedure TForm1.Button1Click(Sender: TObject); beginif form2.Visible thenform2.Hideelseform2.Show; end;
琅琊区13813021208: 如何动态打开和关闭一个窗体?
赤宇康复: 我 的 方法 :首先在Delphi的option 页中将要动态生成的窗体放在右边栏中,设要动态生成的窗体为formchild,在调用他的事件中输入代码:FormChild:=TFormChild.Create(Application);FormChild.show;//或者FormChild.ShowModal;关闭该窗体时在onclose事件中调用如下代码:Action:=CaFree;
琅琊区13813021208: DELPHI如何实现5秒内自动关闭窗体 - ?
赤宇康复: 你要以在窗体上放一个Timer1控件,在里面添加上关闭程序的代码.procedure TForm1.Timer1Timer(Sender: TObject); begin Form1.Close; end; 然后将其的Interval设计为0,就是不启动.当你想让其5秒后关闭时,就将Timer1的Interval设计为5000就可以了.这样5秒后就会运行其中的关闭程序代码来关闭窗体了.