Вверх ↑
Разработчик
Ответов: 26113
Рейтинг: 2126
#1: 2022-01-20 03:57:24 ЛС | профиль | цитата
Делая тестовые схемы по управлению контролами, столкнулся с темой, которая меня забодала уже давно. Итак на схеме места между элементами немного, но вот такая каскадная конструкция вымораживает:
Add(IndexToChanel,8310914,294,350)
{
Point(Index)
link(Index,2603975:State,[])
}
Add(Switch,2603975,294,301)
{
DataOn=Integer(1)
DataOff=Integer(0)
Point(doOn)
Point(State)
}

или для MT-потока
Add(Switch,15189058,392,301)
{
DataOn=Integer(1)
DataOff=Integer(0)
Point(doOn)
Point(State)
}
Add(MT_IndexToChanel,11598861,392,350)
{
Point(Index)
link(Index,15189058:State,[])
}
Да, это обычный 2-х канальный коммутатор. Может когда-то, на небольших схемах это и прокатывало, но на современных схемах это уже не совсем катит, особенно, если это двухэтажная конструкция. Было решено сделать компонент, который совмещает в себе три компонента Switch, IndexToChanel и MT_IndexToChanel, но только на два канала, и этот компонент я назвал -- ChanelSwitch. Компонент получился до нельзя простым, там кода кот наплакал, но свою функцию он выполняет исправно. Ловите на SVN, я его туда добавил.

--- Добавлено в 2022-01-20 04:42:53

На данный момент управление контролами позволяют делать неплохие пользовательские отрисовки, оставляя не тронутой ни одной точки событий самого контрола, те без обвязки и засорения схемы связями и лишними элементами. Вот хотя бы кастомная отрисовка элемента Label, можно без проблем взять и переподключить модуль управления на другой Label, он автоматически подстроится под текущие параметры:



Артефакты на видео -- это приколы программы ScreenToGif, в оригинале таких артефактов нет.

Думаю, что вскоре можно будет попробовать интересующимися данного функционала, включая все, что тут уже описывали. Все это выйдет отдельным тестовым патчем, с экспериментальными схемами. Вот только схемной кастомизацией отрисовки, будете заниматься уже сами. Возможно, если будет желание, стартовые схемки для основных контролов нарисую, а там из полезного, КМК, только панель и осталась, из которой спокойно можно сварганить групповой бокс, к примеру. Жаль только, что мне пока не удалось полностью победить обычный Button, он ни за какие коврижки не хочет отдавать свой контекст в обычном режиме, только при наличии XP-стиля. Короче, эксперименты продолжаются.
карма: 22

1
Голосовали:fox-video
Редактировалось 11 раз(а), последний 2022-01-20 13:19:16