저는 델파이 프로그래밍 장면에서 새로운데, 제 콘솔 애플리케이션의 프로 시저에서 프로 시저를 호출하는 데 어려움이 있습니다.절차 순환 참조를 수정하는 방법?
내 간단한 응용 프로그램은 Windows의 텔넷 서버를 통해 실행되는 항목 인벤토리를위한 것입니다. 저는 리눅스와 텔넷 클라이언트를 실행하는 씬 클라이언트로 오래된 씽크 패드를 사용하고 있습니다.
Delphi XE를 사용하여 닭고기 또는 달걀에 부딪혔습니다.
선언되지 않은 식별자가 추가되었습니다 ... 선언되었지만 주 화면 아래에 있습니다! 메인 스크린 위에 addscreen 프로 시저를 추가하면, addscreen 프로 시저의 메인 스크린 호출이 선언되지 않은 identifier 메인 스크린에 오류가됩니다!
간단히 말해서, 프로그램에서 어디에서나 전화를 걸 수있는 절차를 만드는 방법은 무엇입니까?
인터페이스 및 구현을 시도했지만 콘솔 응용 프로그램에서 유효하지 않습니다!
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.
대단히 감사합니다.
'주 화면'코드를 '주'프로그램으로 옮기고 더 많은 문장을 '반복'루프로 옮기는 것이 좋습니다. –