Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26066
Рейтинг: 2120
#121: 2022-01-29 14:26:31 ЛС | профиль | цитата
flint2 писал(а):
Удали если можно.

Не, не могу. У меня не красные штаны, а только жёлтые.
карма: 22

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#122: 2022-01-30 05:39:55 ЛС | профиль | цитата
Ну что, я уже подошел очень близко к возможности создания своих контролов на базе HiAsm-a. Вот что мне удалось получить из градиентного элемента DocumentTemplat-a с наложенным на него текстовым элементом:



Это настоящая отрисовка с альфа-каналом, не имитация. Как она поведет себя на контекстах контролов, я пока не знаю. Но хуже Rush-контролов точно не будет.
В совокупности с RemoteAccessManager-ом открылся прямой путь к схемному созданию своих собственных красивых контролов.

P.S. Все, пошел спать со спокойной душой.

Редактировалось 4 раз(а), последний 2022-01-30 05:48:17
карма: 22

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#123: 2022-01-31 01:12:44 ЛС | профиль | цитата
Че-то тишина. Видимо, никому не надо. Да и пусть, всё равно сделаю, чтобы было
Зато я немного покопал GDI+

Редактировалось 1 раз(а), последний 2022-01-31 01:13:26
карма: 22

0
Ответов: 2059
Рейтинг: 131
#124: 2022-01-31 01:22:52 ЛС | профиль | цитата
nesco
Че-то тишина. Видимо, никому не надо.

А чего надо говорить, картинку обсуждать? - картинка замечательная.
В посте Zip не приложен то как реагировать?
открылся прямой путь к схемному созданию своих собственных красивых контролов.
Итак всё медленно работает а ещё контролы на кубиках - большой вопрос.
Что то типа такого?
Add(MainForm,1399343,154,98)
{
Width=345
Height=90
Color=4012084
Caption="DoubleTreckBar"
BorderStyle=1
Position=1
}
Add(Label,4961311,245,154)
{
Left=280
Top=21
Width=39
Height=19
Color=4012084
Font=[MS Sans Serif,8,0,16777215,1]
Caption="0"
}
Add(ChildPanelEx,3996046,154,154)
{
link(onEvent2,4961311:doText,[])
link(onResult,11809839:doText,[])
}
BEGIN_SDK
Add(EditMultiEx,10286519,21,14)
{
EventCount=#8:onEvent2|8:onResult|
Width=678
Height=522
}
Add(Panel,7456080,266,91)
{
Left=25
Top=20
Width=225
Height=19
Color=4012084
BorderWidth=0
BevelInner=0
BevelWidth=0
Point(Width)
}
Add(Memory,5485736,364,91)
{
@Hint=#3:Max|
Default=Integer(100)
MakeExt(Default,Максимальное значение,Max)
AddHint(51,-1,35,13,@Hint)
AddHint(50,21,27,13,Default)
}
Add(MathParse,3809442,343,203)
{
@Hint=#9:Рассчет и|14:выдача позиции|
DataCount=4
MathStr="round(%1*((%4-%3)/(%2-9)))+%3"
link(onResult,6736552:doData,[])
link(X2,1239263:Var2,[])
link(X3,3072383:Var2,[])
link(X4,1751479:Var2,[])
AddHint(134,-23,163,13,MathStr)
AddHint(135,-53,82,26,@Hint)
}
Add(Memory,5549386,357,49)
{
@Hint=#3:Min|
Default=Integer(0)
MakeExt(Default,,Min)
AddHint(60,-3,32,13,@Hint)
AddHint(59,19,21,13,Default)
}
Add(IndexToChanel,15923973,182,189)
{
Point(Data)
link(onEvent1,8328581:doWork2,[])
link(Data,12454440:MouseX,[(188,173)(132,173)(132,222)(146,222)])
}
Add(Timer,12475866,77,469)
{
Interval=25
AutoStop=1
link(onTimer,8264682:doSet,[])
}
Add(Hub,14403785,294,273)
{
OutCount=4
link(onEvent1,4891158:doLeft,[(319,279)(319,251)(123,251)(123,272)])
link(onEvent2,6065964:doWork2,[])
link(onEvent3,8548219:doLeft,[])
link(onEvent4,1276147:doCalc,[])
}
Add(MathParse,10778336,252,189)
{
@Hint=#7:Рассчет|18:положения ползунка|
DataCount=3
MathStr="((%0+%1-4)<=(%2+9))*(%2+9)+\r\n((%0+%1-4)>(%2+9))*(%0+%1-5)*\r\n((%0+%1-4)<=(%3-9))+\r\n((%0+%1-4)>(%3-9))*(%3-9)"
link(onResult,12585609:doEvent1,[])
link(X2,4891158:Left,[(265,138)(118,138)(118,313)(153,313)])
link(X3,9158465:Var2,[])
AddHint(-161,-92,106,26,@Hint)
AddHint(-189,-155,156,52,MathStr)
}
Add(MathParse,881395,238,273)
{
@Hint=#7:Рассчет|18:положения ползунка|
MathStr="(((%0+%1-4)>=0)*(%0+%1-4))*\r\n((%0+%1-4)<(%2-9))+\r\n((%0+%1-4)>=(%2-9))*(%2-9)\r\n"
link(onResult,14403785:doEvent1,[])
link(X2,12454440:Left,[(251,243)(153,243)])
AddHint(-143,67,106,26,@Hint)
AddHint(-168,100,151,52,MathStr)
}
Add(IndexToChanel,11272903,182,273)
{
Point(Data)
link(onEvent1,15656758:doWork2,[])
link(Data,4891158:MouseX,[(188,257)(132,257)(132,306)(146,306)])
}
Add(Hub,12585609,301,189)
{
OutCount=3
link(onEvent1,12454440:doLeft,[(326,195)(326,167)(123,167)(123,188)])
link(onEvent2,6065964:doWork1,[(333,202)])
link(onEvent3,3809442:doCalc,[])
}
Add(GetDataEx,9158465,266,149)
{
link(Data,7456080:Width,[])
}
Add(MathParse,1276147,434,294)
{
@Hint=#9:Рассчет и|14:выдача позиции|
DataCount=4
MathStr="round(%1*((%4-%3)/(%2-9)))+%3"
link(onResult,4569024:doData,[])
link(X2,1239263:Var3,[(447,154)])
link(X3,3072383:Var3,[(454,146)])
link(X4,1751479:Var3,[(461,138)])
AddHint(52,54,163,13,MathStr)
AddHint(52,71,82,26,@Hint)
}
Add(GetDataEx,1239263,350,149)
{
Angle=3
link(Data,9158465:Var3,[])
}
Add(GetDataEx,3072383,357,141)
{
link(Data,5549386:Value,[])
}
Add(GetDataEx,1751479,364,133)
{
link(Data,5485736:Value,[])
}
Add(Image,14185923,329,406)
{
@Hint=#10:Background|
Top=3
Width=225
Height=13
Color=4012084
ViewStyle=0
Picture=[ZIPEA2D000078DAED9AED52DA4014864F2FA07FAA8804F249BE09910F2541052C6AB1D54E6BDB4BED0DF56FAFA2E71CB38888180582D359669ED9DD6443327BF2F29EDD65FCF56F13F8D3437CE40FF21E7907061FFF9D9D9FFD0CFA87709A76E124E9C0E47C085F2EC7F0FDFA0A6E6F3E333F6E2E252B707B7DC13C75FED73388EB9F22EFFD053F33646C8A81B4447CFB32613D91BE3E7D1CC249AF0BC3E49021ED0D8F8FE07A3286D1490F7AED185A0D1F9ABE0371E0421C06923573D0080BBB5724C77BBBB10E3D86B58490BE46C709DC4C2E60941E31A7A8C3C97804DDB891F50F9816BE27F4AE88B6E4756C3EC68DE5883822AD8C8307D74B0A8D7FC3633ACD10AECECF3807BD189D623B9AEA2EE976D01B7BE88D7DCC535318F67B921518E0EFDC204DB09EBE92CD3E9B8CD1A649D1F7FA5CD27B9074DAE8873EFB5D3B0AE0F26C00C749179AE15DCE79D46E4113CF7B750BEABA068E69405DB212CE1B41C662BBF1772D9375C53AEBC4EC8551E0B0FEA61E183520F2BD37F3CEFC2FB83975F0E2EF364CC6B6ACDCC8786C21FEA83D51DA86CE75D299C84DDB7108A1634FDBE47D84E85F9763B83E1FB2B45C58A60A3681E3FF1C16C7C87C84398338C69A9571D84AFE31AB478E9BA64E3517A0FE3C3C2ED6EAD4CA3E58AAC6FDA8BF95E956B21E1F7466B4E664CCB799D96B33BFCBCB224D2ED2A03BFF6C928D7AA1F040D29FAE5478EDA5897E48F929F960E83A773EA8E9502BEF639F2A986A0D8C5A15742C25ABA066D440D51EA3E92A43F5C5D7E543CD43764F1993E23050735AA6A31A6A8F7C8EF4487A23DD11B436435ED8F05C5E8F211FAC96F7607F7707CA3B1FA05CDA95AC44E901A505EDD282E3F72CFFFE3D8CD34B90F1281631E6A2246F239D89B59783C8E3FD41D7BC9B039226E93C413A15A564CD04E13D0BF7FC025EBF8EB358CC12CF21F680E711FB5045ED534A9EDEBF155AA2F91EEB0FFD8EE601B65EE3FFCB1069B7C5EB00947B8A35549A2BFA769DCB657892A5B83886FE36714C869E839031291A675AB7695E88989A0275A306C9618B3D90A0BD5AD222FD6E52AE4A5AA4BC55AF2AA0610E2B593FFA1C8FFA54CB8CAAEC3D40AB6428254657CA4B31A77539E65BA1A230A42582D6DC683F9EF436C8FEA7F60F8F1154B8]
AddHint(55,10,73,13,@Hint)
}
Add(Image,8548219,392,266)
{
@Hint=#6:Filler|
Top=7
Width=1
Height=4
ViewStyle=3
Picture=[ZIP4E00000078DA73F2F56380003B20D6006246206601D38C60710106046082D24E1E8F1902424E82D90D500C0200A67D0537]
Point(doWidth)
Point(doLeft)
AddHint(-6,71,36,13,@Hint)
}
Add(ImgBtn,12454440,140,182)
{
@Hint=#4:Left|
Left=20
Width=9
Height=19
Flat=1
Normal=[ZIPE202000078DA4D8FCB6ED350144517CC18330404499AF811FBDABE7EC48FD8719C579334818A415BA9128F015FC757F10740DC4E397111E24A4BE7ECBDCFB9BE6E0E3F9ED39D44308517C24BE119EF3AFFFBDFFCFF93450199F648FC8044BB248122F65DB2D061A203F238427B63EC611FF362C0A8DF6334788B317C8339E8631B03423566609858A68339F619381E86EDD1771C0CD1434B615B432C57313C67674F30DD270C5B77D5729E303DCD48294C1563A800DB8D19390196F2187A5EA74D3791AA192B41F479CFF6656E1C8997E006920751E73D31C10D359627B964AE788ECEA4A678F28F6DDBE28529A7DF2D76749E495181E4618E13A7F851C6ABDE084FE7BCEEF551518112FF8C9764E8498E9F949C4E27A9050F8F2D6E3CEDFA50D0E94C288984DE85F9AFFAC99C302F0926153A6B88F34258F0EBD492E4331EDA477431232E6A22C993E982B86A48AB153DCBEA74DFB089CB2549B1EC6A365B7779566DF8F9D03299AE38C97B12F1D259435E6F3AA6CDA69BB16CD569D31ECBEE8EAC5933A99754F32D69B3A56CF664F5967C213BF59EE97C472E148B1DF395F48B2B2AA15C1E28D63BCAB9E8D525E5EA8A7ABD67F7E13DD5662FFD817A29F76D8ECC64B6123D152E8F1FE55B2B0EB79FB9BEFDC2F5DD370E779F38DE487FF355FC7B4A79CF1F9F388230]
Point(onMouseMove)
Point(MouseX)
Point(doLeft)
Point(Left)
link(onMouseMove,15923973:doEvent,[])
AddHint(-82,7,33,13,@Hint)
}
Add(ImgBtn,4891158,140,266)
{
@Hint=#5:Right|
Width=9
Height=19
Flat=1
Normal=[ZIPE202000078DA4D8FCB6ED350144517CC18330404499AF811FBDABE7EC48FD8719C579334818A415BA9128F015FC757F10740DC4E397111E24A4BE7ECBDCFB9BE6E0E3F9ED39D44308517C24BE119EF3AFFFBDFFCFF93450199F648FC8044BB248122F65DB2D061A203F238427B63EC611FF362C0A8DF6334788B317C8339E8631B03423566609858A68339F619381E86EDD1771C0CD1434B615B432C57313C67674F30DD270C5B77D5729E303DCD48294C1563A800DB8D19390196F2187A5EA74D3791AA192B41F479CFF6656E1C8997E006920751E73D31C10D359627B964AE788ECEA4A678F28F6DDBE28529A7DF2D76749E495181E4618E13A7F851C6ABDE084FE7BCEEF551518112FF8C9764E8498E9F949C4E27A9050F8F2D6E3CEDFA50D0E94C288984DE85F9AFFAC99C302F0926153A6B88F34258F0EBD492E4331EDA477431232E6A22C993E982B86A48AB153DCBEA74DFB089CB2549B1EC6A365B7779566DF8F9D03299AE38C97B12F1D259435E6F3AA6CDA69BB16CD569D31ECBEE8EAC5933A99754F32D69B3A56CF664F5967C213BF59EE97C472E148B1DF395F48B2B2AA15C1E28D63BCAB9E8D525E5EA8A7ABD67F7E13DD5662FFD817A29F76D8ECC64B6123D152E8F1FE55B2B0EB79FB9BEFDC2F5DD370E779F38DE487FF355FC7B4A79CF1F9F388230]
Point(onMouseMove)
Point(MouseX)
Point(doLeft)
Point(Left)
link(onMouseMove,11272903:doEvent,[])
AddHint(-86,7,40,13,@Hint)
}
Add(MathParse,629438,343,280)
{
MathStr="%2 - %1"
ResultType=0
link(onResult,8548219:doWidth,[])
link(X1,881395:Result,[(349,264)(286,264)(286,313)(244,313)])
link(X2,10778336:Result,[(356,243)(258,243)])
}
Add(HubEx,6065964,329,280)
{
link(onEvent,629438:doCalc,[])
}
Add(ChangeMon,4569024,483,294)
{
link(onData,10286519:onResult,[(522,300)(522,27)])
}
Add(ChangeMon,6736552,399,203)
{
link(onData,10286519:onEvent2,[(494,209)(494,20)])
}
Add(HubEx,8328581,225,189)
{
link(onEvent,10778336:doCalc,[])
}
Add(LineBreak,1336150,175,147)
{
Caption="posR"
link(Out,8328581:doWork1,[(229,153)])
Primary=[1282146,7,322]
}
Add(MultiSetParam,8264682,126,469)
{
Parameters=#8:112.5;25|0:|
Count=2
link(onSet1,1282146:In,[])
link(onSet2,5957300:In,[(172,482)(172,496)])
}
Add(HubEx,15656758,225,273)
{
link(onEvent,881395:doCalc,[])
}
Add(LineBreak,14835258,175,322)
{
@Color=43690
Caption="PosL"
link(Out,15656758:doWork3,[(229,328)])
Primary=[5957300,7,168]
}
Add(InfoTip,2971993,56,441)
{
Info=#27:Установка начальной позиции|
Width=197
Height=74
Margin=5
}
END_SDK
Add(Label,11809839,206,161)
{
Left=260
Top=21
Width=10
Height=17
Color=4012084
Font=[MS Sans Serif,8,0,16777215,1]
Caption="0"
}

пусть даже в сто крат лучше - всё равно не нравится идея.
Редактировалось 2 раз(а), последний 2022-01-31 01:48:37
карма: 6

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#125: 2022-01-31 02:04:02 ЛС | профиль | цитата
flint2 писал(а):
В посте Zip не приложен то как реагировать?

Да, пока архива патча нет, хотя уже подготовлен. Хотел еще пару схемок накидать. Хорошо, выложу как есть. Но я ждал ответ не на патч, а на выложенные, исправленные Rush-контролы. Мне интересно их тестирование. А то архив качают и молчат.

--- Добавлено в 2022-01-31 02:16:08

flint2 писал(а):
Итак всё медленно работает а ещё контролы на кубиках - большой вопрос.

Смотря на чем делать. Можно на одном PaintBox-e замутить множество контролов одновременно при помощи DTM.
Вот видео-пример использования одного PaintBox-а и DTM для выбора настроек цветов



Это сделано еще до написания градиентного скругленного прямоугольного элемента DTM на GDI+

Редактировалось 1 раз(а), последний 2022-01-31 02:16:08
карма: 22

0
Ответов: 2059
Рейтинг: 131
#126: 2022-01-31 02:46:26 ЛС | профиль | цитата
nesco писал(а):
Мне интересно их тестирование. А то архив качают и молчат.

Так уже все протестировали, во всяком случае я и даже отписался. Может быть не так внятно.
А по картинке как можно рассуждать? Только красиво - не красиво.
nesco писал(а):
Можно на одном PaintBox-e замутить множество контролов одновременно при помощи DTM.

Это другой разговор, как то тоже мелькала мысля, но не закрепилась у меня в голове. Нно всё равно надо пробовать. Вроде такая идея хорошая.

Редактировалось 3 раз(а), последний 2022-01-31 02:52:05
карма: 6

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#127: 2022-01-31 04:11:45 ЛС | профиль | цитата
Как и обещал -- патч с полными правками. Это альфа-релиз. Если все будет нормально, то буду добавлять, может сам еще найду несущественное. Rush-контролы тоже вошли в патч, тк их обновления пока нет на SVN. Обновление с SVN обязательно, тк я внес дополнение в градиентный элемент DTM.

--- Добавлено в 2022-01-31 04:16:09

Вот пример отрисовки на новом обновленном элементе градиента DTM. И это полное альфа-наложение на контекст контрола, кроме текста (он накладывается отдельно на отрисовку в обычном режиме). Градиентный элемент DTM поддерживает: 4 основных градиента, 4 двойных градиента и один центральный градиент; инверсию градиента; скругление краев прямоугольника и сглаживание линий.



Как видно из примера -- время отрисовки занимает около 500 uSec.

А вот это то, за что я проел всю плешь andrestudio



--- Добавлено в 2022-01-31 04:56:29

Но, к сожалению, это не для всех контролов, а только для тех, которые поддерживают KOL-прозрачность. Поэтому совместить эти контролы с некоторыми другим не получится, в частности, с TrackBarRush, он не переваривает KOL-прозрачность. Но если его не планируется ставить, то на Label-е можно что-то интересное сделать, не хуже, чем на PaintBox-e

Редактировалось 11 раз(а), последний 2022-01-31 04:56:55
карма: 22

1
файлы: 1Patch_31-01-2022.zip [176.4KB] [277]
Голосовали:ric
Ответов: 2059
Рейтинг: 131
#128: 2022-01-31 05:22:04 ЛС | профиль | цитата
Чего то на hiPC_GradientRect ругается.
Скачал и заменил, всё равно ругается.
Завтра, вернее сегодня посмотрим в чём дело.
Тоже уже спать хочется.
карма: 6

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#129: 2022-01-31 05:23:35 ЛС | профиль | цитата
Кстати, в патч вошла панель, которая поддерживает KOL-прозрачность, на ней тоже можно что-то ваять с альфа-каналом, как на подложке, отключив бордюры.

--- Добавлено в 2022-01-31 05:25:04

flint2 писал(а):
Завтра, вернее сегодня посмотрим в чём дело.

Проверь все модули DTM, даже скрытые, которые не обновляются через поле. Я тоже днем проверю соответствие всех своих модулей с SVN.

Редактировалось 3 раз(а), последний 2022-01-31 05:28:12
карма: 22

0
Ответов: 2059
Рейтинг: 131
#130: 2022-01-31 05:40:40 ЛС | профиль | цитата
Всё работает.
Всё красиво, но надо чего нибудь поделать, а так замечательно.
P.S.
Уже сегодня:
В исходном состоянии, при нулевом заполнении, ProgressBarRush слева находится вертикальная черта в два пикселя. Как будто показывает 1%.
Add(MainForm,2953706,21,105)
{
}
Add(ProgressBarRush,11780812,98,112)
{
Left=40
Top=95
Width=290
}


Редактировалось 1 раз(а), последний 2022-01-31 13:50:16
карма: 6

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#131: 2022-01-31 14:51:02 ЛС | профиль | цитата
flint2 писал(а):
В исходном состоянии, при нулевом заполнении, ProgressBarRush слева находится вертикальная черта в два пикселя. Как будто показывает 1%.

Может поэтому включено смещение прогресса на толщину рамки в оригинале. Но это как-то некрасиво смотрится при наличии рамки. Могу вернуть назад.
Хотя, пардонсе, это же рамка полосы прогресса. Куда она должна деться при нулевом проценте, между границами же нет заливки? Поставь 1% и посмотри на результат, ты увидишь заливку.

--- Добавлено в 2022-01-31 15:04:51

Попробовал вернуть назад, все равно остается одна часть рамки, полностью не пропадает.

Редактировалось 4 раз(а), последний 2022-01-31 15:04:51
карма: 22

0
Ответов: 2059
Рейтинг: 131
#132: 2022-01-31 16:08:45 ЛС | профиль | цитата
nesco писал(а):
Попробовал вернуть назад, все равно остается одна часть рамки, полностью не пропадает.

Да я тоже откатывался одним компонентом, не помогает.
И с рамкой левый конец толще на два пикселя, т.е. уже три получается.
Дело в чём то другом.
До изменений всё работало ещё вчера. Т.е. если откатить все изменения (Zip Hiasm ставлю) дефект исчезает.
Чуть позже попробую найти, домашние дела неотложные организовались.

Редактировалось 4 раз(а), последний 2022-01-31 16:22:48
карма: 6

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#133: 2022-01-31 16:58:56 ЛС | профиль | цитата
Мне удалось оставить 1 пиксель, но при включенной общей рамке он на один пиксель перестал в нее вписываться при 100%, но зато при 0% остается узкая полоска при выключенной общей рамке. Там еще косяк нашелся -- не отрисовывались скругления внешней рамки при значениях прогресса меньше или равным радиусу скругления.

--- Добавлено в 2022-01-31 17:06:51

Добил, кажется.
Так оставить линейку в один пиксель, или убрать?

--- Добавлено в 2022-01-31 17:17:02

Вот так получилось с 0%



А вот так со 100%



Редактировалось 4 раз(а), последний 2022-01-31 17:17:02
карма: 22

0
Ответов: 2059
Рейтинг: 131
#134: 2022-01-31 17:34:33 ЛС | профиль | цитата
nesco писал(а):
Так оставить линейку в один пиксель, или убрать?

Конечно убрать.
А то я совсем откатился.

Редактировалось 1 раз(а), последний 2022-01-31 17:34:51
карма: 6

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#135: 2022-01-31 18:27:28 ЛС | профиль | цитата
flint2 писал(а):
Конечно убрать.

Вот, файл обновления с правками.
карма: 22

0
файлы: 1KOLGRushControls_2022-02-01.zip [21.6KB] [252]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)