SetEnumList не понимает массив типа comp

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

SetEnumList не понимает массив типа comp

Сообщение galover »

Пытаюсь передать массив типа comp в функцию SetEnumList , чтобы определить NRec выбранного элемента, но ничего не получается, код такой:

Код: Выделить всё

      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 выбранной в списке записи
KATZ
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49

Сообщение KATZ »

Так ведь номер позиции в списке никак не может быть comp. Скорее всего, там word. Попробуйте, например, так: список заполняете SetEnumList(scrMain,#_selCO,CONames), а после выбора нужной строки NRec достаете CONRecs[_selCO+1].
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Сообщение galover »

хм, я так подозревал что массив передаваемых значений (4-й параметр) и есть значение выбранного элемента. Тогда для чего этот параметр?
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Сообщение galover »

KATZ
за совет спасибо! так и сделал
Screw
Слесарь-системщик
Сообщения: 304
Зарегистрирован: 29 мар 2005, 17:49
Откуда: р.Беларусь, Унитарное предприятие "ТОП СОФТ"
Контактная информация:

Сообщение Screw »

Всё верно, с элементами выпадающего списка можно ассоциировать некоторые целочисленные значения, которые будут заноситься в управляющую переменную при выборе элемента, и которые будут использоваться для расчета текстового представления элемента при отрисовке поля. По умолчанию компилятор "раздаёт" элементам неотрицательные значения начиная с нуля. Оные значения могут быть заданы явно при определении списка или программно с помощью SetEnumList, в 4-м (необязательном) параметре.
Виталий
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Сообщение galover »

так comp тоже целочисленный тип:
Целые числа могут быть следующих типов:

byte - однобайтовое целое;

word - беззнаковое целое;

integer - целое;

longInt - длинное целое;

comp - сверхдлинное целое.
Ответить