var CONRecs: array [1..4] of comp;
var CONames: array [1..4] of string;
// Заполняем массивы значениями и NRec-ами
SetCOItemParams(GetUserCONRec(), CONRecs[1], CONames[1]);
SetCOItemParams(0032000000000047h, CONRecs[2], CONames[2]);
SetCOItemParams(00320000000001B0h, CONRecs[3], CONames[3]);
SetCOItemParams(0032000000000183h, CONRecs[4], CONames[4]);
SetEnumList(scrMain, #_selCO, CONames, CONRecs);
Т.е. в списке мои значения не появляются, если же убрать последний передаваемый параметр CONRecs, то все нормально. Как обойти эту проблему. Т.е. задача в том, что мне нужно узнать NRec выбранной в списке записи
Так ведь номер позиции в списке никак не может быть comp. Скорее всего, там word. Попробуйте, например, так: список заполняете SetEnumList(scrMain,#_selCO,CONames), а после выбора нужной строки NRec достаете CONRecs[_selCO+1].
Всё верно, с элементами выпадающего списка можно ассоциировать некоторые целочисленные значения, которые будут заноситься в управляющую переменную при выборе элемента, и которые будут использоваться для расчета текстового представления элемента при отрисовке поля. По умолчанию компилятор "раздаёт" элементам неотрицательные значения начиная с нуля. Оные значения могут быть заданы явно при определении списка или программно с помощью SetEnumList, в 4-м (необязательном) параметре.