ScriptToMoBus

Скрипт тем и удобен, что его миграция между версиями программы не столь болезнена, как скажем для компилированного плагина. В МоБи набор функций и функционал в целом остается на протяжении последних 4 версий прежним, но наблюдаются такие надоедливые небольшие изменения и отсутствие обратной совместимости.

Например, элементарная функция по созданию окна, это FBCreateUniqueTool в новых версиях и CreateUniqueTool в старых версиях. ?ли поиск объекта по имени FBFindModelByLabelName в новых версиях и FBFindModelByName в старых.  Для многих скриптов у меня история складывается следующим образом: я создаю копию скрипта, добавляю в имя копии постфикс с номером версии МоБи и вношу правки, чтобы этот скрипт под этой версией программы таки работал. Весь этот набор скриптов весьма усложняет последующую работу над улучшением скрипта, ведь изменения нужно вносить в каждый скрипт, при этом ничего не упустив из виду. ? в этом случае хотелось бы иметь все-таки один рабочий скрипт под все версии, а функции, в которых расходятся их исполнение, как-то обернуть для поддержки как старых наименований, так и новых.

Вот один из вариантов как это можно сделать

 

1
2
3
4
5
6
7
8
9
10
11
12
t = None
try:
  t = FBCreateUniqueTool("Renamer tool (by Neill3d)")
except NameError:
  t = CreateUniqueTool("Renamer tool (by Neill3d)")
  print "supporting MoBu 2010"

if t:
  t.StartSizeX = 292
  t.StartSizeY = 514
  PopulateTool(t)
  ShowTool(t)
Один скрипт под разные версии МоБи
Метки:    

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *