Alexey Veselovsky писал(а):
Эмм.. Это как? Т.е. я могу не импортируя никаких модулей написать в коде ту самую MyModule.Cmd и оно само попробует найти нужный модуль и вызвать эту процедуру?
Например, в ББ, чтобы выполнить процедуру Test из модуля TestCall нужно в коде написать вызов процедуры: Dialog.Call("TestCall.Test", "", res); а чтобы, например, выполнить её три раза: Dialog.Call("TestCall.Test; TestCall.Test; TestCall.Test", "", res);
Код:
MODULE TestCall;
IMPORT Log, Dialog;
PROCEDURE Test*;
BEGIN Log.String("ok!!!"); Log.Ln
END Test;
PROCEDURE Do*;
VAR res: INTEGER;
BEGIN Dialog.Call("TestCall.Test; TestCall.Test; TestCall.Test", "", res);
END Do;
END TestCall.
Цитата:
PROCEDURE Call (IN cmd, errorMsg: ARRAY OF CHAR; OUT res: INTEGER)
Call executes a sequence of BlackBox commands denoted by cmd. If the corresponding modules are not yet loaded, Call tries to load them. If some error occurs, command execution terminates and res is returned with a value # 0. If errorMsg = "", Call does not display error messages. If errorMsg # "", Call displays errorMsg in case of an error, appended with a short description of the particular error having occurred.
The syntax for commands with parameters is explained in the documentation of module StdInterpreter.