我有两种形式,称为 fmMain 和 fmEmpl。两者的每个 TStatusBar 都称为 sbMain 和 sbEmpl。我有一个名为 dmData 的 TDataModule 来存储数据库组件。
我需要更新 sbEmpl 面板,以便在突出显示单元格网格时显示数据库中的实际值。我一直在尝试使用 TClientDataSet 的 OnAfterScroll 处理程序来处理此事件,但它仅适用于 fmMain,而不适用于 fmEmpl。如果我尝试更新 sbEmpl 面板,它总是会引发错误消息。这是消息:
Access violation at address 00405337 in module 'SpeZet.exe'. Read of address 0000038C.
然而,我在 dmData 上包含了两个标题 (.h)。
这里的 TStatusBar 出了什么问题?
任何的想法?
提前非常感谢。
编辑:好的,这是代码:
void __fastcall TdmData::cdsEmplAfterScroll(TDataSet *DataSet)
{
vEmpl = "Name = " +
dmData->cdsEmpl->FieldByName("Name")->AsString +
" | idEmployee = " +
dmData->cdsEmpl->FieldByName("idEmployee")->AsInteger +
" | idJob = " +
dmData->cdsEmpl->FieldByName("idJob")->AsInteger;
fmMain->sbMain->SimplePanel = true;
fmMain->sbMain->SimpleText = vEmpl;
fmEmpl->sbEmpl->SimplePanel = true;
fmEmpl->sbEmpl->SimpleText = vEmpl;
}
“访问冲突”消息在以下行引发:
fmEmpl->sbEmpl->SimplePanel = true;
fmEmpl->sbEmpl->SimpleText = vEmpl;