大家都知道,在一般的数据库程序里都要用到数据模块,而且通常的做法是,
将DM(数据模块名)放到Option的Forms选项里左边的Auto-create forms列表里的最顶端,
但这样的结果是,所有子窗口调用的DM都是同一个实例,而我的程序是采用MDI窗口技术的,
可以允许同时打开多个子窗口,如果有用户同时打开多个子窗口,并且这几个子窗口
都调用DM里的相同数据控件来做不同的查询操作时,程序就会提示出错(因为同一个数据控件要
被几个不同的子窗口调用来做不同的查询操作,当然会报错)。    我在C++Builder里是这样解决的,我可以将DM放在右边的Available forms列表里,
通过命令来动态生成不同的实例,比如在每一个子窗口的头文件里加入如下一行代码:
        Tdm *DM;然后在子窗口的OnCreate事件里调用如下命令来动态生成新的实例:
    DM = new Tdm(this);
    //此DM仅仅属于此子窗口,跟其它子窗口没有冲突。在OnClose事件里写入如下命令来删除实例:
    delete DM;
    Action = caFree;像C++Builder的这种做法,在Delphi里应该怎么实现呢?