首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

关于变量的创建顺序和有效域的有关问题

2012-03-05 
关于变量的创建顺序和有效域的问题程序概况:主窗体,有数据显示控件数据模块(DataModule)维护数据库连接(AD

关于变量的创建顺序和有效域的问题
程序概况:
主窗体,有数据显示控件
数据模块(DataModule)维护数据库连接(ADO)。
数据库文件(Access.MDB)

为了程序可以支持拷贝后即可运行,因此ADO的连接字符串是根据当前路径生成的。
同时,要求主窗体在创建后即可以使用数据库连接。

但是:取得当前路径一般使用Application.ExtractFilePath(),
且:Application对象似乎只有在窗体对象中才有效。无窗体的模块和DataModule中都不能使用。
即:当前路径必须要从DataModule外部传入才行。

问题是:
为了让主窗体在显示时就可以使用数据,因此DataModule必须先创建
为了让DataModule可以取得当前路径,因此必须在DataModule前创建其他窗体,以访问Application对象
似乎是个先有鸡还是先有蛋的问题。

请问有没有方法不需要创建额外的隐藏窗体取得当前路径?

[解决办法]
在工程文件中去取
[解决办法]
ExtractFilePath应该是取的该可执行文件的路径
[解决办法]
Application对象是在Forms单元中定义,并在单元的initialization部分初始化的
工程文件中就引用了Forms单元,所以它肯定会在你的DataModule初始化之前创建
在DataModule中要引用Application对象,只要引用Forms单元就可以了
[解决办法]
漏了
Application对象是在Forms单元中定义,并在单元的initialization部分初始化的
>>
Application对象是在Forms单元中定义,并在Controls单元的initialization部分初始化的
[解决办法]
uses forms;就可以了
[解决办法]
getcurrentdir 也可取当前路径, use SysUtils

热点排行