首先是login登入窗体登入的时候。。先检查数据库的Sy表是否存在注册码。。如果不存在弹出软件注册的窗口。如果存在。。进行校对。。如果错误。弹出软件注册的窗口。如果对。。那么就可以登入login窗体的代码procedure TFlogin.FormCreate(Sender: TObject);
var
a,b:string;
begin
a:=NBGetAdapterAddress(0); {获得机器码}
with dm.aq_1 do
begin
close;
sql.Clear;
sql.Add('select * from Sy where S_Jname='''+a+'''');
open;
if eof then
begin
fregister:=Tfregister.create(application);
fregister.ShowModal;
Flogin.Hide;
end
else
begin
b:=fieldbyname('S_key').AsString;
if GenRegCode(a)<>b then {这是校对保存的注册码是否和现在的机器码产生的注册码一样}
begin
application.MessageBox('注册码不正确','提示信息');
fregister:=Tfregister.create(application);
fregister.ShowModal;
Flogin.Hide;
end
end;
end;
end;以上貌似可以运行
下面是注册窗体的代码procedure TFregister.SpeedButton2Click(Sender: TObject);
begin
Fregister2.Show;
Fregister.close;
end;
就是这里。。当按这个按钮的时候。。就出错。。
access violation at address 00459F92 in module 'shop.exe'.read of address 000002f4delphi所指向错误的地方确实login窗体的Flogin.Hide; 说明下:我数据库是空的
var
a,b:string;
begin
a:=NBGetAdapterAddress(0); {获得机器码}
with dm.aq_1 do
begin
close;
sql.Clear;
sql.Add('select * from Sy where S_Jname='''+a+'''');
open;
if eof then
begin
fregister:=Tfregister.create(application);
fregister.ShowModal;
Flogin.Hide;
end
else
begin
b:=fieldbyname('S_key').AsString;
if GenRegCode(a)<>b then {这是校对保存的注册码是否和现在的机器码产生的注册码一样}
begin
application.MessageBox('注册码不正确','提示信息');
fregister:=Tfregister.create(application);
fregister.ShowModal;
Flogin.Hide;
end
end;
end;
end;以上貌似可以运行
下面是注册窗体的代码procedure TFregister.SpeedButton2Click(Sender: TObject);
begin
Fregister2.Show;
Fregister.close;
end;
就是这里。。当按这个按钮的时候。。就出错。。
access violation at address 00459F92 in module 'shop.exe'.read of address 000002f4delphi所指向错误的地方确实login窗体的Flogin.Hide; 说明下:我数据库是空的
现在改成
procedure TFregister.SpeedButton2Click(Sender: TObject);
begin
Fregister2:=Tfregister2.create(application);
Fregister2.ShowModal;
Fregister.Close;
end;又出现一个新的问题。。就是Fregister窗体不关闭。。而且当弹出新的窗体关闭后。。无法对这个窗口就像操作。。
begin
Fregister2:=Tfregister2.create(Self);
Fregister2.ShowModal;
Fregister2.free;
end;
你的SPEEDBUTTON,是显示注册窗口,
你在什么情况下你点击Speedbutton的?