我一直在学习德尔福在过去3年,在业余爱好/职业水平。我很高兴地说,我现在已经进展到可以用恐惧和尴尬回顾我的早期代码。所以我现在正在浏览一些早期的应用程序并重写/重构它们。在Delphi中使用框架来进行GUI信息隐藏
我想摆脱的一个坏习惯是从另一个单元访问一个表单上的组件。为了强制执行此操作,我一直在尝试使用帧作为信息隐藏方法。因此,与其具有上组件的形式,我创建一个框架来容纳所有形式的组件,然后把该框架的形式,移动框架宣言到私人声明,
type
TMyForm = class(TForm)
private
MyFrame: TMyFrame;
procedure SetTimeDate(const Value: TMyItem);
function ReadTimeDate:TMyItem ;
然后登记帧的形式初始化部
initialization
begin
RegisterClasses([TMyFrame])
我声明然后我需要在表格单元,它具有访问帧和它的部件的公共部分的属性。
public
property TimeDate: TOverlayItem read ReadTimeDate write SetTimeDate;
我也使用帧来合并经常重复的组件组。
这似乎适用于我想要的目的(隐藏Myframe及其组件),但其他人是否有任何此方法的经验?
使用框架有什么缺点吗? 我真的从这样做中获益吗? 在帧内使用嵌套帧有什么问题吗? 有没有任何良好的做法指导在Delphi中使用框架? 对于隐藏在Delphi中的GUI信息,是否有更好/更简单的方法来达到同样的效果?
HMcG
你需要什么RegisterClasses([TMyFrame])? – 2009-07-23 13:59:54
因为我在移动 MyFrame:TMyFrame; 进入专用部分,如果我没有注册TMyframe,则会发生异常,说明'TMyFrame找不到'。 – HMcG 2009-07-24 23:03:23
您应该专注于如何减少设计中的耦合,以便最终无论您是否使用框架都无关紧要。我发现以下文章非常具有启发性:http://www.objectmentor.com/resources/articles/TheHumbleDialogBox.pdf – mghie 2009-07-26 14:24:24