我这几天重装了一下电脑的操作系统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中,但还是不能用。谢谢了!
我在一个界面用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中,但还是不能用。谢谢了!
解决方案 »
- 关于Dbgrid显示数据很慢的问题!!!大讨论
- FastReport导成Excel的问题!
- 商场POS机系统的打印出来的那些小票,那么小,怎么做的?用什么纸张?什么打印机?什么报表设计?
- 用QREPORT做报表,一个字段内容太多,一格放不下,要换行怎么办啊?再线等!马上给分
- ado如何连接access?
- 在ReportBuilder中用ClientDataset作数据集,出现Cannot generate report,是何原因?
- 大家帮忙看看:错误在哪儿??
- 女朋友不当老师了,搞销售,我想写封信劝劝她,帮我提点意见好吗
- 怎么实现把界面的某部分抓成图片
- 怎么 让我的SpeedButton里caption字直着显示, 在线
- Fastreport 中强制换页怎么设置呀?谢谢了
- 三级跳的困惑
安装windows补丁和delphi补丁看看。
TO kl2000() :请问要怎样删除控件啊?呵呵
to yyfhz(火山) :是随便点就报错了,没有经过一定的步骤才会报错。这个程序没有外接数据库。
对于一个字符串不正确的访问同样会出现这个问题的,楼主好好看看代码吧。