А что значит "взять"? Если ожидается, что в инициализированный в вызывающем интерфейсе маркер попадет что-то из вызываемого, то ожидания не оправданы. Вызываемому интерфейсу нужно передавать не идентификатор, под которым данные и параметры маркера сохраняются в деске, а собственно хэндл маркера (в примере - переменная Marker). Или другой вариант: вызываемый интерфейс сохраняет всё нажитое непосильным трудом в деске, используя строку-идентификатор ресурса, а вызывающий потом поднимает эти данные из деска.
То есть как-то так (в вызывающем):
Код: Выделить всё
RunInterface('priority', 0,0, 0, 'MTOPRIORITY');
var Marker: longint;
Marker := InitMarker('MTOPRIORITY',8,1,1);
message('кол-во маркеров:' + GetMarkerCount(Marker))
в вызываемом:
Код: Выделить всё
...
var Marker: longint;
...
Marker := InitMarker('', 8, 10, 10); // просто пустой маркер, из деска ничего не грузим
...
//помечаем-помечаем
...
DoneMarker(Marker, 'MTOPRIORITY'); // сохранили содержимое маркера в деске и грохнули маркер