Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];

Вниз

Case - Constant expression expected   Найти похожие ветки 

 
Ega23 ©   (2007-10-22 13:46) [0]

Туплю: что не так?



const
 lsUnknown     : Integer = 10;
 lsAlarm       : Integer = 20;
 lsReady       : Integer = 30;
 lsBroken      : Integer = 40;
 lsSwitchOFF   : Integer = 50;
 lsGuardON     : Integer = 60;
 lsLocked      : Integer = 70;
 lsCaptured    : Integer = 80;

...............

   Case TLogObjChildItem(ChildList.Items[i]).LogStatCod of
     lsUnknown   : Result := Result + [psUnknown];
     lsAlarm     : Result := Result + [psAlarm];
     lsReady     : Result := Result + [psReady];
     lsBroken    : Result := Result + [psBroken];
     lsSwitchOFF : Result := Result + [psSwitchOFF];
     lsGuardON   : Result := Result + [psGuardON];
     lsLocked    : Result := Result + [psLocked];
     lsCaptured  : Result := Result + [psCaptured];
   end;


 
Jump   (2007-10-22 13:50) [1]

lsUnknown     : Integer = 10;
lsAlarm       : Integer = 20;
lsReady       : Integer = 30;
lsBroken      : Integer = 40;
lsSwitchOFF   : Integer = 50;
lsGuardON     : Integer = 60;
lsLocked      : Integer = 70;
lsCaptured    : Integer = 80;


Integer убери

lsUnknown  = 10;
lsAlarm = 20;
lsReady = 30;
lsBroken = 40;
lsSwitchOFF = 50;
lsGuardON = 60;
lsLocked  = 70;
lsCaptured  = 80;


Или в настройках компилятора попробуй отключить assignable typed constants.


 
Reindeer Moss Eater ©   (2007-10-22 13:51) [2]

const
lsUnknown     = 10;
...
lsCaptured     = 80;


 
Ega23 ©   (2007-10-22 13:51) [3]

разве в Case типизированные константы не "хаваются"?


 
Jump   (2007-10-22 13:52) [4]

Типизированные "хаваются"... а вот "assignable" - как-то не очень...


 
Ega23 ©   (2007-10-22 13:54) [5]


> Типизированные "хаваются"... а вот "assignable" - как-то
> не очень...


Не понял, а в чём разница?


 
clickmaker ©   (2007-10-22 14:00) [6]


> чём разница?

ну как же? assignable можно поменять значение, а в case допустимы только "чистые" константы


 
Ega23 ©   (2007-10-22 14:02) [7]


> ну как же? assignable можно поменять значение, а в case
> допустимы только "чистые" константы


Нет, в чём разница между assignable typed constant и typed constant?


 
Reindeer Moss Eater ©   (2007-10-22 14:03) [8]

Значения на рантайме могут меняться


 
Ega23 ©   (2007-10-22 14:10) [9]

Хорошо.
Я почему константы типизировать начал - при переходе с D5 на D7 выяснилось, что при объявлении

const  
 MyFirstVal = 6;
 MySecondVal : Integer =6;

function Foo(Value : Variant) : Integer;
begin
 Case VarType(Value) of
  varByte : Result := 1;
  varInteger : Result := 2;
end;


результатом выполнения Foo(MyFirstVal) будет 1, а Foo(MySecondVal) даст 2.


 
Ega23 ©   (2007-10-22 14:11) [10]

А для кода данное дело было достаточно критично.


 
Джо ©   (2007-10-22 14:14) [11]

> [9] Ega23 ©   (22.10.07 14:10)
> результатом выполнения Foo(MyFirstVal) будет 1, а Foo(MySecondVal)
> даст 2.

Дык, а кто мешает сделать Фу таким:
function Foo(Value : Variant) : Integer;
begin
Case VarType(Value) of
 varByte,
 varInteger : Result := 1;
end;
?


 
Ega23 ©   (2007-10-22 14:16) [12]


> Джо ©   (22.10.07 14:14) [11]


Да млжно, уже переделано было. просто начал специально их типизровать, на всякий пожарный. А тут вот такое...


 
Leonid Troyanovsky ©   (2007-10-22 14:24) [13]


> Ega23 ©   (22.10.07 13:46)  

> Туплю: что не так?

Case TLogObjChildItem(ChildList.Items[i]).LogStatCod div 10 - 1 of
 ord(psUnknown): ..

Ну, или константы определить, как lsUnknown = 10*(Ord(psUnknown)+1)

--
Regards, LVT.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.039 c
2-1193162827
MAXHo
2007-10-23 22:07
2007.11.18
В чем может быть проблема?


15-1192444794
oldman
2007-10-15 14:39
2007.11.18
Где у Висты настрайвается экран (разрешение, гамма и т.д.)?


8-1154587038
vladimirg88
2006-08-03 10:37
2007.11.18
Звук при загрузке формы


6-1174461193
Pavel Kuznecov
2007-03-21 10:13
2007.11.18
"Байтовую" строку в последовательность $FF


2-1193686793
VDnn
2007-10-29 22:39
2007.11.18
TExcelApplication





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский