Здравствуйте.
Как создать большую глобальную процедуру, которая бы включала в себя другую глобальную процедуру?
Речь идет о вызове функций в глобальном модуле из других глобальных модулей? Для этого нужно подключить глобальный модуль через uses в секции implementation, вот так:
interface
implementation
//подключаем глобальный модуль
uses
GlobalUnit1;
procedure myProcUnit2;
begin
myProcUnit1; // используем процедуру из глобального модуля GlobalUnit1
end;
end.
Здравствуйте!
Вопрос по использованию переменных типа "Внетренний тег. Виртуальная переменная" в передаче в качестве ссылки в глобальный модуль.
Например, в проекте есть Переменная типа Byte, с именем Vdata1
Я хочу передать ссылку в глобальный модуль на эту переменную Byte:
Глобальный модуль типа:
GlobModul (var data1: Byte): Byte;
Но компилятор ругается, т.к. не может передать ссылку на эту переменную.
Выход из этой ситуации - использовать переменную, объявленную внутри функции:
var
Fdata: Byte;
begin
Fdata := Vdata1.Value;
GlobModul (Fdata);
Vdata1.Value := Fdata;
end;
Возможно ли использовать ссылку на переменную типа "Внутренний тег" для передачи в глобальный модуль для сокращения кода?
Здравствуйте.
Возможно ли использовать ссылку на переменную типа "Внутренний тег" для передачи в глобальный модуль
Да, это возможно. Внутренние и внешние переменные в Simple-Scada являются объектами типа TM_Variable. Передать переменную в глобальный модуль можно следующим образом:
Пример объявления в глобальном модуле:
interface
procedure GlobModul(aVar: TM_Variable);
implementation
procedure GlobModul(aVar: TM_Variable);
begin
aVar.Value := 15; // выполняем требуемые операции с переданной в процедуру переменной
end;
end.
Пример использования:
begin
GlobModul(Vdata1);
end.