delphi编程中的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi编程中的问题相关的知识,希望对你有一定的参考价值。

我使用MainMenu做一个连接到其他form的操作,
procedure TForm2.N2Click(Sender: TObject);
begin
byq.ShowModal;
end;
然后在delphi 7中运行,就出现如下错误:
工程Project1。exe检测到错误类 EAccessViolation 错误信号:“Access Violation at 阿斗dress 0048A9D7 in module;"Project1.exe
"Read of address 00000000',进度中止,使用单步或运行继续运行。
我也不知道哪里有问题。请教各位高手!!!

参考技术A 我认为你在调用byq之前曾经将byq释放掉了,比如曾经用到
Form2.show;
byq.free;
这组语句,那么你再用byq.showmodal肯定会报这个错误,此时应该参照上面的说法用动态创建的方法
如果我猜对了,那么考虑到你的操作可能会反复打开同一个窗体,造成窗体被锁死的情况,我建议将代码写成:
procedure TForm2.N2Click(Sender: TObject);
begin
byq:=byq.Create(Application);
try
form2.close;
byq.ShowModal;
except
byq.Free;
end;
end;

fkqgyyiqpl你是否看清楚了楼主的错误,在没有创建过对象的情况下怎么可能会出现Read of address 00000000这样的错误提示,楼主只是给出了他调用对象时出现的错误,并非没有创建过
参考技术B 如果 byq窗口不是自动创建的话,须要你再这里手动创建,并且在项目的选项中,去掉byq窗口的自动创建。

以下这是本人商用软件调用Formsdl1_4窗体的一小小部分

implementation //在实现部分中 uses要使用的单元

uses
dmpas,//本地数据模块
sdlps, //密码
regobj,//运行次数
sdlps_set,//权限设置
sdlform1_1, //成本分类信息
sdlform1_2, //客户分类信息
sdlform1_3, //团队分类信息
sdlform1_4, //线路分类信息
...
PersonClientConsumeDisplay;//客户的消费信息的详细


以下是单击菜单项--线路分类信息,而用模态调用窗体Formsdl1_4,
关闭窗体后,释放窗体变量Formsdl1_4。

procedure TFrmMain.N1_4Click(Sender: TObject);
begin
Formsdl1_4:=TFormsdl1_4.Create(Application);
Formsdl1_4.ShowModal;
Formsdl1_4.Free;
end;

如果还有错误的话,清检查以下byq窗体,尤其是它的formcreate函数和FormActivate函数。

参考资料:个人商品软件--旅游信息管理(已经运行2年了)

参考技术C byq窗口如果不是自动创建的话,须要你再这里手动创建。

或者就是byq窗口的formcreate函数错误
参考技术D 楼上的,都没有创建何来释放?
就只要在byq.ShowModal;前加一行代码就行了。如下:
byq:=Tbyq.create(Self);本回答被提问者采纳

以上是关于delphi编程中的问题的主要内容,如果未能解决你的问题,请参考以下文章

delphi与彩票编程的问题 有追加分!!!!!!!!!

Delphi 与SQL编程

Delphi 编程技巧常见实例问答

delphi编程

delphi中如何编程获取其它程序窗口的大小?

delphi 编程