Страница 45 из 158
Clarion 11-12
Добавлено: 16 Июнь 2021, 9:11
Игорь Столяров
Я на всякий случай оставлю здесь свои "находки" в C11.1, вдруг это сэкономит кому-то время и нервы.
В C11.1 изменилась работа метода DISABLE(?FirstControl,?LastControl).
Если ?FirstControl = 0, то полностью блокируются все контролы окна (хотя визуальных изменений нет).
Clarion 11-12
Добавлено: 16 Июнь 2021, 10:14
Губин Игорь
Я, если честно, не понимаю логику. Логику шаблона понимаю, а вот логику использования массива для показа в LIST - нет.
Clarion 11-12
Добавлено: 16 Июнь 2021, 10:15
Губин Игорь
А какой контрол в окне имеет номером 0?
Clarion 11-12
Добавлено: 16 Июнь 2021, 10:32
Игорь Столяров
Губин Игорь писал(а): ↑16 Июнь 2021, 10:14
а вот логику использования массива для показа в LIST - нет
Тоже самое для чего используются массивы везде - обработка больших массивов данных.
Пример из жизни кроликов: есть список ежедневника. Каждая строка списка - один день.
В каждом часе может быть 3 события, итого 72 поля и их надо их загрузить из БД процедурой.
Ранее в процедуру загрузки передавался массив из 72 полей и дата. Теперь ХЗ - буду думать.
QUEUE здесь не удобен, подозреваю, что с элементами GROUP будут те же грабли, что и с ARRAY.
Clarion 11-12
Добавлено: 16 Июнь 2021, 10:37
Игорь Столяров
Губин Игорь писал(а): ↑16 Июнь 2021, 10:15
А какой контрол в окне имеет номером 0?
Неинициализированный. На буржуйском форуме обсуждается тема с зависанием окна PreviewReport в С11.1
Там как раз этот случай (и у меня тоже) - если с TOOLBAR убирать контролы, то ранее пустые ссылки (0) на
них просто игнорировались в DISABLE, а теперь всё становится колом.
Clarion 11-12
Добавлено: 16 Июнь 2021, 10:50
Губин Игорь
Игорь Столяров писал(а): ↑16 Июнь 2021, 10:32
Тоже самое для чего используются массивы везде - обработка больших массивов данных.
Пример из жизни кроликов: есть список ежедневника. Каждая строка списка - один день.
В каждом часе может быть 3 события, итого 72 поля и их надо их загрузить из БД процедурой.
Ранее в процедуру загрузки передавался массив из 72 полей и дата. Теперь ХЗ - буду думать.
QUEUE здесь не удобен, подозреваю, что с элементами GROUP будут те же грабли, что и с ARRAY.
И что? Ну никто же не мешает определить некую строковую переменную используемую в качестве "шаблонной" и для массива с использованием Size/Like) и для Browse. Вот честно, у меня такое делается уже не помню сколько лет. Eсли ты используешь шаблоны, то надо уважать его логику. В данном случае, они лишь довели логику до нормальной, убрав узкое место с определением размера переменной.
Clarion 11-12
Добавлено: 16 Июнь 2021, 10:53
Губин Игорь
Игорь Столяров писал(а): ↑16 Июнь 2021, 10:37
пустые ссылки (0) на
них просто игнорировались в DISABLE, а теперь всё становится колом.
Скорее всего, убрали защиту от дурака в рантайме.
Clarion 11-12
Добавлено: 16 Июнь 2021, 11:10
finsoftrz
0 всегда использовался как ссылка на контекст текущего окна. Типа 0{prop:active} и т.п. Видимо в disable на диапазон контролов была такая фича. Действительно, не очень понятно, зачем в disable(?first,?last) указывать ссылку на окно. На мое восприятие, 0 специально исключали, а теперь забыли, зачем, и изменили.
Clarion 11-12
Добавлено: 16 Июнь 2021, 11:42
Игорь Столяров
Губин Игорь писал(а): ↑16 Июнь 2021, 10:50
В данном случае, они лишь довели логику до нормальной, убрав узкое место с определением размера переменной.
Можно проще. Хронология хаоса:
- В C10 элементы массивов в BROWSE прекрасно показывались;
- В C11 отломали BIND для элементов массивов в BROWSE;
- В С11.1 доломали использование элементов массивов в BROWSE окночательно.
Я не против прогресса. Я даже не спрашиваю откуда растут руки у тех кто это делает.
Обидно, что всё это делается молча и находится потом методом тыка.
Clarion 11-12
Добавлено: 16 Июнь 2021, 11:43
Игорь Столяров
finsoftrz писал(а): ↑16 Июнь 2021, 11:10
На мое восприятие, 0 специально исключали, а теперь забыли, зачем, и изменили.
Звучит вполне логично. И даже может быть правдой.
То же самое - ну напишите Вы: изменили работу метода DISABLE, что бы не искать ...
Clarion 11-12
Добавлено: 16 Июнь 2021, 11:48
Дед Пахом
Стандартный ресайзер: кнопки не перерисовываются, пока мышью над ними не проведёшь.
UPD: не совсем так. Кнопки перерисовываются, если окно ресайзить, перемещая границы окна, и не перерисовываются, если окно максимайзить или ресторить.
Clarion 11-12
Добавлено: 16 Июнь 2021, 12:19
Игорь Столяров
Дед Пахом писал(а): ↑16 Июнь 2021, 11:48
Стандартный ресайзер: кнопки не перерисовываются, пока мышью над ними не проведёшь
Я видел такое для кнопок на панели TOOLBAR в AppFrame. В окнах - нет.
Какой из этих ресайзеров стандартный ?
Clarion 11-12
Добавлено: 16 Июнь 2021, 12:21
Дед Пахом
Стандартный в смысле шаблон из поставки. А стратегия "Resize".
Clarion 11-12
Добавлено: 16 Июнь 2021, 12:25
Дед Пахом
Дед Пахом писал(а): ↑16 Июнь 2021, 11:48
UPD: не совсем так. Кнопки перерисовываются, если окно ресайзить, перемещая границы окна, и не перерисовываются, если окно максимайзить или ресторить.
Упс, точно так же и в C10.
Clarion 11-12
Добавлено: 16 Июнь 2021, 12:33
Губин Игорь
Дед Пахом писал(а): ↑16 Июнь 2021, 12:25
Упс, точно так же и в C10.
Элементарно, Ватсон! Надо послать евент всё пройдёт...