Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Case label outside of rang [WinXP]


Страницы:   1 2

no ©   (2008-02-23 00:19:00) 

delphi 2007 выдает такое предупреждение:

[Pascal Warning] Unit1.pas(149): W1018 Case label outside of range of case expression

на коде:

procedure TForm2.forumbrowserCommandStateChange(ASender: TObject; Command: Integer; Enable: WordBool);
begin
case Command of
   CSC_NAVIGATEBACK: BackBtn.Enabled := Enable;
   CSC_NAVIGATEFORWARD: forwBtn.Enabled := Enable;
   CSC_UPDATECOMMANDS: stopBtn.Enabled := Enable; // <<---
end;
end;


как будет правильно?


Германн   (2008-02-23 02:45:00) [21]


> Riply ©   (23.02.08 02:37) [6]
>
> > [4] Германн ©   (23.02.08 02:22)
> > Ну то что написано в Хэлпе понял. (после пятой бутылки
> :)
> > Но почему значение $FFFFFFFF не вписывается в Integer
> всё равно не понял. :(
>
> Ну вот.
> Я ж говорила о несовместимости, а Вы: "искусство - искусство"
> :)
>
> MAXDWORD запихать в integer можно, но тяжело запихать в
> границы от -MAXINT до MAXINT :)
>

Несовместимость - это не ко мне. :)
А чем  MAXDWORD отличается от "-1"? Это что компилятор такой глупый, что не может $FFFFFFFF понять как "-1"? Ведь тип case expression ему известен!


Германн   (2008-02-23 02:40:00) [22]


> guav ©   (23.02.08 02:26) [5]
>
> > [4] Германн ©   (23.02.08 02:22)
>
> Видимо по мнению компилятора, оно беззнаковое 4294967295,
>  а не -1.
>

Просмотрел хэлпы от Д6 и BDS2006. Нигде не говорится что компилятор может трактовать Case label по-своему. Вне зависимости от типа case expression.


Riply   (2008-02-23 02:37:00) [23]

> [4] Германн ©   (23.02.08 02:22)
> Ну то что написано в Хэлпе понял. (после пятой бутылки :)
> Но почему значение $FFFFFFFF не вписывается в Integer всё равно не понял. :(

Ну вот.
Я ж говорила о несовместимости, а Вы: "искусство - искусство" :)

MAXDWORD запихать в integer можно, но тяжело запихать в границы от -MAXINT до MAXINT :)


guav   (2008-02-23 02:26:00) [24]

> [4] Германн ©   (23.02.08 02:22)

Видимо по мнению компилятора, оно беззнаковое 4294967295, а не -1.


Германн   (2008-02-23 02:22:00) [25]

Ну то что написано в Хэлпе понял. (после пятой бутылки :)
Но почему значение $FFFFFFFF не вписывается в Integer всё равно не понял. :(


Германн   (2008-02-23 02:13:00) [26]


> Riply ©   (23.02.08 00:24) [1]
>
> > [0] no   (23.02.08 00:19)
> > delphi 2007 выдает такое предупреждение:
> > [Pascal Warning] Unit1.pas(149): W1018 Case label outside
> of range of case expression
>
> > как будет правильно?
>
> Правильно будет перевести текст (со словариком или без).
>
> А еще правильнее нажать F1 на предупреждении и прочитать,
>  что написано в Help`е.
>

"Дело было вечером, делать было нечего..."
Вот попробовал воспроизвести ситуацию, получил предупреждение, перевел без словаря и ни фига не понял что написано в Help`е (BDS2006).
:(


no   (2008-02-23 00:29:00) [27]

http://www.cryer.co.uk/brian/delphi/twebbrowser/twebbrowser_events.htm


Riply   (2008-02-23 00:24:00) [28]

> [0] no   (23.02.08 00:19)
> delphi 2007 выдает такое предупреждение:
> [Pascal Warning] Unit1.pas(149): W1018 Case label outside of range of case expression

> как будет правильно?

Правильно будет перевести текст (со словариком или без).
А еще правильнее нажать F1 на предупреждении и прочитать, что написано в Help`е.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо