私はDelphiのプログラミングシーンでは新しく、コンソールアプリケーションのプロシージャでプロシージャを呼び出すのに問題があります。プロシージャ循環参照を修正するには?
私の単純なアプリケーションは、Windows上のTelnetサーバーを介して実行されるアイテムインベントリ用です。 私はLinuxとtelnetクライアントを実行しているシンクライアントとして古いThinkPadを使用しています。
私はDelphi XEを使用して、鶏肉や卵の状況に遭遇しました。
私は、宣言されていない追加の識別子を取得します...それは宣言されているがメインスクリーンの下にあります! メインスクリーン上にaddscreenプロシージャを置くと、addscreenプロシージャのmainscreenを呼び出すと、宣言されていないインデント化メイン画面がエラーになります!
簡単な言い方をすれば、プログラム内のどこでも呼び出すためのプロシージャを作る方法は?
インターフェイスと実装を試しましたが、コンソールアプリケーションプログラムでは無効です。
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.
ありがとうございました!
'mainscreen'コードを 'main'プログラムに移動し、さらに多くのステートメントを 'repeat'ループに移動する方がよいでしょう。 –