Глава 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;
|