После глубокой и продолжительной шизофрении, буквально не приходя в сознание, вышло следующее поделие:
http://stanislav.neva.pp.ru/umc-bin-2.0.1020.zip
Пароль, как всегда, "umc" без кавычек.
По хорошей традиции, убиты пара глюков, добавлены ещё штук 10.
Но самая главная новость - добавлена бета-версия скриптинг-системы - то есть, вы можете сами писать свои макросы, вызывая из как полноценные макросы. Не ждите многого от беты, но самые простенькие макросы писать можно. Типа строчку порезать или задом наперёд пустить, или квадратное уравнение решить или биоритмы посчитать.
Чем больше бета-тестеров, тем раньше глюки исчезнут
Некоторая информация о скриптах в сабже.
Скрипт - это описание макроса в текстовом виде. Скриптовый язык UMC -
это подмножество языка Delphi Pascal, реализованное при помощи
библиотеки JVCL.
Файл описания скриптов UMC - это текстовый файл с расширением *.s
Файл описания скриптов содержит один или более скриптов.
Описание скрипта начинается с ключевого метасимвола @SCRIPT:
@SCRIPT TEST
Этот метасимвол описывает скрипт под названием TEST. Старайтесь не
использовать дублирующихся имён скриптов, чтобы избежать
недоразумений.
После метасимвола @SCRIPT идёт сам скрипт. Скрипт является либо
простым арифметическим выражением, либо описанием функции используя
синтаксис языка Pascal без строки function:
@SCRIPT TEST1
//Первый скрипт
'Hello Word! Time is '+datetimetostr(now);
@SCRIPT TEST2
//Второй скрипт
var time:TDateTime;
begin
time:=now;
Result:='Hello Word! Time is '+datetimetostr(time);
end;
Чтобы вызвать скрипт из шаблона, необходимо использовать специальный
макрос %S(SCRIPTNAME):
%S(TEST2)
Файлы описаний скриптов находятся в директории /Scripts в папке, куда
был установлен UMC.
В данный момент можно использовать некоторые стандартные процедуры, функции и
типы из модулей Delphi: System, SysUtils, Windows
Чтобы использовать внутренние переменные UMC, необходимо обращаться к
ним с префиксом umc_ :
@SCRIPT TEST3
'UMC version is '+umc_ver
Вы можете использовать управляющие конструкции:
@SCRIPT TEST4
var i:integer;
begin
result:='';
for i:=32 to 255 do
result:=result+chr(i);
end;
@SCRIPT TEST5
var i:integer;
begin
result:='';
i:=32;
while i<=255 do begin
if (i<45)or(i>53) then
result:=result+chr(i);
i:=i+1;
end;
end;
Ещё к вопросу о скриптах. Все скрипты импортируются в общий список
макросов с префиксом FN. Так, например, скрипт с именем TEST будет
доступен как макрос %FNTEST.
Для доступа к параметрам макроса следует использовать функции
ParamCount и ParamStr, смысл которых совпадает с аналогичными
функциями паскаля.
Вызывать макросы при помощи %S(MacroName,parameter1,parameter2,…)
можно, но не рекомендуется.
Во-отъ.....