Текущий архив: 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.47 MB
Время: 0.029 c