Цвет объектов контейнера в гриде | |
---|---|
sharereg Автор Сообщений: 86 Дата регистрации: 12.06.2009 |
Здравствуйте,
ситуация: есть грид, в одной из колонок лежит контейнер, а в нем текстбокс. Каким образом заставить этот текстбокс изменять цвета (ForeColor, BackColor; DisabledBackColor, DisabledForeColor) аналогично др. колонкам. Цветовая гамма грида может меняться. Например, выделенная строка вся синяя, текст - белый; невыделенные строки - белые, текст - синий. Для "обычных" колонок это реализуемо через SelectedForeColor, DisabledForeColor грида, а вот что делать с текстбоксом в контейнере? |
Re: Цвет объектов контейнера в гриде | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
С этим не очень разгонишься, Dynamiс'и не спляшут, если об этом речь
|
Re: Цвет объектов контейнера в гриде | |
---|---|
of63 Сообщений: 25254 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
У контейнера есть .Parent ... может в нем поискать
|
Re: Цвет объектов контейнера в гриде | |
---|---|
sharereg Автор Сообщений: 86 Дата регистрации: 12.06.2009 |
Нет, пока Dinamic не нужен. Простое отображение данных. Просто при изменении цветовой гаммы грида можно получить "невидимую" или плохо читаемую комбинацию BackColor и ForeColor.
|
Re: Цвет объектов контейнера в гриде | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
Так парент - колонка грида, а у нее Дайнемиксы, а они не любят контейнеры с их содержимым
|
Re: Цвет объектов контейнера в гриде | |
---|---|
of63 Сообщений: 25254 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
в Dynamic... колонки можно прочитать EVAL-выражение, и выполнить его в EVALUATE()
Кстати, не знаю, штатная ли возможность, но Dynamic-выражения колонки выполняются в SELECT (имя курсора грид), и контейнеры тоже подпадут под эту фишку фокса... И трудно придумать, чтобы было иначе в реализации Dynamic-конструкций в Grid фокса, мб. Исправлено 1 раз(а). Последнее : of63, 16.06.17 21:17 |
Re: Цвет объектов контейнера в гриде | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
Наследуй, типа thisform.grid1.Column5.MyContainer... св-во = thisform.grid1. ... св-во где-нибудь на Refresh или еще где-то, где меняется цветовая гамма |
Re: Цвет объектов контейнера в гриде | |
---|---|
sharereg Автор Сообщений: 86 Дата регистрации: 12.06.2009 |
Да, parent контейера вроде не поможет. Контейнер вообще Transparent. Здесь должно быть для текстбокса из контейнера что-то типа:
textbox.DisabledForeColor = IIF(__выбранная строка или нет__, grid.HighlightForeColor, grid.ForeColor). Вот с этим условием: __выбранная строка или нет__ и проблемка. |
Re: Цвет объектов контейнера в гриде | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
Грид в данном случае Parent колонки контейнера. С кого еще спросишь...
|
Re: Цвет объектов контейнера в гриде | |
---|---|
sharereg Автор Сообщений: 86 Дата регистрации: 12.06.2009 |
Наследовать-то непроблема. Но как организовать вилку: активная строка грида или нет? Не реагирует, к сожаления, текстбокс в контейнере на Highlight... грида. А если я его наследую, то когда строка станет неактивной то цвет не изменится. Нужно условие "активности".
|
Re: Цвет объектов контейнера в гриде | |
---|---|
of63 Сообщений: 25254 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Экспериментируй, если получится "заставить этот текстбокс изменять цвета (ForeColor, BackColor; DisabledBackColor, DisabledForeColor) аналогично др. колонкам" - расскажи. Волонтерское дело то, раз никто этого еще не делал.
Активная строка - в грид, когда он делает REFRESH (в т.ч. переокраску), меняется RECNO() при переборе строк, видимых в прямоугольнике грид, этим можно воспользоваться... Исправлено 1 раз(а). Последнее : of63, 16.06.17 21:28 |
Re: Цвет объектов контейнера в гриде | |
---|---|
akvvohinc Сообщений: 4219 Откуда: Москва Дата регистрации: 11.11.2008 |
Если AllowCellSelection = .T., то будут работать события AfterRowColChange и BeforeRowColChange.
В них можно сохранять/сбрасывать в некотором свойстве грида какое-то уникальное значение для записи, например RECNO(). Тогда условие "Активная запись" построить на сравнении RECNO() со значением этого свойства. Если эти события для грида не работают, то можно придумать другие варианты, вплоть до Таймера. Как пример: Но только думаю, что это все равно не пригодится, если не использовать Dynamic-свойства. Ведь любое выражение, записанное в нединамические свойства, например BackColor, будет вычислено только один раз в момент (пере)присвоения. Соответственно, оно будет относиться ко всем строкам грида. Исправлено 6 раз(а). Последнее : akvvohinc, 17.06.17 00:47 |
Re: Цвет объектов контейнера в гриде | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Для начала - для чего было пихать в колонку контейнер, чтобы потом героически бороться со "странным" поведением вложенных текстбоксов?
Вообще при Sparse=.T. контейнер с его внутренним барахлом будет рисоваться ТОЛЬКО в активной ячейке. И не нужно становится на голову чтобы чего-то там определять и вручную раскрашивать ------------------ WBR, Igor |
Re: Цвет объектов контейнера в гриде | |
---|---|
sharereg Автор Сообщений: 86 Дата регистрации: 12.06.2009 |
Используется класс FalseTree. Вот к этому контейнеру и хотелось бы применить цветовую гамму как к остальным колонкам грида.
|
Re: Цвет объектов контейнера в гриде | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
FalseTree - Xandy (Тарасов)
Если этот парень еще здесь появляется... А он - супер, я с ним в одном городе - Киеве. Встречи что-то не получилось. Я его идеи использую, но ответ тут не дам. У меня все по FalseTree работает, но я с трудом его штучки адаптировал под себя и давно. Шедевр! Красиво и эффективно. Личка? Исправлено 2 раз(а). Последнее : Ydin, 17.06.17 18:29 |
© 2000-2024 Fox Club  |