- 2
- 0
- 约9.2千字
- 约 13页
- 2018-06-03 发布于福建
- 举报
Delphi程序的设计之 惯用法
Delphi程序设计之 惯用法
--技巧探索:
{No.1}
创建模式窗体的句子:
class procedure TMyForm.RunForm(AObj1,AObj2:TObject);
var vForm:TMyForm;
begin vForm:=TMyForm.Create(Application);
with vForm do Try InitForm(AObj1,AObj2);
ShowModal;
Finally Free;
end;
end;
//*说明:
通过class声明的函数,类似与VC中的静态函数;使用语句:TMyForm.RunForm(vObj1,vObj2);
其他具体的,参考:Delphi帮助中的,class类说明。
强调这个惯用法,就是为了:
1、如果此窗体在多处被使用,那么可以保证统一都调用此段代码;
2、如果功能上有所修改,比如:根据ShowModal的返回值不同进行处理,那么只修改此函数就行了。
3、程序封装性好,易于维护和工作交接。*//
{No.2}//Tag的使用
窗体工具栏按钮事件的响应
procedure TMyForm.RunOperate(ATag:Integer);
begin Case ATag of 1:MyButton.Color:=clRed;
2:MyButton.Color:=clGreen;
3:MyButton.Color:=clBlack;
end;
end;
procedure TMyForm.ToolBtnClick(Sender:TObject);
begin RunOperate(TControl(Sender).Tag);
end;
如果你在某下拉菜单中,也需要执行类似功能则
procedure TMyForm.MenuItemClick(Sender:TObject);
begin RunOperate(TMenuItem(Sender).Tag);
end;
//*说明:
1、结构清晰
2、相关的信息集中,比较容易查错、修改和维护
3、提高程序的适应、扩展能力;比如现在要求不在工具栏按钮中实现,而要求在不同按钮中实现,则修改容易。
建议:每个分类后面只跟一行或不多的几行代码,如果代码比较多,使用过程函数替代。
比较有意思的是,我经常如下写:
Case btnMyButton.Visible of
{显示}True:.
{不显示}False:.
end;*//
{No.3}//事件指针做参数
//对于列表等的读取使用事件指针的方式
type TDataSetEvent=procedure(DataSet:TDataSet;AIndex,ACount:Integer)of Object;
//从TADOQuery派生而来的类
procedure TMyADOQuery.EnumRecord(AWhereStr:String;APro:TDataSetEvent);
begin Close;
SQL.Clear;
SQL.Add(Select*From Table1);
if AWhereStrthen SQL.Add(Where+AWhereStr);
Open;
While Not Eof do begin if Assigned(APro)then APro(Self,RecNo,RecordCount);
Next;
end;
Close;
end;
//*说明:
此方法来自与Window中,枚举当前所有子窗体的API函数,EnumChildWindow 1、原则:尽量将数据读取与数据显示、数据处理等分离;如:MVC等都是此目的。
2、程序扩展性增强,如果您原来希望在列表中显示或处理某列信息,后来改为用ComboBox,则在修改程序时,不在阅读数据读取部分,只需要修改信息显示等即可。又比如,现在要求您在读取记录时,用进度条显示读取进度等。
*//
{No.4}//常量数组
{在No.2中,实现了如下的内容
procedure TMyForm.RunOperate(ATag:Integer);
begin Case ATag of 1:MyButton.Color:=clRed;
2:MyButton.Color:=clGreen;
3:MyButton.Color:=clBlack;
end;
end;
}
//那么用数组方式实现,则就比较理想了
procedure TMyForm.RunOperate(ATag:Integer);
const MyButtonColorMax:=3;
MyButtonColor:array[1.MyButtonColorMax]of TColor=(clRed,clGreen,clBlack);
be
您可能关注的文档
- “眼球对眼球的权利”——对质权制度比较研究_民法论文_法律论文__5414.doc
- “铁屋子”或“家”的民族寓言——论中国电影的一个原型叙事结构及其变形_电视电影论文_艺术论文__4563.doc
- 《催醒术》——1909年发表的“狂人日记”_现当代文学论文_文学论文__264.doc
- 《春望》五种英译文的比较研究,英语翻译学论文-_3168【论文全集】.doc
- “整理国故运动”与国学研究的学科重建_国学论文_哲学论文__3348.doc
- 侦查程序的正当化是我国法治建设发展的需要,侦查论文-_182【论文大全】.doc
- 从文化视角研究《红楼梦》中委婉语的翻译,英语翻译学论文-_194【论文大全】.doc
- 中国左翼文学、京海派文学及其在当下的意义_现当代文学论文_文学论文__195.doc
- 信息技术与教育相整合的进程,教育管理论文.doc
- 大学语文课程建设的一些建议,语文教育论文-_577【论文大全】.doc
- 2026及未来5年中国电磁铁行业市场发展监测及投资战略咨询报告.docx
- 2026及未来5年中国建筑工程机械行业市场发展监测及投资战略规划报告.docx
- 2026及未来5年中国硫化镍行业市场调研分析及投资战略规划报告.docx
- 2026及未来5年中国烷化剂市场运营态势及发展前景预测报告.docx
- 2026年涤纶细旦长丝项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年弓型虫抗体试剂项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年拖链系统用高柔性数据传输电缆项目可行性研究报告(市场数据调查、监测研究).docx
- 2025年中国水晶圆盘市场调查研究报告.docx
- 2025年中国长网双辊挤浆机市场调查研究报告.docx
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
最近下载
- 储能政策与法规研究.pptx VIP
- 钢筋混凝土框架结构施工组织设计方案.doc VIP
- 以我身份证在银行帮别人贷款协议书8篇.docx VIP
- 钢筋混凝土框架结构施工组织设计方案.docx VIP
- 2025年烟台汽车工程职业学院高职单招数学历年(2016-2024)频考点试题含答案解析.docx
- 第一单元第2课《多样的中国民间美术》教学设计 人美版2025初中美术七年级下册.docx VIP
- 河南省天一大联考英语.doc VIP
- 工程建设-钢筋混凝土框架结构施工组织设计方案.doc VIP
- 2025春初中毕业生学业考试指导书历史教材梳理答案.pdf VIP
- 农业生态学 第一章.ppt VIP
原创力文档

文档评论(0)