Доброго дня шановним розробникам і форумчанам.
Є в мене наступне запитання, щодо розширення можливості автоматизації Digitals скриптами:
чи можна розробити скриптову функцію
@SetOptions Section Key=Value, яка встановлюватиме значення опцій налаштування Digitals (вікно Options класу TFormOptions з меню Сервіс|Налаштування) принаймні на поточну сесію роботи Digitals.
Обгрунтування запиту на функцію - наступне твердження:
відповідно до файла ініціалізації Ged.ini - скриптова функція
@SetConstant Constant=NewValue - "Изменяет значение константы в Сервис|Настройки|Главная|Константы по ее имени" не змінює дані в Ged.ini, зате встановлює значення
NewValue замість ініційованого значення ключа
Constant у секці
[Constants] в межах одній сесії роботи Digitals.
Запитувана функція
@SetOptions Section Key=Value - "Змінює значення опції, ініційоване з ключа
Key секції
Section файла Ged.ini, для поточної сесії роботи Digitals. Повертає 1 за успішної операції або 0 за невдачі (при недопустимому значенні
Value, при відсутності в налаштуваннях опції
Key та/або секції
Section)".
Я розумію, що наявність запитуваної функції автоматом переведе функцію
@SetConstant Constant=NewValue до надлишкових. Але ж зараз, для того щоб у скрипті гарантувати значення опцій налаштування, доводиться скриптом переписувати файл Ged.ini та перепускати Ged.exe для ініціалізації нових значень опцій
Як будемо користуватись? Наприклад:
@SetOptions FormOptions.chbShapeSameWindow Checked=1 - включить опцію "Відкривати в одному вікні Shape-файли (Сервіс|Налаштування|Читання|Arcview Shape|Відкривати в одному вікні)
@SetOptions FormOptions.edtTCPCommand Text=1042 - змінить значення порта для з'єднань, а
@SetOptions FormOptions.edtTCPCommand Checked=1 включить сервер Digitals для з'єднань.
Як буде функція реагувати на зміну значень опцій що передбачають перезапуск Digitals? Тут треба вирішувати з того підходу, як зараз працює функція @SetConstant. Хотілося б, щоб функція @SetOptions записувала значення опції ще й у файлі Ged.ini та повертала би -1, що буде свідчити скрипту про необхідність перезапуску Digitals вже з новими значеннями опцій (записаних в Ged.ini
). Якщо така "хотілка" суперчить принципам - без зміни значення в Ged.ini встановлюй чи ні, а нові значення опції задіяні не будуть.