MDI窗体报错!

zoao 2000-03-03 11:06:00
产生MDIChild窗体报错!

我在代码页中输入以下
UseForm:=TUseForm.create(self);
运行时报错:
'List index out of bound(0)'

UseForm窗体在Available栏内。
...全文
194 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jll 2000-03-07
  • 打赏
  • 举报
回复
建议单步跟踪程序以确定问题所在,MDI本身应该没有什么问题
bubble 2000-03-07
  • 打赏
  • 举报
回复
在生成MDIChild子窗体前应判断此窗体是否存在,我一直这样做,从未出现过问题。
下面是程序的代码:
{MDIMainForm是主窗体;IMRegisterForm是子窗体}

if MDIMainForm.MDIChildCount=0 then
begin
ChildIndex:=0;
while (ChildIndex<MDIMainForm.MDIChildCount) and
(MDIMainForm.MDIChildren[ChildIndex].Name<>IMRegisterForm.Name) do
Inc(ChildIndex);
if ChildIndex = MDIMainForm.MDIChildCount then
{create new child here}
begin
Application.CreateForm(TIMRegisterForm,IMRegisterForm);
end
else
{child form already exists so just bring it to the top}
MDIMainForm.MDIChildren[ChildIndex].BringToFront;
supershan 2000-03-07
  • 打赏
  • 举报
回复
请贴出原码
huiwsey 2000-03-04
  • 打赏
  • 举报
回复
I agree with Lin, I meeted this problem too. NOT MDI , check other code.
渤海海峡 2000-03-03
  • 打赏
  • 举报
回复
也许问题在useform.oncreate中?
Lin 2000-03-03
  • 打赏
  • 举报
回复
这种问题我也遇到过,不会是MDI的问题.极可能是其他数组变量或属性(如Items, Lines等)没初始化又引用引起的.
sess 2000-03-03
  • 打赏
  • 举报
回复
MDI本身有缺陷
l2000 2000-03-03
  • 打赏
  • 举报
回复
MDI的子窗体创建,是可以这样的,至于List index out of bound(0)'的问题和
UseForm:=TUseForm.create(self);无关。问题应该出在StringGrid之类的控件中。
Field的长度与实际的字符串长度不符导致的。
AcherMagic 2000-03-03
  • 打赏
  • 举报
回复
yjq说的有道理,你可能在Formcreate里操作
memo的lines或者其他造成数组越界

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧