一个极度菜的问题,不要笑我(100分)

  • 主题发起人 主题发起人 sung_001
  • 开始时间 开始时间
S

sung_001

Unregistered / Unconfirmed
GUEST, unregistred user!
我看到一篇文章说面向对象的编程,部分内容如下:
规则11:显示组件属性(Expose Components Properties)
当你需要访问其他窗体的状态时,你不应该直接访问它的组件。因为这样会将其他窗体或其它类的代码和用户界面结合在一起,而用户界面往往是一个应用程序中最容易发生改变的部分。最好的方法是,为你需要访问的组件属性定义一个窗体属性。要实现这一点,可以通过读取组件状态的Get方法和设置组件状态的Set方法实现。
假如你现在需要改变用户界面,用另外一个组件替换现有的组件,那么你只需做的是修改与这个组件属性相关的Get方法和Set方法,而不必查找,修改所有引用这个组件的窗体和类的源码。详细实现方法请参见下面的代码:
private

function GetText:String;
procedure SetText(const Value:String);

public

property Text:String;
read GetText write SetText;

function TformDialog.GetText:String;
begin
Result:=Edit1.Text;
end;

procedure TformDialog.SetText(const Value:String);
begin
Edit1.Text;=Value;
end;
我现在自己做一个桌面数据库的程序,用了datamodule,想把所有的关于数据库的操作都放到datamodule里面来,现在要给这个datamodule增加一个新属性,应该怎么做?
我是超级菜鸟了,别打我.....
 
//声明
TYourDataModule = class(TDataModule)
private
function GetCount: Integer;
procedure SetCount(const Value: Integer);
public
property Count : Integer read GetCount Write SetCount;
end;

//实现
function TYourDataModule.GetCount: Integer;
begin
//这里读DataModule里组件的属性,如
//result := ADOQuery1.RecordCount;
end;

procedure TYourDataModule.SetCount(const Value: Integer);
begin
//这里写属性,如
// -_-## ADOQuery1.RecordCount不能写,反正意思知道就行,不能写就是只读属性
end;
 
同意楼上
 
晕了,总想着property 后面是直接read 一个变量,write一个变量。
脑子进水了.....
 
后退
顶部