关于用Delphi开发的一些基本的套路

本文提供了一套使用Delphi进行软件开发的最佳实践,包括文件管理、界面设计、数据库操作等方面的具体建议,有助于提升代码质量和程序稳定性。
 关于用Delphi开发的一些基本的套路。

1.源文件,Dcu文件和最后的编译好的程序放在不同的目录

2.窗体单元都用WinXXXX的方式命名,Win做为前缀,窗体类都用Tfrm_XXXX的方式命名,Tfrm_做为前缀

3.窗体字体都设置成宋体,小五

4.使用一个 TDataModule 来放一些公用的控件,如 TImageList,不要在每个窗体都放TImageList整个程序
用一个就可以了,否则会造成图片重复,编译后的程序变大,TImageList如果放置的是16*16的图标,则命名为
  img_1616。

5.TDataModule 一般命名为 DMApp,做为系统中主要的一个公用单元。放置一些TADOConnection ADOQuery等非可初控件。

6.所有的按钮事件都使用 TActionList 如有用户添加,用户删除的功能,创建 act_UserAdd,act_UserDelete这些对应的 TAction。引用 

DMApp单元的 img_1616给每个 TAction 设置图标。

7.按钮功能,右键菜单,工具栏都指定自己的 Action属性。

8.如果某个地方需要指定调用一个功能,如要调用刷新,来重新显示用户清单,则用act_UserRefresh.Execute;的方式来调用,不要调用

某个按钮的 btn_UserRefresh.Click。

9.调整工程的dpr工程文件,让 DMApp单元先加载,dpr工程文件中除去DMApp单元和主窗体外,其它的窗体创建代码全部删除掉。也可以通

过 Project->Options->Forms 来进行调整。

10.如果有其它子窗体,如有子窗体A来完成用户编辑的功能,单元文件是 WinUserEdit,窗体类是 Tfrm_UserEdit。如果窗体是要 

ShowModal 使用,则将系统生成的var frm_UserEdit: Tfrm_UserEdit; 删除。给Tfrm_UserEdit添加类方法
class function CreateWinUserEdit(User:TUser):Boolean;实现代码如下

class function Tfrm_UserEdit.CreateWinUserEdit(User:TUser):Boolean;
var
  form:Tfrm_UserEdit;
begin
  Result:=False;
  form:=Tfrm_UserEdit.Create(Application);
  form.SetUserInfo(User);
  form.ShowModal;
  Result:=mrOK=form.ModalResult;  
end;

其它创建想创建 Tfrm_UserEdit 窗体时使用 Tfrm_UserEdit.CreateWinUserEdit(User);的方法,根据返回值做下一步的操作。

11.如果子窗体是 Show的方式打开,并且不能重复打开,则将系统生成的var frm_UserEdit: Tfrm_UserEdit; 放到implementation 下面

。给Tfrm_UserEdit添加类方法
class function CreateWinUserEdit(User:TUser):Boolean;实现代码如下

implementation 
  var  
  frm_UserEdit: Tfrm_UserEdit; 

class function Tfrm_UserEdit.CreateWinUserEdit(User:TUser):Boolean;
begin
  Result:=False;
  if Not Assigned(frm_UserEdit) then
  frm_UserEdit:=Tfrm_UserEdit.Create(Application);
  frm_UserEdit.SetUserInfo(User);
  form.Show;  
end;

procedure Tfrm_UserEdit.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:=caFree;
  frm_UserEdit:=nil;
end;

12.关于数据库操作,将TADOConnection 放在DMApp单元中。如要返回用户列表,在DMApp单元中实现

function DMApp.DBGetUserList(AList:TList):Integer;
begin
  执行SQL,返回生成User放到 AList对象中,返回总的个数。

end;

如果想要使用数据库绑定,则在DMApp单元放置一个ADOQ_User:TADOQuery;实现

function DMApp.DBGetUserList:TADOQuery;
begin
  执行SQL,返回数据集。
end;

使用的原则是:将和界面无关的功能放在 DMApp单元中,这样可以整个程序都共享,实现一些方法来封装数据库的操作,不要在
窗体单元中写的到处都是SQL语句。

13.要想程序不出错,那就不要将所有的代码分在一起,就象工厂不能所有人都在一个房间里干活一样,分层次,分类,代码结构清晰了
就不容易出错。设计就是从不同角度分类,分组,最后得到一个最好的组织方式。不要因为窗体少,就感觉能随便写,一个良好的习惯和套路让你不会过多的时间纠缠于解决一些基本的错误。结构清晰的你才能想得明白。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值