:: Visual Foxpro, Foxpro for DOS
Цвет объектов контейнера в гриде
sharereg
Автор

Сообщений: 86
Дата регистрации: 12.06.2009
Здравствуйте,
ситуация: есть грид, в одной из колонок лежит контейнер, а в нем текстбокс. Каким образом заставить этот текстбокс изменять цвета (ForeColor, BackColor; DisabledBackColor, DisabledForeColor) аналогично др. колонкам. Цветовая гамма грида может меняться. Например, выделенная строка вся синяя, текст - белый; невыделенные строки - белые, текст - синий. Для "обычных" колонок это реализуемо через SelectedForeColor, DisabledForeColor грида, а вот что делать с текстбоксом в контейнере?
Ratings: 0 negative/0 positive
Re: Цвет объектов контейнера в гриде
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
С этим не очень разгонишься, Dynamiс'и не спляшут, если об этом речь
Ratings: 0 negative/0 positive
Re: Цвет объектов контейнера в гриде
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
У контейнера есть .Parent ... может в нем поискать
Ratings: 0 negative/0 positive
Re: Цвет объектов контейнера в гриде
sharereg
Автор

Сообщений: 86
Дата регистрации: 12.06.2009
Нет, пока Dinamic не нужен. Простое отображение данных. Просто при изменении цветовой гаммы грида можно получить "невидимую" или плохо читаемую комбинацию BackColor и ForeColor.
Ratings: 0 negative/0 positive
Re: Цвет объектов контейнера в гриде
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Так парент - колонка грида, а у нее Дайнемиксы, а они не любят контейнеры с их содержимым
Ratings: 0 negative/0 positive
Re: Цвет объектов контейнера в гриде
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
в Dynamic... колонки можно прочитать EVAL-выражение, и выполнить его в EVALUATE()

Кстати, не знаю, штатная ли возможность, но Dynamic-выражения колонки выполняются в SELECT (имя курсора грид), и контейнеры тоже подпадут под эту фишку фокса... И трудно придумать, чтобы было иначе в реализации Dynamic-конструкций в Grid фокса, мб.



Исправлено 1 раз(а). Последнее : of63, 16.06.17 21:17
Ratings: 0 negative/0 positive
Re: Цвет объектов контейнера в гриде
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
sharereg
Просто при изменении цветовой гаммы грида можно получить "невидимую" или плохо читаемую комбинацию BackColor и ForeColor.
Наследуй, типа
thisform.grid1.Column5.MyContainer... св-во = thisform.grid1. ... св-во
где-нибудь на Refresh или еще где-то, где меняется цветовая гамма
Ratings: 0 negative/0 positive
Re: Цвет объектов контейнера в гриде
sharereg
Автор

Сообщений: 86
Дата регистрации: 12.06.2009
Да, parent контейера вроде не поможет. Контейнер вообще Transparent. Здесь должно быть для текстбокса из контейнера что-то типа:
textbox.DisabledForeColor = IIF(__выбранная строка или нет__, grid.HighlightForeColor, grid.ForeColor). Вот с этим условием: __выбранная строка или нет__ и проблемка.
Ratings: 0 negative/0 positive
Re: Цвет объектов контейнера в гриде
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Грид в данном случае Parent колонки контейнера. С кого еще спросишь...
Ratings: 0 negative/0 positive
Re: Цвет объектов контейнера в гриде
sharereg
Автор

Сообщений: 86
Дата регистрации: 12.06.2009
Наследовать-то непроблема. Но как организовать вилку: активная строка грида или нет? Не реагирует, к сожаления, текстбокс в контейнере на Highlight... грида. А если я его наследую, то когда строка станет неактивной то цвет не изменится. Нужно условие "активности".
Ratings: 0 negative/0 positive
Re: Цвет объектов контейнера в гриде
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Экспериментируй, если получится "заставить этот текстбокс изменять цвета (ForeColor, BackColor; DisabledBackColor, DisabledForeColor) аналогично др. колонкам" - расскажи. Волонтерское дело то, раз никто этого еще не делал.

Активная строка - в грид, когда он делает REFRESH (в т.ч. переокраску), меняется RECNO() при переборе строк, видимых в прямоугольнике грид, этим можно воспользоваться...



Исправлено 1 раз(а). Последнее : of63, 16.06.17 21:28
Ratings: 0 negative/0 positive
Re: Цвет объектов контейнера в гриде
akvvohinc

Сообщений: 4219
Откуда: Москва
Дата регистрации: 11.11.2008
Если AllowCellSelection = .T., то будут работать события AfterRowColChange и BeforeRowColChange.
В них можно сохранять/сбрасывать в некотором свойстве грида какое-то уникальное значение для записи, например RECNO().
Тогда условие "Активная запись" построить на сравнении RECNO() со значением этого свойства.
Если эти события для грида не работают, то можно придумать другие варианты, вплоть до Таймера.
Как пример:

Но только думаю, что это все равно не пригодится, если не использовать Dynamic-свойства.
Ведь любое выражение, записанное в нединамические свойства, например BackColor, будет вычислено только один раз в момент (пере)присвоения. Соответственно, оно будет относиться ко всем строкам грида.



Исправлено 6 раз(а). Последнее : akvvohinc, 17.06.17 00:47
Ratings: 0 negative/0 positive
Re: Цвет объектов контейнера в гриде
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Для начала - для чего было пихать в колонку контейнер, чтобы потом героически бороться со "странным" поведением вложенных текстбоксов?
Вообще при Sparse=.T. контейнер с его внутренним барахлом будет рисоваться ТОЛЬКО в активной ячейке. И не нужно становится на голову чтобы чего-то там определять и вручную раскрашивать


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Цвет объектов контейнера в гриде
sharereg
Автор

Сообщений: 86
Дата регистрации: 12.06.2009
Используется класс FalseTree. Вот к этому контейнеру и хотелось бы применить цветовую гамму как к остальным колонкам грида.
Ratings: 0 negative/0 positive
Re: Цвет объектов контейнера в гриде
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
FalseTree - Xandy (Тарасов)
Если этот парень еще здесь появляется...
А он - супер, я с ним в одном городе - Киеве. Встречи что-то не получилось.
Я его идеи использую, но ответ тут не дам.
У меня все по FalseTree работает, но я с трудом его штучки адаптировал под себя и давно.
Шедевр! Красиво и эффективно. Личка?



Исправлено 2 раз(а). Последнее : Ydin, 17.06.17 18:29
Ratings: 0 negative/0 positive


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

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

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