MDI窗体报错!
产生MDIChild窗体报错!
我在代码页中输入以下
UseForm:=TUseForm.create(self);
运行时报错:
'List index out of bound(0)'
UseForm窗体在Available栏内。
问题点数:50、回复次数:9Top
1 楼yjq(渤海海峡)回复于 2000-03-03 11:33:00 得分 0
也许问题在useform.oncreate中?Top
2 楼AcherMagic()回复于 2000-03-03 13:26:00 得分 5
yjq说的有道理,你可能在Formcreate里操作
memo的lines或者其他造成数组越界Top
3 楼l2000()回复于 2000-03-03 14:33:00 得分 10
MDI的子窗体创建,是可以这样的,至于List index out of bound(0)'的问题和
UseForm:=TUseForm.create(self);无关。问题应该出在StringGrid之类的控件中。
Field的长度与实际的字符串长度不符导致的。Top
4 楼sess()回复于 2000-03-03 17:39:00 得分 0
MDI本身有缺陷Top
5 楼Lin(林)回复于 2000-03-03 18:58:00 得分 20
这种问题我也遇到过,不会是MDI的问题.极可能是其他数组变量或属性(如Items, Lines等)没初始化又引用引起的.Top
6 楼huiwsey()回复于 2000-03-04 01:12:00 得分 5
I agree with Lin, I meeted this problem too. NOT MDI , check other code.Top
7 楼bubble()回复于 2000-03-07 11:40:00 得分 10
在生成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;Top
8 楼jll(你快乐,所以我快乐)回复于 2000-03-07 12:12:00 得分 0
建议单步跟踪程序以确定问题所在,MDI本身应该没有什么问题Top
9 楼supershan()回复于 2000-03-07 13:00:00 得分 0
请贴出原码Top




