Страница 1 из 5
					
				Альтернативный дизайнер окон
				Добавлено: 03 Ноябрь 2022, 20:07
				 finsoftrz
				Понемногу ковыряю эту тему. Вначале из любопытства, а потом и бросить жалко. 
 
Как писал ранее, идея в том, чтобы взять окно из среды клариона, поработать с ним у себя в программе, потом вставить с изменениями обратно. Могут быть и другие варианты использования, иметь такую библиотеку в арсенале неплохо.
 Задачка оказалась более муторной, чем вначале предполагал, так как помимо парсера и генератора window структуры потребовались еще парсеры/генераторы для list формата и основных масок вывода информации. Тем не менее, некая движуха происходит. Записал ролик, но что-то писалка в mp4 взбрыкнула. Может позже приложу ссылку. Поэтому пока несколько скриншотов.
Это сгенеренная на основании работы в дизайнере window структура.
Это окно предпросмотра.
Это форматер list контрола.
 
			 
			
					
				Альтернативный дизайнер окон
				Добавлено: 03 Ноябрь 2022, 20:08
				 finsoftrz
				Дополнительно, это же окно, открытое в среде c11.
 
			 
			
					
				Альтернативный дизайнер окон
				Добавлено: 04 Ноябрь 2022, 10:55
				 ingasoftplus
				
			 
			
					
				Альтернативный дизайнер окон
				Добавлено: 04 Ноябрь 2022, 12:15
				 Игорь Столяров
				finsoftrz писал(а): 03 Ноябрь 2022, 20:07
помимо парсера и генератора window структуры потребовались еще парсеры/генераторы для list формата
 
А не замахнуться ли с такими парсерами на свой конструктор окон и интерпретатор интерфейса ? 
			
		
				
			
 
						- smile19.gif (1.37 КБ) 7297 просмотров
 
		
		
		
			  
			 
			
					
				Альтернативный дизайнер окон
				Добавлено: 04 Ноябрь 2022, 12:26
				 ingasoftplus
				
			 
			
					
				Альтернативный дизайнер окон
				Добавлено: 04 Ноябрь 2022, 12:28
				 ingasoftplus
				
			 
			
					
				Альтернативный дизайнер окон
				Добавлено: 04 Ноябрь 2022, 12:44
				 finsoftrz
				Он и есть конструктор окон. Специфика в том, что результат хранится в стандартной Window структуре, поэтому можно взять готовое окно из среды, а можно сделать все (кроме контрол шаблонов) и использовать в приложении или вставить в среду для дальнейшей работы. В принципе, можно было бы пойти по пути мастер-процедур, по аналогии с дизайнером печатных форм, оставив дизайн окон в рантайм, а обрабатывающий код внутри приложения. Можно пойти дальше и делать полностью скриптовую систему. 
Но работающие приложения все же у нас используют другую архитектуру. Поэтому основной профит я вижу в возможности использования альтернативного дизайнера параллельно со штатным. Альтернативный похож на с6, туда можно навесить различные инструменты, ускоряющие разработку. Плюс нет пересчёта единиц измерения из net в win32 и можно меньше париться с глюками в штатном дизайнере. Альтернативный дизайнер это 100% код на кларионе - базовый класс и несколько оконных процедур (дизайнер, установка свойств контролов, установка свойств окна, дерево контролов, форматер LIST,  форматер picture, просмотр clipboard, превьювер). Некоторые настройки в отдельном ini файлике, например, список каталогов с пиктограммками.
			 
			
					
				Альтернативный дизайнер окон
				Добавлено: 04 Ноябрь 2022, 12:54
				 finsoftrz
				
Я знаю про этот инструмент. Насколько я понял, идея там вызвать диалог форматирования LIST из работающего приложения, а потом скопипастить строку формата в ide. 
В альтернативном дизайнере задумка "вернуть" в процесс разработки инструмент а-ля с6, дополнив его некоторыми удачными идеями из с11. По моему опыту работы в с11 большая доля проблем в среде крутится вокруг дизайнера окон.
В принципе, я думал про то, что в класс можно добавить метод загрузки описания окна работающего приложения, это гораздо проще, чем парить структуру Window. Но какая от этого польза в дальнейшем, не представляю.
 
			 
			
					
				Альтернативный дизайнер окон
				Добавлено: 11 Ноябрь 2022, 9:11
				 finsoftrz
				Пришла такая мысль, как можно использовать дизайнер. Включить его непосредственно в учётную систему для быстрого прототипирования диалоговых окон совместно с пользователем. Пользователи любят участвовать в процессе, совместное обсуждение каких-то новых возможностей или изменений в прикладном функционале с визуализацией  на прототипе может зайти, а также ускорить процесс согласования. Плюс это определённый маркетинговый ход, что у нас не просто программа, а технология.
Вызов дизайнера в приложении можно было бы сделать двумя способами. Первый это навестить в шаблонах на горячую клавишу в имеющихся оконных диалогах. Поскольку используется язык шаблонов, то для дальнейшего использования есть возможность передать метки use и #seq. Второй вариант включить в сервисное меню, после открытия выбрать заготовку из библиотеки (поскольку результаты сохраняются в виде обычной Window структуры, достаточно просто такую библиотеку пополнять).
После обсуждения и прототипирования совместно с клиентом (сейчас все технические манипуляции происходят с удаленным доступом) копипастим полученную структуру через буфер обмена в среду клариона целиком или частично. Здесь могут быть нюансы, в зависимости от того, что мы прототипировали. Игра идёт вокруг seq контрол шаблонов и use меток контролов.
			 
			
					
				Альтернативный дизайнер окон
				Добавлено: 11 Ноябрь 2022, 10:08
				 Игорь Столяров
				finsoftrz писал(а): 11 Ноябрь 2022, 9:11
диалоговых окон совместно с пользователем
 
Как далеко у Вас демократические процессы-то зашли. Аж страшно !  

 
			 
			
					
				Альтернативный дизайнер окон
				Добавлено: 11 Ноябрь 2022, 10:20
				 Admin
				Игорь Столяров писал(а): 11 Ноябрь 2022, 10:08
демократические процессы
 
Плюсану. Баловство это. Должен решать программист!  

 
			 
			
					
				Альтернативный дизайнер окон
				Добавлено: 11 Ноябрь 2022, 10:29
				 finsoftrz
				Речь об ускорении согласования и вовлечении активных пользователей в процесс. Ясно, что конечное решение они не принимают. Окна в пестрый "современный" дизайн разукрашивать тоже баловство по большому счету.
Я просто пытаюсь найти смысл в использовании дизайнера окон за пределами среды. Это трудно. 

 
			 
			
					
				Альтернативный дизайнер окон
				Добавлено: 11 Ноябрь 2022, 11:22
				 Игорь Столяров
				finsoftrz писал(а): 11 Ноябрь 2022, 10:29
найти смысл в использовании дизайнера окон
 
Как по мне: прикрутить к конструктору - интерпретатор (Вы же сделали такой для REPORT).
 
			 
			
					
				Альтернативный дизайнер окон
				Добавлено: 11 Ноябрь 2022, 11:45
				 finsoftrz
				Report несколько другая ситуация. В окнах интерактивная работа, вызов других окон и т.п. Делать полностью скриптовую систему наподобии 1с смысла нет. Смысл бы был для усиления имеющейся системы. Для кастомизации окон тоже как-то выглядит не очень, проще параметрическая настройка со скрытие контролов, про которую я как-то писал и которую уже использую в продакшене.
			 
			
					
				Альтернативный дизайнер окон
				Добавлено: 17 Ноябрь 2022, 18:39
				 finsoftrz
				Еще продвинулась эта тема. Поддержка работы с группами в list formatter, диалог для конструирование pictures, окна для установки пропертей по всем типам контролов. В рисовалке подключено выделение мышкой "по области" контролов, расположенных в составе родительских (tab, group, option), выделение рядов контролов (например, для ряда кнопок щелкаем по первому и по последнему, выделяются все), перемещение контролов мышкой с фиксацией одной из координат. Часть окон из реальных проектов уже открываются в дизайнере (не все).
На следующем скриншоте list formatter и picture formatter.
Удобно то, что окно предпросмотра открывается в отдельном потоке, можно расположить рядом и продолжить работу не закрывая его. Это пример окна из реального проекта.