關閉窗口會報錯,誰能知道怎麽回事?
錯誤提示:
Project Project1.exe raise exception class EinvalidPointer with message ‘Invalid pointer operation’.Process Stopped. Use Step or Run to continue
是不是什麽變量沒釋放乾淨啊?
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, PDJButton, StdCtrls, Inifiles;
type
TForm1 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Image1: TImage;
Label1: TLabel;
Edit1: TEdit;
PDJButton1: TPDJButton;
procedure FormCreate(Sender: TObject);
procedure PDJButton1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
sPwd:string;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var fini:tinifile;
begin
fini:=Tinifile.Create(extractfilepath(paramstr(0))+'\inf.ini');
sPwd:=fini.ReadString('pwd','pwd','@$#$#@#$%$^^%&^**^#$');
spwd:=pwdconvert(spwd,455);
end;
procedure TForm1.PDJButton1Click(Sender: TObject);
begin
if edit1.Text='' then
begin
showmessage('請輸入密碼');
end;
if edit1.Text<>spwd then
begin
showmessage('密碼不正確');
end;
if edit1.Text=spwd then form2.ShowModal;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;
end.
问题点数:20、回复次数:7Top
1 楼qxy19980231(项羽)回复于 2006-07-03 12:22:44 得分 0
自己UP,是不是我说的不太清楚,就是这个FOEM1在关闭的时候就会报上面的错。Top
2 楼wudi_1982(向伴水学习|胃出血,住院中)回复于 2006-07-03 12:28:35 得分 20
代码好像没啥问题,把你的PDJButton换成普通的BUTTON试试。Top
3 楼qxy19980231(项羽)回复于 2006-07-03 12:34:39 得分 0
换了还是抱错...一样的错误...晕啊。Top
4 楼wudi_1982(向伴水学习|胃出血,住院中)回复于 2006-07-03 12:37:21 得分 0
加上试试
procedure TForm1.FormCreate(Sender: TObject);
var fini:tinifile;
begin
fini:=Tinifile.Create(extractfilepath(paramstr(0))+'\inf.ini');
try
sPwd:=fini.ReadString('pwd','pwd','@$#$#@#$%$^^%&^**^#$');
spwd:=pwdconvert(spwd,455);
finally
fini.free;
end;
end;Top
5 楼qxy19980231(项羽)回复于 2006-07-03 12:52:30 得分 0
这样也还是抱错,但是我把这段读INI文件全给取消掉之后就不抱错了,问题果然在这。不知道还有什么方法...Top
6 楼qxy19980231(项羽)回复于 2006-07-03 12:59:49 得分 0
奇怪,我把代码改为下面这样就不错了,无敌能告诉我为什么吗?
procedure TForm1.FormCreate(Sender: TObject);
var fini:tinifile;
begin
try
fini:=Tinifile.Create(extractfilepath(paramstr(0))+'\inf.ini');
sPwd:=fini.ReadString('pwd','pwd','@$#$#@#$%$^^%&^**^#$');
spwd:=pwdconvert(spwd,455);
except
fini.Free;
end;
fini.Free;
end;Top
7 楼qxy19980231(项羽)回复于 2006-07-03 13:02:20 得分 0
再去尝试你的代码也可以
procedure TForm1.FormCreate(Sender: TObject);
var fini:tinifile;
begin
fini:=Tinifile.Create(extractfilepath(paramstr(0))+'\inf.ini');
try
sPwd:=fini.ReadString('pwd','pwd','@$#$#@#$%$^^%&^**^#$');
spwd:=pwdconvert(spwd,455);
finally
fini.free;
end;
end;
效果一样,晕,怎么这么奇怪啊。Top




