CheckBox - раскраска | |
---|---|
bolotinsn Сообщений: 46 Дата регистрации: 30.04.2010 |
Уважаемые знатоки, подскажите, пожалуйста!
На форме есть CheckBox. У него: BackStyle=0-Transparent Enabled=.F. Style=0-Standart Стандартный объект. На сереньком фоне серенькая надпись, серенькое окошко с серенькой галочкой. Пишу: DisabledBackColor=210,210,255 DisabledForeColor=255,255,255 1 Вопрос: окошко и галочка цвет не изменили, они остались серенькими! Почему? Как изменить цвет именно этих элементов объекта? 2 Вопрос: почему толщина линии надписи толше, чем на Label и TextBox? Шрифт и размер шрифта совпадают, FontBold везде .F. Если кто-нибудь может, подскажите! Заранее благодарен. |
Re: CheckBox - раскраска | |
---|---|
bolotinsn Сообщений: 46 Дата регистрации: 30.04.2010 |
Извините, забыл.
WinXP Ru Prof SP3, VFP 9.0 SP3+Русификатор с сайта |
Re: CheckBox - раскраска | |
---|---|
Chemberzhy Сообщений: 13142 Откуда: Измаил Дата регистрации: 28.04.2009 |
Штатно никак.
Никакой разницы в начертании шрифтов подписи перечисленных объектов у себя, к примеру, не наблюдаю
Win7 Ru Prof, VFP 9.0 SP3. Никакого руссификатора Исправлено 2 раз(а). Последнее : Chemberzhy, 10.09.17 22:22 |
Re: CheckBox - раскраска | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Несколько странно пытаться задавать цвет фона для прозрачного объекта.
Потому что эту часть элемента управления рисует система. В зависимости от своих настроек, и в частности "тем" (но даже если поддержка тем отключена - на уровне формы, или только чекбокса, всё равно будет использоваться системный вид чекбокса). Хочешь своё - используй картинки. Она не толще. Но задав белый цвет (назачем, его вообще практически невозможно прочесть на штатном "сером" фоне!) и одновременно сделав элемент "выключенным", ты заставил фокс дополнительно к самой надписи сделать ей "тень" - при том тень именно белую (ну, м.б. просто "светлую", тут уж я не в курсе - всё одно работает сглаживание, и реального цвета пиксела не увидеть). Если для Label тоже задать Enabled=.F. и, соответственно, белый цвет для DisabledForeColor то получим в точности такое же "утолщение шрифта". P.S. не в курсе что такое "Русификатор с сайта" - но пользоваться любыми модификациями что IDE фокса (назачем там русификация? Никогда не понимал), что рантайма, я бы не советовал. Поймаешь глюк - вряд ли кто тебе поможет, т.к. аудитория у такого рода поделок крайне мала, а шанс что там помимо собственно общеизвестных глюков фокса будут ещё и свои, дополнительные, достаточно велик. Ну разве что под этой "русификацией" понимается переведенный chm хелп - он то "повредить" напрямую не сможет, только косвенно, некорректно что-то растолковав ------------------ WBR, Igor |
Re: CheckBox - раскраска | |
---|---|
bolotinsn Сообщений: 46 Дата регистрации: 30.04.2010 |
А нештатно чио-нибудь можете предложить? |
Re: CheckBox - раскраска | |
---|---|
bolotinsn Сообщений: 46 Дата регистрации: 30.04.2010 |
С прозрачностью я лохонулся. Однако, если фон подложки принимает цвет фона формы, значит (или нет?) что свойство BackColor должно распространять на активный элемент объекта? Или Билли рулит? Непонятно. Кстати, такая-же лобуда и с ComboBox, Spinner.
За тень спасибо. Точно бы не догадался. Кстати, в данном случае получилось убрать тень ColorSource=1, но согласен, зависит от настроек Windows.
Про это можно подробней? |
Re: CheckBox - раскраска | |
---|---|
Chemberzhy Сообщений: 13142 Откуда: Измаил Дата регистрации: 28.04.2009 |
Например, ActiveX какой сторонний, или вот так, например. |
Re: CheckBox - раскраска | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Да элементарно в принципе. Например - в контейнер помещаются: картинка галочки любой раскраски для показа помеченного элемента, картинка для показа снятой пометки, плюс лейбл. В метод MouseDown прописывается смена видимости этих картинок, при желании - даже смена цветов лейбла. Чтобы запоминать пометку - в Init контейнера можно создавать нужное свойство через AddProperty(), которое затем и менять по нажатию мышкой, также по нему и определять активную картинку при загрузке - с галочкой или без, в зависимости от значения, берущегося скажем из таблицы. Данный контейнер можно также сохранить как визуальный класс VCX и кидать затем его экземпляры на форму. Вообще создавать класс всегда удобнее, когда таких элементов несколько. Ну или на будущее может пригодиться. Надпись в класс можно передавать через какое-то его свойство. Обычно я например использую свойства Tag и Comment, которые все равно нигде не применяются. В них удобно бывает вписывать параметры в размещенные на форме экземпляры визуального класса. Соответственно в Init контейнера прописывается что-то наподобие: this.lable1.Caption=this.Tag Единственный нюанс - в контейнере клик мышкой по вложенным в нем элементам отрабатывает на этих элементах, т.е. не передается напрямую в метод MouseDown контейнера. Поэтому я обычно в методы MouseDown всех вложенных элементов просто прописываю однотипную передачу всех параметров клика по ним в соответствующий метод родителя: this.Parent.MouseDown(nButton,nShift,nXCoord,nYCoord), в котором и происходит основная обработка и смена картинок в данном случае. Если есть необходимость менять цвета при неактивности - нужно будет добавить соответственно еще пару картинок. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) Исправлено 1 раз(а). Последнее : Crispy, 12.09.17 10:06 |
Re: CheckBox - раскраска | |
---|---|
Taran Автор Сообщений: 13626 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Куда попер-то буковки строчить. По ссылке Че как раз это и сделано. Красиво и рабоче. Конечно можно и поулучшать. Но начать именно с его решения. |
Re: CheckBox - раскраска | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Зачем такое неочевидное решение, если можно просто добавить этому классу свойство Caption, ну или там cCaption если опасаешься использовать зарезервированные слова ------------------ WBR, Igor |
Re: CheckBox - раскраска | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Ну и как ты его добавишь контейнеру, так, чтобы в его экземпляре на форме при визуальном редактировании можно было вписывать туда значение? Именно визуально! Если бы можно было добавлять произвольные свойства еще и любому объекту, как это например сделано для формы - это было бы конечно шикарно. Но увы, визуальные объекты в фоксе - в этом отношении как бы лишенцы. И таки совсем бы уж было замечательно если бы в них можно было добавлять еще и свои методы (так же точно, как в ту же форму). Но это понятно совсем уже из области фантастики. Хотя по идее, никаких логических или структурных противоречий в работе подобное вызывать не должно было бы. Можно только предположить, что чисто в плане реализации для разработчиков подобное видимо было бы далеко не самым простым делом, почему оно и не было осуществлено. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: CheckBox - раскраска | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
А чо не попереть-то! Когда там перед тем было написано: А раз активекс, чего его смотреть. Вот и написал - общую так сказать инструкцию. А ты прям попер буром. Что там не правильно что ли все написано? ;) Правильно же! А буквы для того и существуют, чтобы ими писать. К тому же, не знаю кого как, а лично меня например всегда раздражает использование чужих ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) Исправлено 1 раз(а). Последнее : Crispy, 13.09.17 08:02 |
Re: CheckBox - раскраска | |
---|---|
Taran Автор Сообщений: 13626 Откуда: Красноярск Дата регистрации: 16.01.2008 |
При редактировании класса. Menu->Class->New Property Ну и методы аналогично. Menu->Class->New Method В классе создал метод. В экземпляре меняй. В чем проблема? Или я не так понял? Исправлено 1 раз(а). Последнее : Taran, 13.09.17 09:20 |
Re: CheckBox - раскраска | |
---|---|
Taran Автор Сообщений: 13626 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Вот не надо ля-ля. ;) У Сани Ч написано: Цитата:
Да это понятно. Все правильно. Просто оно уже есть. ТС на форуме 7 лет. Мизер постов и судя по вопросу не проф. А ты ему идею на пол-страницу. Явно же не будет реализовывать. Я чисто для экономии твоей энергии. Ну и несколько отвлек ты ТС от решения Че. Туда-туда подергается, да и бросит. Хотя собственно и начинать не очень понятно зачем было. Стандартный интерфейс вполне стандартен. Исправлено 1 раз(а). Последнее : Taran, 13.09.17 09:23 |
Re: CheckBox - раскраска | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
А вот и неправда! У него не было красного и черного. ;) Так бы я заметил. А без этого проскочил. Точнее не доскочил, застряв на активексе. Да собственно про это я уже выше писал. Ты сам точно так же в итоге продемонстрировал невнимательность к написанному. Кроме того, если смотреть предложенный класс, там несколько меньше функционала, чем я предложил в описании. Так что, пусть даже автор и не прочтет и не примет к сведению, но возможно когда-нибудь, через много лет, кто-нибудь доселе неизвестный, найдя этот пост, таки прочтет и это ему поможет. А вот кстати про добавление свойства таким макаром в готовый класс как-то не доводилось ранее. Так что за то благодарствуем! ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: CheckBox - раскраска | |
---|---|
Taran Автор Сообщений: 13626 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Да ну брось ты ерунду. Красным выделил я для акцента. Черное было. Пост от Сани Че не редактировался. Он первозданен. Просто ты там не глянул. Где я "продемонстрировал невнимательность" здесь или в другом месте? Конкретно! То что меньше функционала или больше дело десятое. В решении сразу видно всю идею и есть красивые картинки. Ежели начинать с нуля, то до результата будет гораздо дальше. Какие там "через много лет". Апофиз уж близится. В любом случае проще взять что-то рабочее и допилить. ++ добавчик Исправлено 1 раз(а). Последнее : Taran, 13.09.17 10:55 |
Re: CheckBox - раскраска | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
|
Re: CheckBox - раскраска | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Сделав сей контейнер классом, естественно. Для контейнера на форме нельзя "визуально" добавить свойство, только программно (и вообще никак нельзя добавить метод) - но для контейнера который рисуется как класс - можно и свойства и методы добавлять, а потом, поместив экземпляр на форму (или в другой класс-контейнер) там успешно эти свойства и методы править. К сожалению в фоксе нет дизайн-тайм методов, и результат обработки таких свойств и таких методов во время "рисования" (в дизайн-тайм) не будет виден, но в рантайме всё заработает. Т.е. в кэтом конкретном случае прописывание Caption для контейнера не вызовет автоматическую установку Caption для вложенной надписи в режиме рисования формы. Не получится и "автоподогнать размер" в этом режиме, но во время работы кода всё будет ок. Впрочем, есть "обходной манёвр". Если соорудить для такого класса "построитель" (aka Builder) то он вполне может "синхронно" менять и свойство класса и свойство вложенного внутрь него объекта - устраняя эту неприятную проблему - вроде всё как надо выставили в свойствах, а на экране "не то" рисуется... Ты так не пугай! Замени лучше на апофеоз, а то невесть что можно подумать ------------------ WBR, Igor |
Re: CheckBox - раскраска | |
---|---|
Taran Автор Сообщений: 13626 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Действительно есть ошибочка. Имелось ввиду "Апофис". ;)
Не только и не совсем про "автоподогнать размер", но... И чтобы "сквозная" установка caption работала соорудить и задействовать
Исправлено 2 раз(а). Последнее : Taran, 13.09.17 13:25 |
Re: CheckBox - раскраска | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Какой из оных? Все такие миляшки [attachment 28319 Apophis.jpg] Так оно ж не для дизайн-тайма то... ------------------ WBR, Igor |
© 2000-2024 Fox Club  |