Например, у меня есть перечислениецелое число с перечисляемым типом как var?
const
MY_FIRST = 1;
MY_SECOND = 2;
MY_THIRD = 3;
type
TMyEnum = MY_FIRST .. MY_THIRD;
и у меня есть функция, как
procedure DoSomething(var _type: TMyEnum);
, где я должен пройти integer
в TMyEnum
. Поступая
var
some_int_value: integer;
begin
DoSomething(TMyEnum(some_int_value));
У меня есть ошибка [DCC Error] : E2197 Constant object cannot be passed as var parameter
. Как это решить?
С риском звукового педантизма то, что вы объявили, на самом деле не является перечислением - это несколько констант и целочисленный тип субдиапазона. Объявление enum потеряло бы константы и заменило бы существующий 'TMyEnum' на' TMyEnum = (MY_FIRST, MY_SECOND, MY_THIRD); 'или более идиоматически:' TMyEnum = (meFirst, meSecond, meThird); '. –
На самом деле это было перечисление, пока это был код C. Некоторые вещи, которые мы не можем перевести с C на Delphi 1x1. – user2091150