:: Visual Foxpro, Foxpro for DOS
Есть ли свойство у лэйбла для инверсии цвета текста для прогресс-бара?
Asmodey

Сообщений: 49
Откуда: Ноябрьск
Дата регистрации: 25.05.2007
Пока, скажем, синяя полоска прогресса не дойдёт до процентов - проценты белого цвета не видны на светлом фоне 3д-обводки. Чё делать? Можно ли что бы при 50% - пятёрка была белой, а 0% например серыми?
Ratings: 0 negative/0 positive
Re: Есть ли свойство у лэйбла для инверсии цвета текста для прогресс-бара?
AndyNigmatec
Автор

Сообщений: 1574
Откуда: Волгоград
Дата регистрации: 28.06.2015
Стандартного ничего насколько знаю, первое что приходит в голову - городить свой составной label, соответственно пересчитывать размер ...
Ratings: 0 negative/0 positive
Re: Есть ли свойство у лэйбла для инверсии цвета текста для прогресс-бара?
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
А что ты понимаешь под "инверсией цвета" ?
Инверсия "красного" - это какой цвет?
Инверсия RGB(255,0,0) - это какой цвет? (какой он в формате RGB фокса ? )
Ratings: 0 negative/0 positive
Re: Есть ли свойство у лэйбла для инверсии цвета текста для прогресс-бара?
Chemberzhy

Сообщений: 13142
Откуда: Измаил
Дата регистрации: 28.04.2009
Можно сделать из двух контейнеров с вложенными в них лабелами. Пример набросал и в виде класса прикладываю в архиве ниже:
Ratings: 0 negative/0 positive
Re: Есть ли свойство у лэйбла для инверсии цвета текста для прогресс-бара?
dimuhametov

Сообщений: 1562
Откуда: Костанай
Дата регистрации: 01.11.2008
? myFORECOLOR(RGB(0,0,0)) && задаем цвет фона, получаем на выходе цвет шрифта
FUNCTION myFORECOLOR
LPARAMETERS lnBackColor
IF m.lnBackColor=16777215
RETURN 0
ENDIF
LOCAL lnb, lng, lnr
m.lnr=MOD(m.lnBackColor,256)
m.lng=MOD(INT(m.lnBackColor/256),256)
m.lnb=MOD(INT(m.lnBackColor/65536),256)
RETURN IIF(1 - ( 0.299 * m.lnr + 0.587 * m.lng + 0.114 * m.lnb)/255< 0.5,0,RGB(255,255,255))


------------------
Незнание делает жизнь такой интересной.
Ratings: 0 negative/0 positive
Re: Есть ли свойство у лэйбла для инверсии цвета текста для прогресс-бара?
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Asmodey
Пока, скажем, синяя полоска прогресса не дойдёт до процентов - проценты белого цвета не видны на светлом фоне 3д-обводки. Чё делать? Можно ли что бы при 50% - пятёрка была белой, а 0% например серыми?

А что за прогресс-бар? Если OLE-объект, то можно управлять только встроенными в него параметрами. Либо накладывать на него свои элементы.

Если же такой, для которого вычисления делаешь сам, то элементарно. В коде, где вычисляются проценты для подачи на прогресс-бар - просто вставить условие на проверку "меньше или больше 50%", внутри которого и менять цвет текста лейбла.
При желании раздельного цвета цифр - соответственно сделать "сборные" цифры - отдельный лйбл для десятков, отдельные для единиц и для процентов. Для дальнейшего удобства обычно такие сборные дела лучше помещать внутрь контейнера с прозрачным фоном и без бордюра.
При этом посмотреть, при скольки процентах должен меняться цвет каждого из трех знаков, и поставить эти значения в условие.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Есть ли свойство у лэйбла для инверсии цвета текста для прогресс-бара?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Кое чего можно добиться если поместить надпись на задний план, накрывающий её шейп на передний план, и поиграться с его DrawMode - там есть интересные режимы "смешивания цветов".
PUBLIC oFrm
oFrm = CREATEOBJECT("frm")
oFrm.Show()
DEFINE CLASS frm as Form
BackColor = RGB(255,255,255)
Width = 200
Height = 60
ADD OBJECT lbl AS Label WITH Autosize = .T., Caption = "12345", FontSize = 16, Left = 40, Top = 20, BackStyle = 0
ADD OBJECT shp AS Shape WITH Width = 80, Height = 60, BackColor = RGB(255,255,0), DrawMode = 7, BorderStyle = 0
PROCEDURE Init
* Not needed if we place lbl below shp in visual designer,
* or put ADD OBJECT lines as above
* This.lbl.ZOrder(1)
ENDPROC
ENDDEFINE

В примере можно ещё поиграться с ForeColor надписи.

P.S. Городить огород их нескольких надписей - по символу на каждый и менять вручную их цвет - это убого. Тем более что для "плавного" прогрессбара будут моменты когда всё равно "половина буковки" окажется над шейпом "неподходящего" цвета, и станет некрасивой и нечитаемой.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Есть ли свойство у лэйбла для инверсии цвета текста для прогресс-бара?
AndyNigmatec
Автор

Сообщений: 1574
Откуда: Волгоград
Дата регистрации: 28.06.2015
Да че там городить то - вон тов. Chemberzhy даж рабочий пример плавного прогресбара на двух контейнерах прикрепил ... я ранее мыслил про два labela один над другим - нафига их куча на кажный сивол то?
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 26 (Гостей: 26)

© 2000-2024 Fox Club 
Яндекс.Метрика