ader Опубликовано 3 декабря, 2017 Поделиться Опубликовано 3 декабря, 2017 Собрал стиль для чекбокса. TLayout, на нём TLabel и TRectangle, для галочки TPath. Назначил StyleName, отображение работает. А вот как сделать, чтоб работало переключение? Цитата Ссылка на комментарий
0 dnekrasov Опубликовано 9 декабря, 2017 Поделиться Опубликовано 9 декабря, 2017 Проверьте HitTest у TPath - должен быть False. И я бы еще посоветовал вместо TLabel использовать TText Цитата Ссылка на комментарий
0 ader Опубликовано 9 декабря, 2017 Автор Поделиться Опубликовано 9 декабря, 2017 HitTest у всех false. и TText вместо TLabel, это я перепутал. Но переключаться не хочет. попробовал добавить анимацию с триггером на IsChecked - сначала заработало, потом перестало.. Цитата Ссылка на комментарий
2 dnekrasov Опубликовано 9 декабря, 2017 Поделиться Опубликовано 9 декабря, 2017 Вот мой стиль для чекбокса - работает нормально. Я, правда вместо TPath - TImage использую. Сравните со своим, может чем поможет. Или скиньте свой - может чё посоветую. object TLayout StyleName = 'checkboxstyle' Align = Center Padding.Top = -1.000000000000000000 Size.Width = 50.000000000000000000 Size.Height = 50.000000000000000000 Size.PlatformDefault = False TabOrder = 6 object TLayout Align = Left Position.Y = -1.000000000000000000 Size.Width = 22.000000000000000000 Size.Height = 51.000000000000000000 Size.PlatformDefault = False object TRectangle Align = Center Fill.Kind = Gradient Fill.Gradient.Points = < item Color = xFFEBEBEB Offset = 0.000000000000000000 end item Color = xFFFBFBFB Offset = 1.000000000000000000 end> Fill.Gradient.StartPosition.X = 0.500000000000000000 Fill.Gradient.StopPosition.X = 0.499999970197677600 HitTest = False Size.Width = 16.000000000000000000 Size.Height = 16.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFFB9B9B9 XRadius = 2.000000000000000000 YRadius = 2.000000000000000000 object TColorAnimation StyleName = 'focused' Duration = 0.000000000000000000 PropertyName = 'Stroke.Color' StartValue = xFF999999 StopValue = xFF222222 Trigger = 'IsFocused=True' TriggerInverse = 'IsFocused=False' end end object TImage StyleName = 'check' MultiResBitmap = < item Width = 8 Height = 8 PNG = { 89504E470D0A1A0A0000000D4948445200000008000000080806000000C40FBE 8B000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 008049444154285363200418A134063032324AF9FFFFFF7D26209BC9C2C28213 220C0140C93E4646C6D94C4C4C93988C8D8DE7FEFCF9F32550D00949B210C8FC 0534A10C64C273A04ADE2F5FBE6C064AAE46920C3A77EEDC56901B1881A6CC00 D269400C027049108719443C7FFE7CAB949494C8BF7FFF3481DC309824118081 0100A1F434E007FD62490000000049454E44AE426082} end> Align = Center HitTest = False MarginWrapMode = Fit Opacity = 0.000000000000000000 Size.Width = 12.000000000000000000 Size.Height = 12.000000000000000000 Size.PlatformDefault = False WrapMode = Center object TFloatAnimation Duration = 0.000000000000000000 PropertyName = 'Opacity' StartValue = 0.000000000000000000 StopValue = 1.000000000000000000 Trigger = 'IsChecked=True' TriggerInverse = 'IsChecked=False' end end end object TText StyleName = 'text' Align = Client Locked = True HitTest = False Margins.Left = 5.000000000000000000 Size.Width = 23.000000000000000000 Size.Height = 51.000000000000000000 Size.PlatformDefault = False Text = 'Text' TextSettings.Font.Family = 'Arial' TextSettings.Font.Size = 13.000000000000000000 TextSettings.FontColor = xFF202020 end end Цитата Ссылка на комментарий
0 ader Опубликовано 9 декабря, 2017 Автор Поделиться Опубликовано 9 декабря, 2017 Спасибо, немного поменял у себя структуру стиля, заработало. Но, получается, без TFloatAnimation никак? Что управляет видимостью "галочки" в "родном" стиле? Там вроде нет анимации.. Цитата Ссылка на комментарий
0 dnekrasov Опубликовано 9 декабря, 2017 Поделиться Опубликовано 9 декабря, 2017 Там TCheckStyleObject, а у него есть набор свойств типа TBitmapLinks - вот ими и управляется. Цитата Ссылка на комментарий
0 ader Опубликовано 9 декабря, 2017 Автор Поделиться Опубликовано 9 декабря, 2017 а если у меня векторные элементы чекбокса? Цитата Ссылка на комментарий
0 ader Опубликовано 9 декабря, 2017 Автор Поделиться Опубликовано 9 декабря, 2017 а, кажется понял, если векторные - TFLoatAnimation, растровые - TCheckStyleObject и TBitmapLinks.. так? Цитата Ссылка на комментарий
1 dnekrasov Опубликовано 9 декабря, 2017 Поделиться Опубликовано 9 декабря, 2017 1 минуту назад, ader сказал: а если у меня векторные элементы чекбокса? Я пользуюсь TFloatAnimation - другого выхода не нашёл (может просто плохо или мало искал?). Цитата Ссылка на комментарий
1 dnekrasov Опубликовано 9 декабря, 2017 Поделиться Опубликовано 9 декабря, 2017 4 минуты назад, ader сказал: а, кажется понял, если векторные - TFLoatAnimation, растровые - TCheckStyleObject и TBitmapLinks.. так? Да, именно так! Цитата Ссылка на комментарий
0 ader Опубликовано 9 декабря, 2017 Автор Поделиться Опубликовано 9 декабря, 2017 Спасибо за помощь! Я тоже других вариантов не нашёл.. и вообще все примеры и уроки про кнопки, как будто ничего другого нет.. Цитата Ссылка на комментарий
0 Barbanel Опубликовано 4 мая, 2018 Поделиться Опубликовано 4 мая, 2018 В 09.12.2017 в 21:06, ader сказал: Спасибо за помощь! Я тоже других вариантов не нашёл.. и вообще все примеры и уроки про кнопки, как будто ничего другого нет.. Просто все остальное работает аналогично, можно хоть на панель реакцию на нажатие повесить. Цитата Ссылка на комментарий
Вопрос
ader
Собрал стиль для чекбокса. TLayout, на нём TLabel и TRectangle, для галочки TPath. Назначил StyleName, отображение работает. А вот как сделать, чтоб работало переключение?
Ссылка на комментарий
11 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.