在一个小程序中,我要从一份INI中载入一些数据,显示在窗口上,如下。procedure TFrmMain.LoadINI;
var
fini:TINIFile
sl:TStrings;
i:Integer;
begin
//
fini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'MYPro.INI'); //载入打印机列表
sl:=TStrings.Create;
sl:=Printer.Printers;
cbCKPrinter.Items.Clear;
cbFPPrinter.Items.Clear;
for I := 0 to sl.Count - 1 do
begin
cb1.Items.Add(sl[i]);
cb2.Items.Add(sl[i]);
end;
sl.Free; //设定默认打印机
cb1.ItemIndex:=fini.ReadInteger('PRINTERSELECT','CKINDEX',0);
cb2.ItemIndex:=fini.ReadInteger('PRINTERSELECT','FPINDEX',0); //
edt1.Text:=fini.ReadString('NO','FPNO','0');
fini.Free;
end;
我把此段代码放在 Form 的 Create 处,结果在关闭窗口时出现错误。
invalid pointer operation按说 sl 我也释放了,fini我也释放了,为什么还出现无效指针操作?
窗口的 Close 事件没写任何东西。
var
fini:TINIFile
sl:TStrings;
i:Integer;
begin
//
fini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'MYPro.INI'); //载入打印机列表
sl:=TStrings.Create;
sl:=Printer.Printers;
cbCKPrinter.Items.Clear;
cbFPPrinter.Items.Clear;
for I := 0 to sl.Count - 1 do
begin
cb1.Items.Add(sl[i]);
cb2.Items.Add(sl[i]);
end;
sl.Free; //设定默认打印机
cb1.ItemIndex:=fini.ReadInteger('PRINTERSELECT','CKINDEX',0);
cb2.ItemIndex:=fini.ReadInteger('PRINTERSELECT','FPINDEX',0); //
edt1.Text:=fini.ReadString('NO','FPNO','0');
fini.Free;
end;
我把此段代码放在 Form 的 Create 处,结果在关闭窗口时出现错误。
invalid pointer operation按说 sl 我也释放了,fini我也释放了,为什么还出现无效指针操作?
窗口的 Close 事件没写任何东西。
解决方案 »
- 请教下Delphi能调用MFC写的导出类吗?
- 如何实现MYSQL环境下去查询或者导入SQL SERVER的数据?
- 关于Left Join返回数据集的问题
- Memo控件的OnMouseDown或OnMouseUp事件中的X,Y值为什么每次点击同一地方时都不同,怎样才能得到准确不变的X,Y值?
- 做过政府审计软件的请帮帮忙,怎么从十来套不同表结构的数据库导数据到一个固定表结构的数据库呢?
- 关于将数据库读入treeview的问题?(up都有分)
- E-R图设计求助
- 大虾请入,关于数据表的问题
- 程序员生活大调查(一)!
- 看了一半OBJECT PASCAL的语言指南PDF,有点感想。
- DBGrid 多表更新问题 混合查询得到的数据集
- ADOQuery1.RecordCount这个返回null时?
sl.Free;