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