Project Businessware.exe引发了一个异常类EGridPanelException,消息“无法删除包含控件的列”
每当我尝试执行程序时,我总是收到此错误,然后显示选项按钮,例如“Break”,“Continue”和“Help”,我之前已经遇到此错误,我选择的解决方案是删除由受影响的组件包含的ExplicitWidth和ExplicitHeight,我还删除了在GridPanel1下声明的ColumnCollection,一切都变得正常,但现在它再次显示,我之前应用的解决方案不再有效。你还有其他解决方案吗?为什么我在.pas和.dfm文件中没有更新时会出现这个错误?
其他信息是当我点击“Break”时,它指出了这个方法:
procedure TColumnCollection.Notify(Item: TCollectionItem; Action: System.Classes.TCollectionNotification);
begin
inherited;
if (Action = System.Classes.TCollectionNotification.cnExtracting)
and not (csDestroying in Owner.ComponentState) and
not (csUpdating in Owner.ComponentState) then
if not Owner.IsColumnEmpty(Item.Index) then
raise EGridPanelException.Create(sCannotDeleteColumn)
else
Owner.UpdateControlsColumn(Item.Index);
end;
任何帮助将不胜感激。感谢
答案 0 :(得分:0)
你的代码试图删除一个非空的网格面板的列(这就是消息所说的内容)。为了找出错误的来源,点击break(在异常对话框中)并注意你的调用堆栈并尝试找到调用堆栈中指向你的代码的第一行,它应该显示这样的东西(抱歉,但我不允许发布图片):
:7599821fKERNELBASE.RaiseException + 0x54
Vcl.ExtCtrl.TColumnCollection.Notify(???,???)
...some more system lines lines here
MyUnit.MyForm.Button1Click($F73660) <--- the problem lies in here
HTH