有沒有方法把下面這段代碼簡化一下?

popmailzjw 2003-08-30 02:56:29
procedure TfrmUseTime.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
if btsave.Enabled then
case
application.MessageBox('有修改的數據沒有保存﹐要保存嗎﹖', '警告',
MB_YESNOCANCEL + MB_DEFBUTTON1) of
IDYES: btsave.OnClick(nil);
idno: btcancel.OnClick(nil);
idcancel: abort;
end;
end;
我有很多這樣的窗口﹐每一個窗口都要用這段代碼﹐我能不能把它簡化一點﹐不要每個單元里都要去寫這一段
...全文
31 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
popmailzjw 2003-09-01
  • 打赏
  • 举报
回复
謝謝﹐知道該怎么做了﹐不懂再問大家
yujohny 2003-08-30
  • 打赏
  • 举报
回复
用继承最好了。我先你frmUserTime为基窗
现在你新建一个Form,然后将
unit Unit1;

interface

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

type
TForm1 = class(TForm) //将这里的TForm改为TfrmUseTime
也就是改为TForm1 = class(TfrmUseTime)

然后到窗体那里右键选“View as text”,
将object Form1: TForm1 改为 inherited Form1: TForm1 ,然后右键选“View as Form”
你就可以看见Form1继承了TfrmUseTime已有的控件,包括它的事件
注意:继承好用但不可滥用
yujohny 2003-08-30
  • 打赏
  • 举报
回复
用继承最好了。我先你frmUserTime为基窗
现在你新建一个Form,然后将
unit Unit1;

interface

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

type
TForm1 = class(TForm) //将这里的TForm改为TfrmUseTime
也就是改为TForm1 = class(TfrmUseTime)

然后到窗体那里右键选“View as text”,
将object Form1: TForm1 改为 inherited,然后右键选“View as Form”
你就可以看见Form1继承了TfrmUseTime已有的控件,包括它的事件
注意:继承好用但不可滥用
popmailzjw 2003-08-30
  • 打赏
  • 举报
回复
to all:

我還是初學初用D,模板是一個怎么樣的概念﹐能不能給一個簡單的例子
qinkm 2003-08-30
  • 打赏
  • 举报
回复
同意阿春的办法,现在我们就是这么做的,先做一模板,所有公用功能都建在这里.后产生的窗口从它下继承...所有代码都省下了...
cnssk 2003-08-30
  • 打赏
  • 举报
回复
Form2.OnCloseQuery:=FrmUseTime.OnCloseQuery;
mrtxc 2003-08-30
  • 打赏
  • 举报
回复
先把做好一个窗口,其它窗口都做它的子类,继承于它,就很简单了
nyf1220 2003-08-30
  • 打赏
  • 举报
回复
是个办法
cnssk 2003-08-30
  • 打赏
  • 举报
回复
Form2.OnCloseQuery:=FrmUseTime.OnCloseQuery;

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧