大佬教程收集整理的这篇文章主要介绍了delphi – 如何修复程序循环引用?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的简单应用程序是通过Windows上的telnet服务器运行的项目库存.
我使用旧的thinkpad作为我的瘦客户端运行linux和telnet客户端.
使用Delphi XE我遇到了鸡肉或鸡蛋的情况.
我得到了addscreen未声明的标识符…它被声明但是在主屏幕下!
如果我把addscreen程序放在主屏幕上,那么在addscreen程序中对mainscreen的任何调用都会让我误认为是unclared标识主屏幕!
简单来说,如何让程序在程序中到处调用?
我已经尝试过接口和实现,但它在控制台应用程序中无效!
program Project1; {$APPTYPE CONSOLE} uses SysUtils,windows,messages,Console in 'Console.pas'; procedure mainscreen; var choice: String; begin clrscr; writeln(' ------------------------------------------------------------------------------------------------------------------------------'); writeln(' | Inventory Management 0.1 ALPHA |'); writeln(' ------------------------------------------------------------------------------------------------------------------------------'); writeln(''); writeln(''); writeln(''); writeln(''); writeln(''); writeln(' Make a choice: Add(a),Remove(r),Edit(E),BACkup Database(bd),Mass Add(ma),Mass Remove(mr)'); writeln('?:'); readln(choicE); if choice = 'a' then addscreen else mainscreen; end; procedure addscreen; var choice: String; begin clrscr; writeln(' ------------------------------------------------------------------------------------------------------------------------------'); writeln(' | Add an Item |'); writeln(' ------------------------------------------------------------------------------------------------------------------------------'); writeln(''); writeln(''); writeln(''); writeln(' Not yet ready!'); writeln(' Press any key to return to the main menu...'); readln(choicE); mainscreen; end; begin mainscreen; textBACkground(black); textcolor(lightgray); ExitProcess(0); end.
非常感谢你!
由于您有一个循环引用(addscreen调用mainscreen,反之亦然),您需要使用所谓的前向引用来打破它.在主屏幕之前添加此行
procedure addscreen; forWARD;
所以代码的组织应该如下所示:
procedure addscreen; forWARD; procedure mainscreen; begin ... end; procedure addscreen; begin ... end;
如果您没有循环引用,那么您可以简单地重新排序过程,以便在主屏幕之前声明添加屏幕.
以上是大佬教程为你收集整理的delphi – 如何修复程序循环引用?全部内容,希望文章能够帮你解决delphi – 如何修复程序循环引用?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。