请教一个关于ntdll.dll超难的问题
我这几天重装了一下电脑的操作系统win2000,也把DELPHI7重装,包括一些控件。然后重新编译以前写的程序,问题就出现了:
我在一个界面用AdvStringGrid,代码如下
procedure Tw_f_grscqk_cx.AdvStringGrid1GetEditorType(Sender: TObject; ACol,
ARow: Integer; var AEditor: TEditorType);
begin
case ACol of
0:AEditor := edComboList;
1:AEditor := edComboList;
end;
if (acol=0) then
begin
AdvStringGrid1.Combobox.Clear;
AdvStringGrid1.AddComboString('并且');
AdvStringGrid1.AddComboString('或者');
end;
if acol=1 then
begin
AdvStringGrid1.Combobox.Clear;
AdvStringGrid1.AddComboString('生产批号');
AdvStringGrid1.AddComboString('产品代码');
AdvStringGrid1.AddComboString('产品型号');
AdvStringGrid1.AddComboString('工序拼音');
AdvStringGrid1.AddComboString('员工卡号');
AdvStringGrid1.AddComboString('员工姓名');
AdvStringGrid1.AddComboString('机台代码');
AdvStringGrid1.AddComboString('薄膜批号');
AdvStringGrid1.AddComboString('日期');
end;
end;
但在程序执行的时候,当你点击AdvStringGrid的某个单元格就出现:EAccessViolation with message'Access violation at address 77f99f58 in module 'ntdll.dll '.Write of address 00404bad ' .在没有重新装系统之前,这个界面是没有任何问题的。
我如果把程序改成
procedure Tw_f_grscqk_cx.AdvStringGrid1GetEditorType(Sender: TObject; ACol,
ARow: Integer; var AEditor: TEditorType);
begin
case ACol of
0:AEditor := edComboList;
1:AEditor := edComboList;
end;
if (acol=0) then
begin
AdvStringGrid1.Combobox.Clear;
AdvStringGrid1.AddComboString('并且');
AdvStringGrid1.AddComboString('或者');
end;
end;
就没有什么问题,请问这个问题要怎么处理?我有试着从其他地方拷了一个ntdll.dll覆盖到C:\WINNT\system32和C:\WINNT\ServicePackFiles\i386中,但还是不能用。谢谢了!