Delphi   发布时间:2022-04-10  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了delphi – 如何修复程序循环引用?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是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的调用时,您还没有声明addscreen.

由于您有一个循环引用(addscreen调用mainscreen,反之亦然),您需要使用所谓的前向引用来打破它.在主屏幕之前添加此行

procedure addscreen; forWARD;

所以代码的组织应该如下所示:

procedure addscreen; forWARD;

procedure mainscreen;
begin
  ...
end;

procedure addscreen;
begin
  ...
end;

如果您没有循环引用,那么您可以简单地重新排序过程,以便在主屏幕之前声明添加屏幕.

大佬总结

以上是大佬教程为你收集整理的delphi – 如何修复程序循环引用?全部内容,希望文章能够帮你解决delphi – 如何修复程序循环引用?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。