2017-06-08 3 views
-2

J'ai un code très simple, mais je n'arrive pas à le comprendre. J'appelle une procédure qui (espérons-le) quittera le processus. Mais il ne fait pas exactement cela:Sortie d'une procédure

procedure quit; 
begin 
    exit; 
end; 

Et voici où je l'appeler:

If (Ch2 = #13) and (Bar2 = 5) and (Five) Then Quit;

Bar2 est essentiellement une variable d'octets qui contient un tableau avec des éléments différents, comme "display" , "help", "next" et "prev", et bien sûr, quit, qui ont tous leur propre code en fonction de ce qu'ils font. Ch2 est une variable pour ReadKey qui prend diverses pressions de touches, puis lui permet de faire tout ce qui est défini pour cette commande spécifique. Dans ce cas, il faut que la clé de retour soit utilisée. Five est un opérateur booléen et existe en tant que prérequis pour exécuter la commande quit. Je suppose que ce n'est pas vraiment nécessaire. Par ailleurs, si cela peut vous aider, il s'agit d'une unité et non d'un programme autonome. Quelqu'un sait-il pourquoi cette commande exit ne fonctionne pas?

J'espère que ce post est assez verbeux.

Merci.

+0

Votre description est plutôt imprécise. Les valeurs d'octets ne peuvent pas contenir de tableaux, ils peuvent au plus contenir un index dans un tableau. Votre variable Five * peut être ou ne pas être nécessaire *? Tu ne sais pas? Vous dites que c'est une unité, pas un programme autonome, alors ce que vous appelez un «processus» n'en est probablement pas un. S'il vous plaît travaillez sur votre terminologie, afin que les gens puissent réellement comprendre ce que vous faites vraiment. Et donnez plus de code. –

Répondre

2

L'instruction exit quitte la fonction ou la procédure dans laquelle elle se trouve. Il renvoie ensuite l'exécution à la fonction ou à la procédure d'appel.

Pour mettre fin au processus, utilisez halt.

+0

Ouais, j'ai essayé d'arrêter. Il quitte l'ensemble du programme, et pas seulement le processus. – user2411434

+0

Le processus et le programme sont la même chose. Si vous n'êtes pas d'accord, vous devez clarifier la distinction que vous faites. –

+0

Le programme principal est un BBS, qui est le parent du processus que j'essaie de quitter. Quand j'utilise 'halt', il quitte tout le BBS. L'unité dont je parle est le processus de l'enfant. Je devrais clarifier cela dans mon post original. 'Halt' terminera le processus dans lequel il est exécuté. – user2411434