我有两个类
TWaVeMSG=class
...
WellID:string;
public
procedure OpearteMSg();
...
end;TWellInfo
...
public
WellID
Tablename:string
end;这两个类有聚合类,如
TWellinfoList 假如在TWAVEMSG类的
OpearteMSg();中使用Twellinfolist 中类的某个Twellinfo对象的 Tablename 根据WELLID去对应问题是,这几个都是在另一个模块中定义具体的对象的,根据数据库去生成这些对象,
那么,在定义OpearteMSg();这个TWELLINFO对象并没有定义,我如何解决这个问题,如果采用这样的方式OpearteMSg(AWellinfo:Twellinfo); 把这个对象做为一个参数引用,也可以解决,但还有更好的方法吗
TWaVeMSG=class
...
WellID:string;
public
procedure OpearteMSg();
...
end;TWellInfo
...
public
WellID
Tablename:string
end;这两个类有聚合类,如
TWellinfoList 假如在TWAVEMSG类的
OpearteMSg();中使用Twellinfolist 中类的某个Twellinfo对象的 Tablename 根据WELLID去对应问题是,这几个都是在另一个模块中定义具体的对象的,根据数据库去生成这些对象,
那么,在定义OpearteMSg();这个TWELLINFO对象并没有定义,我如何解决这个问题,如果采用这样的方式OpearteMSg(AWellinfo:Twellinfo); 把这个对象做为一个参数引用,也可以解决,但还有更好的方法吗
解决方案 »
- delphi执行文件改名问题
- windows与linux使用socket通信的问题
- 如何在一个容器(如:panel)内动态添加一个动态对象(如:button_x)?
- 关于回调的机制。。。请各位大哥帮忙。
- 请教一个超菜的问题!
- 请问一下关于delphi数据库开发的问题
- 两个程序之间的数据通讯编程
- 我想做一个远程关机的软件,大家进来帮帮我了,多谢了
- 有谁知道在哪有Delphi 6的联机帮助下载(中文的)?
- 怎样取得DBGrid上某个节点的值呢?比如,第三行,第4列的。我不想移动游标,能不能直接取DBGrid上的值?
- delphi连接access数据库,制作报表怎么连接?
- delphi7 中有没有生成PDF文件的组件
根据自已的WELLID,调用程序中的Twellinfolist 对象的方法(例如是INDEXOF()),找到对应的TWELLINFO 对象
然后,调用TWELLINFO 对象的方法,如果象我上面的解决方案,
要在主程序中,先找到这个TWELLINFO的对象
然后将对象作为OpearteMSg(); 中的参数,
“有没有办法这样实现:OpearteMSg(); 中
根据自已的WELLID,调用程序中的Twellinfolist 对象的方法(例如是INDEXOF()),找到对应的TWELLINFO 对象
然后,调用TWELLINFO 对象的方法”
上面的方法是可以的,Twellinfolist 里定义几个方法能够通过WELLID来找到TWELLINFO对象就可以。
但是在TWaVeMSG.OpearteMSg(); 的定义中,如何去找这个TWellinfolist 对象呢,因为在定义的时候,Twellinfolist这个类是定义了,但是还没有对象啊
1. 想想每个类的职责是什么,之间怎么交互
2. 看看《Applying UML & Patterns》和《PEAA》
重载一个Create()方法;
比如:
Twellinfo.Create(_ID:integer);override;
begin
inhertied create;
//然后从数据库创建对象;
SqlText := Format('select aid,aname from A where aid=%d',[_ID]);
with qry do
begin
close;
sql.clear;
sql.add(SqlText);
open;
if not isEmpty then
begin
id := _ID;
TableName := FieldByName('TableName').AsString;
...
end;end;//当你到达需要处理这个变量时;
可以定义一个实例;
Var
wellinfo:Twellinfo;
begin
WeelInfo := TWellInfo.create(id);
....
wellinfo.Free;
end;如果你能将代码贴出来就最好了。以上仅供参考!
但是在TWaVeMSG.OpearteMSg(); 的定义中,如何去找这个TWellinfolist 对象呢,因为在定义的时候,Twellinfolist这个类是定义了,但是还没有对象啊始终,你需要传递一个变量过去的,无论是Twellinfolist 还是 TWEELINFO
当然可以做成全局的对象,看实际情况了
而我还没有开始定义这些对象,只是定义了相关的类,我原来想这么设计,在程序中先定义一个全局对象TLIST,存储指针,和类名
那么在创建每个对象时,都把自已的类名和指针写到这个LIST当中
这样,在类中,要用其它类的对象时,就不用考虑这个对象是否存在,而是直接去这个TLIST中去查找指针,根据指针找到已有的对象,再根据匹配的方式,确定具体引用的对象,
这样写类的时候,就不用考虑具体的对象这样的细节了但是这样我觉得还是不彻底,因为还是用了一个全局对象,TLIST
这样,如果我把这些类封装之后,给其它人的程序用,就不太方便,所以,我想应当有更好的机制实现这个问题,