Глава 12. РАЗРАБОТКА ОКОННОГО ИНТЕРФЕЙСА 
Контекст документа RunContext 
Контекст документа RunContext типа TRunContext – объект, создаваемый программой 
Allegro при запуске скриптового проекта функциями CallDocument и CallDocumentEx. 
Объект RunContext доступен в скриптовом проекте документа и хранит информацию 
об id  редактируемого (создаваемого) документа, его типе 
doc_type_id, папке «Проводника по 
документам» dir_id и прочую полезную информацию. 
Программа Allegro хранит список всех объектов типа TRunContext, связанных 
с запущенными в данный момент проектами и перед вызовом любого 
документа на редактирование проверяет, нет ли его в списке 
уже редактируемых. Если документ уже присутствует в списке, 
Allegro вместо запуска нового экземляра проекта выводит на передний план 
главное окно уже запущенного проекта. 
  TRunContext = class
  public
    property RunMode: integer;
    property ModuleName: string; //имя модуля проекта
    property ProjectHandle: THandle;
    property ModalResult: TModalResult;
    property dir_id: integer; //папка (используется при создании нового документа)
    property Documents: TDocParams;    //список открытых документов
    property Params: string read FParams write FParams; //строка произвольных параметров
    property parent_doc_type_id: integer; //тип «родительского» документа («документа-основания»)
    property parent_doc_id: integer; //id «родительского» документа («документа-основания»)
  end;
  TDocParams = class
  public
    function Add(doc_type_id, doc_id: integer): TDocParam;  //добавить документ в список
    property Current: TDocParam; //текущий документ
    property Items[Index: integer]: TDocParam;default;  //список документов
    property Count: integer;  //кол-во документов в списке
    procedure Clear; //очистить список документов
    procedure Delete(Index: integer); //удалить элемент списка
    procedure DeleteDoc(doc_id: integer);  // удалить документ из списка
    procedure DeleteAll(doc_type_id: integer); //удалить все документы определенного типа из списка
    procedure SetAsCurrent(doc_id: integer);  //сделать документ текущим
  end;
  TDocParam = class
  public
    property doc_type_id: integer;  //тип документа
    property doc_id: integer;  //документ
  end;
 
 
 
               |