Как в Delphi объявить константу равную меньшей из двух других?

Для удобства работы, хочу задать некоторые ограничения константами. Например:

 const
   MAX_BUFFERS  = 16;
   MAX_SOURCES  = 32;
   MAX_SOUNDS   = 16;

Часть из констант со-зависимы. Хочу их связать. Но, вот такой код не работает, т.к. идет обращение к функции:

 const
   MAX_BUFFERS  = 16;
   MAX_SOURCES  = 32;
   MAX_SOUNDS   = Min(MAX_BUFFERS, MAX_SOURCES);

Каким образом можно присвоить константе значение наименьшее из двух других констант?


Ответы (1 шт):

Автор решения: kami

В версиях Delphi, в которых появилась директива $IF такое сделать можно:

const
  cOne = 1;
  cTwo = 2;
  {$IF cOne < cTwo}
  cThree = cOne;
  {$ELSE}
  cThree = cTwo;
  {$IFEND} // возможно, компилятор скажет что эта директива устарела и потребует использовать {$ENDIF}

При желании, можно записать компактнее, это же дефайны:

cThree = {$IF cOne < cTwo} cOne {$ELSE} cTwo {$IFEND}; 
→ Ссылка