Страница 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
Губин Игорь
Игорь Столяров писал(а): 16 Июнь 2021, 9:11 Если ?FirstControl = 0
А какой контрол в окне имеет номером 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, а теперь всё становится колом.
Скорее всего, убрали защиту от дурака в рантайме. :P

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. В окнах - нет.
Какой из этих ресайзеров стандартный ?

1.jpg

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.
Элементарно, Ватсон! Надо послать евент всё пройдёт...