Добрый день!
У MST_CheckBoxes есть точка AllCheck, по этой точке я проверяю есть ли установленные флаги или нет.
Если флаги не установлены, то выдает пусто (я даже не знаю строка это или нет, наверное правильно назвать NULL)
Если делать проверку как делаю я, то условие будет выполнено в двух случаях
1. если флаги не стоят
2. и флаг установлен на первой строке (индекс 0)
code_35981.txt
Думаю это не правильно.
Исходя из этого прошу помощи в решении вопроса.
Либо кто то предложит другой вариант проверки, либо внести изменения в компонент, что бы он выдавал, например -1 если флаги не установлены.
Этот топик читают: Гость
Ответов: 817
Рейтинг: 52
|
|||
карма: 1 |
| ||
файлы: 1 | code_35981.txt [244B] [418] |
Ответов: 2265
Рейтинг: 676
|
|||
-= DriveR =-, как по мне так это не проблема MST_CheckBoxes, а проблема в том что нет возможности отличить Null от 0.
Как вариант: code_35982.txt |
|||
карма: 11 |
| ||
файлы: 1 | code_35982.txt [1.8KB] [640] | ||
Голосовали: | Tad |
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
На точке AllCheck MT-поток, вообще-то, содержащий индексы УСТАНОВЛЕННЫХ флажков. Неустановленных там нет. А Null говорит о том, что там ничего не установлено вообще
|
|||
карма: 22 |
|
Ответов: 2265
Рейтинг: 676
|
|||
nesco, как я понял, -= DriveR =- это понял. Вопрос в другом:
Как отличить первый выбранный флажек (MT-поток будет содержать [0]), от ничего не выбранного Null :? -= DriveR =- нужно знать есть хоть один установленный флажек или нет. |
|||
карма: 11 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
sla8a писал(а): нужно знать есть хоть один установленный флажек или нет.А че, Case у нас не работает |
|||
карма: 22 |
|
Ответов: 186
Рейтинг: 9
|
|||
sla8a писал(а): -= DriveR =-, как по мне так это не проблема MST_CheckBoxes, а проблема в том что нет возможности отличить Null от 0.sla8a, тот же If_else прекрасно справился со сравнением, зачем было считать знаки. code_35984.txt |
|||
карма: 0 |
| ||
файлы: 1 | code_35984.txt [1.8KB] [549] |
Ответов: 817
Рейтинг: 52
|
|||
sla8a писал(а): nesco, как я понял, -= DriveR =- это понял. Вопрос в другом:Как отличить первый выбранный флажек (MT-поток будет содержать [0]), от ничего не выбранного Null :? -= DriveR =- нужно знать есть хоть один установленный флажек или нет. Все верно, я все понял. Вот реальная схема над которой я бьюсь code_35986.txt Я попробовал применить все ваши предложения и ничего дельного не добился nesco писал(а): А че, Case у нас не работает Подскажите как его применить? Я не вижу большой разницы между If_else и Case Теперь по моей реальной схеме, проведите эксперименты: 1. Ничего не выбирайте и нажмите кнопку "Удалить" - появляется предупреждение (так и должно быть, это хорошо) 2. Выберите, например строку 2 и удалите ее - все получается без предупреждения (так и должно быть, это хорошо) 3. Выберите несколько строк и обязательно строку 1 - появляется предупреждение (так не должно быть, это плохо) ------------ Дoбавленo в 09.24: Лично мое мнение: Мне кажется, что лучше бы выдавалось -1 если не выбран не один флаг Не помню название компонентов, но в каких то сделано подобное. |
|||
карма: 1 |
| ||
файлы: 1 | code_35986.txt [1.4KB] [588] |
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
Решение твоего вопроса
|
|||
карма: 22 |
| ||
Голосовали: | -= DriveR =-, Konst |
Ответов: 817
Рейтинг: 52
|
|||
nesco, Спасибо
Вот 100 лет не догадался бы, что в таком простом вопросе надо применять ArreySum |
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
-= DriveR =- писал(а): я проверяю есть ли установленные флаги или нет. Не слушай сказок про одиночное Case или if_else. sla8a тебе дал правильный ответ. Если Len выдал 0 - значит нет установленных чеков. Т.е. нужна связка из Len + If_else или Len + Case
|
|||
карма: 25 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
Но можно, кстати, и на if_Else. Но на одном получится только с кнопкой, а если нет кнопки, то надо добавить еще один элемент DoData при Data=Null в поток
|
|||
карма: 22 |
|
Ответов: 2265
Рейтинг: 676
|
|||
Chipset, вась не смущает что ваша схема не работает, а выложенная мной выше работает?
dontwork.png code_35988.txt nesco писал(а): А че, Case у нас не работаетcode_35990.txt |
|||
карма: 11 |
| ||
файлы: 3 | dontwork.png [38KB] [799], code_35988.txt [1.5KB] [627], code_35990.txt [1.3KB] [625] |
Ответов: 817
Рейтинг: 52
|
|||
nesco писал(а): Но можно, кстати, и на if_Else. Но на одном получится только с кнопкой,...Ничего не понимаю Какая разница на какой операнд подавать данные? Какая разница что с чем сравнивать перанд1 с операнд 2 или операнд2 с операнд1? От перемены мест слагаемых сумма не меняется, или я не прав? |
|||
карма: 1 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
-= DriveR =- писал(а): От перемены мест слагаемых сумма не меняется, или я не прав?Не прав Прикол If_else в том, что он тип распознает по первой точке, и Null на первой точке он будет считать целым. Запомните это, очень пригодится в дальнейшем |
|||
карма: 22 |
|
Ответов: 2265
Рейтинг: 676
|
|||
-= DriveR =- писал(а): Ничего не понимаю Какая разница на какой операнд подавать данные?От перемены мест слагаемых сумма не меняется, или я не прав?nesco, -= DriveR =-, тогда уж лучше так: code_35991.txt так как два раза запрашивать AllCheck это два раза перебирать массив. |
|||
карма: 11 |
| ||
файлы: 1 | code_35991.txt [1.5KB] [729] |