读书人

FormCreate和FormShow事有关问题

发布时间: 2013-01-05 15:20:40 作者: rapoo

FormCreate和FormShow事问题
启动窗体时经常要加载sql语句或存储过程后显示在窗体grid表格里

放在FormCreate里有时加载不成功,
譬如下面的代码放在FormCreate里就不行,放在FormShow里就没问题。

   with ADOStoredProc1 do
begin
Close;
Parameters.ParamByName('@ddlb').Value := 1;
Parameters.ParamByName('@hl').Value := 6.301;
Parameters.ParamByName('@DyStartDate').Value := '2012-9-1';
Parameters.ParamByName('@DyEndDate').Value := '2012-9-30';
prepared := true;
ExecProc;
Open;
end;

请问应该放在FormCreate里还是放在FormShow里?
[解决办法]
FormCreate比FormShow早执行,不成功的原因可能是一些需要用到的对象或属性还没准备好。
[解决办法]
放在FormCreate里面时是不是报错了?提示什么错误?
将你创建这个窗口的代码贴出来,可能是ADOStoredProc1有些参数是在Create后初始化,所以在FormCreate里面执行SQL时报错。
[解决办法]
with?ADOStoredProc1?do这里有了个WITH DO 结构,在里面直接写TAG则成了ADOStoredProc1.tag了。
初学时我常犯这个错误。
Self表示本类。所以没问题。

读书人网 >.NET

热点推荐