Clarion 11-12

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5395
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Clarion 11-12

Сообщение Игорь Столяров »

Я на всякий случай оставлю здесь свои "находки" в C11.1, вдруг это сэкономит кому-то время и нервы. ;)

В C11.1 изменилась работа метода DISABLE(?FirstControl,?LastControl). :(
Если ?FirstControl = 0, то полностью блокируются все контролы окна (хотя визуальных изменений нет).
«V» значит Вендетта !
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 1584
Зарегистрирован: 16 Сентябрь 2005, 15:35
Откуда: Москва

Clarion 11-12

Сообщение Губин Игорь »

Я, если честно, не понимаю логику. Логику шаблона понимаю, а вот логику использования массива для показа в LIST - нет.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 1584
Зарегистрирован: 16 Сентябрь 2005, 15:35
Откуда: Москва

Clarion 11-12

Сообщение Губин Игорь »

Игорь Столяров писал(а): 16 Июнь 2021, 9:11 Если ?FirstControl = 0
А какой контрол в окне имеет номером 0? :?
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5395
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Clarion 11-12

Сообщение Игорь Столяров »

Губин Игорь писал(а): 16 Июнь 2021, 10:14 а вот логику использования массива для показа в LIST - нет
Тоже самое для чего используются массивы везде - обработка больших массивов данных.
Пример из жизни кроликов: есть список ежедневника. Каждая строка списка - один день.
В каждом часе может быть 3 события, итого 72 поля и их надо их загрузить из БД процедурой.
Ранее в процедуру загрузки передавался массив из 72 полей и дата. Теперь ХЗ - буду думать.
QUEUE здесь не удобен, подозреваю, что с элементами GROUP будут те же грабли, что и с ARRAY.
«V» значит Вендетта !
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5395
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Clarion 11-12

Сообщение Игорь Столяров »

Губин Игорь писал(а): 16 Июнь 2021, 10:15 А какой контрол в окне имеет номером 0?
Неинициализированный. На буржуйском форуме обсуждается тема с зависанием окна PreviewReport в С11.1
Там как раз этот случай (и у меня тоже) - если с TOOLBAR убирать контролы, то ранее пустые ссылки (0) на
них просто игнорировались в DISABLE, а теперь всё становится колом. :(
«V» значит Вендетта !
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 1584
Зарегистрирован: 16 Сентябрь 2005, 15:35
Откуда: Москва

Clarion 11-12

Сообщение Губин Игорь »

Игорь Столяров писал(а): 16 Июнь 2021, 10:32 Тоже самое для чего используются массивы везде - обработка больших массивов данных.
Пример из жизни кроликов: есть список ежедневника. Каждая строка списка - один день.
В каждом часе может быть 3 события, итого 72 поля и их надо их загрузить из БД процедурой.
Ранее в процедуру загрузки передавался массив из 72 полей и дата. Теперь ХЗ - буду думать.
QUEUE здесь не удобен, подозреваю, что с элементами GROUP будут те же грабли, что и с ARRAY.
И что? Ну никто же не мешает определить некую строковую переменную используемую в качестве "шаблонной" и для массива с использованием Size/Like) и для Browse. Вот честно, у меня такое делается уже не помню сколько лет. Eсли ты используешь шаблоны, то надо уважать его логику. В данном случае, они лишь довели логику до нормальной, убрав узкое место с определением размера переменной.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 1584
Зарегистрирован: 16 Сентябрь 2005, 15:35
Откуда: Москва

Clarion 11-12

Сообщение Губин Игорь »

Игорь Столяров писал(а): 16 Июнь 2021, 10:37 пустые ссылки (0) на
них просто игнорировались в DISABLE, а теперь всё становится колом.
Скорее всего, убрали защиту от дурака в рантайме. :P
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 2731
Зарегистрирован: 06 Ноябрь 2014, 12:48

Clarion 11-12

Сообщение finsoftrz »

0 всегда использовался как ссылка на контекст текущего окна. Типа 0{prop:active} и т.п. Видимо в disable на диапазон контролов была такая фича. Действительно, не очень понятно, зачем в disable(?first,?last) указывать ссылку на окно. На мое восприятие, 0 специально исключали, а теперь забыли, зачем, и изменили. :-)
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5395
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Clarion 11-12

Сообщение Игорь Столяров »

Губин Игорь писал(а): 16 Июнь 2021, 10:50 В данном случае, они лишь довели логику до нормальной, убрав узкое место с определением размера переменной.
Можно проще. Хронология хаоса:
- В C10 элементы массивов в BROWSE прекрасно показывались;
- В C11 отломали BIND для элементов массивов в BROWSE;
- В С11.1 доломали использование элементов массивов в BROWSE окночательно.

Я не против прогресса. Я даже не спрашиваю откуда растут руки у тех кто это делает.
Обидно, что всё это делается молча и находится потом методом тыка. :(
«V» значит Вендетта !
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5395
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Clarion 11-12

Сообщение Игорь Столяров »

finsoftrz писал(а): 16 Июнь 2021, 11:10 На мое восприятие, 0 специально исключали, а теперь забыли, зачем, и изменили.
Звучит вполне логично. И даже может быть правдой. :)
То же самое - ну напишите Вы: изменили работу метода DISABLE, что бы не искать ...
«V» значит Вендетта !
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2598
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Clarion 11-12

Сообщение Дед Пахом »

Стандартный ресайзер: кнопки не перерисовываются, пока мышью над ними не проведёшь.

UPD: не совсем так. Кнопки перерисовываются, если окно ресайзить, перемещая границы окна, и не перерисовываются, если окно максимайзить или ресторить.
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5395
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Clarion 11-12

Сообщение Игорь Столяров »

Дед Пахом писал(а): 16 Июнь 2021, 11:48 Стандартный ресайзер: кнопки не перерисовываются, пока мышью над ними не проведёшь
Я видел такое для кнопок на панели TOOLBAR в AppFrame. В окнах - нет.
Какой из этих ресайзеров стандартный ?

1.jpg
«V» значит Вендетта !
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2598
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Clarion 11-12

Сообщение Дед Пахом »

Стандартный в смысле шаблон из поставки. А стратегия "Resize".
С уважением, ДП
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2598
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Clarion 11-12

Сообщение Дед Пахом »

Дед Пахом писал(а): 16 Июнь 2021, 11:48 UPD: не совсем так. Кнопки перерисовываются, если окно ресайзить, перемещая границы окна, и не перерисовываются, если окно максимайзить или ресторить.
Упс, точно так же и в C10.
С уважением, ДП
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 1584
Зарегистрирован: 16 Сентябрь 2005, 15:35
Откуда: Москва

Clarion 11-12

Сообщение Губин Игорь »

Дед Пахом писал(а): 16 Июнь 2021, 12:25 Упс, точно так же и в C10.
Элементарно, Ватсон! Надо послать евент всё пройдёт...
Это я только кажусь дураком! На самом деле я полный идиот!
Ответить