Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.13;
Скачать: CL | DM;

Вниз

Вхождение в пустой Set   Найти похожие ветки 

 
hexone   (2004-06-02 10:35) [0]

Подскажите, верна ли конструкция:
if (Shift in []) and (Key = VK_DEL) then что-то.
Почему-то не собирается в код, хотя компилируется без ошибок.
Спасибо.


 
Тимохов ©   (2004-06-02 10:35) [1]


> Почему-то не собирается в код,

это как?


 
hexone   (2004-06-02 10:38) [2]

Это значит, что строка в языке есть, но синенькой точечки напротив нет, и Breakpoint зеленый.


 
Тимохов ©   (2004-06-02 10:39) [3]


> hexone   (02.06.04 10:38) [2]

это значит что оптимизатор посчитал,что до этой строки никогда не дойдет.
приведите полный код места, где есть эта строка...


 
hexone   (2004-06-02 10:42) [4]

{
=====================================
=====================================
}
procedure TMainForm.ValTypesTreeKeyUp(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
if (Shift in []) and  (key = VK_DELETE) then DeleteAttr.CLick;
if (Shift in []) and (key = VK_INSERT) then NewAttrCreate.Click;
end;


 
hexone   (2004-06-02 10:42) [5]

P.S. Оптимизация отключена.


 
Тимохов ©   (2004-06-02 10:46) [6]

мое предположение, что у вас весь метод vattypestreekeyup не имеет зеленых точек.
думаю это потому, что вы нигде его не используете.
проверте.


 
hexone   (2004-06-02 10:54) [7]

У меня предположение другое. Если написать Shift = [] то все работает. Т.к в этом случае мы сравниваем два пустых множества. Логично предположить (Shift in []), как вхождение Shift в пустое множество, что само по себе верно только в одном случае, когда Shift является пустым. (Определение: Пустое множество является подмножеством любого множества). В итоге я не очень понимаю, почему мой код считают невыполнимым в любом случае.


 
Тимохов ©   (2004-06-02 11:01) [8]


> hexone   (02.06.04 10:54) [7]

точно, не сообразил сразу...

дельфи понимает, что строка никогда не будет выполнена т.к. s in [] всегда будет вавать false.

подумайте надо логикой.
что вы вообще хотите от shift in []? Если провеерить на пустоту, то надо делать это операцией "=".

вот.


 
Плохиш   (2004-06-02 11:06) [9]

>hexone   (02.06.04 10:54) [7]

Хм, вообще-то в пустое множество не может ни что входить и оно так же не может ни куда входить, т.ч. компилятор прав.


 
hexone   (2004-06-02 11:06) [10]


> дельфи понимает, что строка никогда не будет выполнена т.к.
> s in [] всегда будет вавать false.
>

не всегда, только если s не пустое

> подумайте надо логикой.
> что вы вообще хотите от shift in []? Если провеерить на
> пустоту, то надо делать это операцией "=".

Я не хочу проверять на пустоту я хочу проверить вхождение пустого множества в пустое. В принципе проблема-то решилась, однако выкидывать заведомо правильный код, причем написаный по их правилам - bug!


 
hexone   (2004-06-02 11:07) [11]


> Хм, вообще-то в пустое множество не может ни что входить
> и оно так же не может ни куда входить, т.ч. компилятор прав.

Математику учи.


 
hexone   (2004-06-02 11:08) [12]

Ладно, можно закрываться, не хочу показаться мозгоклюем.


 
Тимохов ©   (2004-06-02 11:09) [13]


> не всегда, только если s не пустое

это гон

bug в другом месте...
догадайтесь где


 
Плохиш   (2004-06-02 11:26) [14]

2hexone

Для особо не понятливых :-)
Заходишь в настройки проекта и включаешь пункт "Выполнять логические операции полностью" и радуешься жизни ;-)

PS. к сведению
http://www.yandex.ru/yandsearch?text=%E2%F5%EE%E6%E4%E5%ED%E8%E5+%EF%F3%F1%F2%EE%E3%EE+%EC%ED%EE%E6%E5%F1%F2%E2%E0&stype =&nl=0


 
hexone   (2004-06-02 11:29) [15]


> Для особо не понятливых :-)
> Заходишь в настройки проекта и включаешь пункт "Выполнять
> логические операции полностью" и радуешься жизни ;-)

))) :-( Мне не нужно этого делать!



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

Текущий архив: 2004.06.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.023 c
14-1085753578
Igorek
2004-05-28 18:12
2004.06.13
Парсеры, парсеры, парсеры...


4-1083927183
denis24
2004-05-07 14:53
2004.06.13
External exception C000008


3-1085464135
IBNovice
2004-05-25 09:48
2004.06.13
время доступа


4-1084034112
Sur
2004-05-08 20:35
2004.06.13
Окно на чистом API.


1-1085818204
Александр
2004-05-29 12:10
2004.06.13
"Canvas Doesn t allow drawing"