Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Как изменить цвет бэкграунда или символов отдельной ячейки грида программно??  [new]
Dancer
Member

Откуда:
Сообщений: 60
Какие существуют методы изменения цвета бекграунда или символов отдельной ячейки ГРИДА программно?? Подскажите, плиз.
13 авг 03, 17:24    [299443]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить цвет бэкграунда или символов отдельной ячейки грида программно?  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Вкратце - это решается через написание специальной функции для DymamicBackColor() соответствующего столбца.

В этой функции и прописывается, что если выполняется некое условие для текущей записи, то ячейка окрашивается в один цвет, не выполняется - в другой. Можно раскрасить и в несколько цветов.
13 авг 03, 18:19    [299555]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить цвет бэкграунда или символов отдельной ячейки грида программно?  [new]
Dancer
Member

Откуда:
Сообщений: 60
2ВлвдимирМ: Спасибо за совет. Но можно, ли обойтись как-то без этих "жутких" проверок? Может есть ещё какая-то технология?
И можно ли вообже работать с ячейкой как с отдельным объектом, менять какие-то свойста и т.д.?
13 авг 03, 18:26    [299566]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить цвет бэкграунда или символов отдельной ячейки грида программно?  [new]
Burn
Guest
>можно ли вообже работать с ячейкой как с отдельным объектом, менять какие-то свойста и т.д.?
ThisForm.MyGrid.<ColumnN>.Text1.<свойство>
Напимер:
ThisForm.MyGrid.Column1.Text1.BackColor=RGB(0,0,0) - цвет фона
ThisForm.MyGrid.Column2.Text1.ForeColor=RGB(255,255,255) - цвет цвет шрифта

В общем случае в GRID-е может быть не только TextBox, но и другие элементы управления
13 авг 03, 20:35    [299679]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить цвет бэкграунда или символов отдельной ячейки грида программно?  [new]
Dancer
Member

Откуда:
Сообщений: 60
спасибо, Bum, но существует ли возможность обратиться к ЛЮБОЙ ячейке(не только та которая вібрана в данній момент), например, типа
...Сolumn1. CELL(1,1) .BackColor=RGB(0,0,0) ?
Есть ли такая возможность в Фоксе?
14 авг 03, 10:31    [300002]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить цвет бэкграунда или символов отдельной ячейки грида программно?  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Нет. Изменить цвет отдельной ячейки напрямую в Grid невозможно.

Это связано с логикой работы данного объекта. У него просто нет такого понятия как "адрес ячейки".

Дело в том, что в качестве источника для GRID всегда выступает таблица (ну или временная таблица). Это значит, что Grid оперирует такими понятиями как "поле" (столбец) и "запись" (строка). Соответственно "ячейка" - это всего-лишь визуализация "пересечения". Но никак не самостоятельный объект.

Т.е. добиться нужного эффекта можно, но только через DynamicBackColor(). Если же это не устраивает, то следует воспользоваться ActiveX компонентами, гдн такая адресация существует. Но работа с ActiveX в FoxPro сопряжена уже с другими проблемами.

Впрочем, в 8 версии уже сделан шаг в сторону такой адресации (можно "подсветить" текущую строку), но не думаю, что они зайдут так далеко, что сделают адресацию к отдельной ячейке. Это просто противоречит логике работы Grid.
14 авг 03, 11:28    [300136]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить цвет бэкграунда или символов отдельной ячейки грида программно?  [new]
Dancer
Member

Откуда:
Сообщений: 60
Печально... Но спаибо всем!
14 авг 03, 12:53    [300361]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить цвет бэкграунда или символов отдельной ячейки грида программно?  [new]
Flex2
Member

Откуда:
Сообщений: 172
Не слушай их - дурному научат.
Можно. Для этого тебе нужно всего-то навсего сделать сдедующее:
Создать свой класс на основе базового textbox для соей колонки.
В классе создать метод, Value_assign.
Потом к прикрепленному полю столбца просто пихать нужное значение, а в методе Value_assign. его обрабатывать.
После этого вместо базового textbox"a тебе нужно вопихнуть объект на основе твоего класса и все дела.

DEFINE CLASS Value_assign
Lparameter m.NewVal
DO CASE
CASE m.NewVal = 1
THIS.BackColor = 4227200 && Это в 8, в 6 RGB(...) используй
CASE m.NewVal = 2
THIS.BackColor = 65280
ENDCASE
this.Value = m.NewVal
ENDPROC
надеюсь описал попоулярно.
14 авг 03, 14:21    [300624]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить цвет бэкграунда или символов отдельной ячейки грида программно?  [new]
Flex2
Member

Откуда:
Сообщений: 172
УУпс)
Опечаточка вышла, пардоньте.

DEFINE CLASS  Mytetx as textbox


Procedure Value_assign
Lparameter m.NewVal
DO CASE
CASE m.NewVal = 1
THIS.BackColor = 4227200 && Это в 8, в 6 RGB(...) используй
CASE m.NewVal = 2
THIS.BackColor = 65280
ENDCASE
this.Value = m.NewVal
ENDPROC

ENDDEFUNE
14 авг 03, 14:24    [300638]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить цвет бэкграунда или символов отдельной ячейки грида программно?  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Это называется "те же ... только сбоку"

В данном примере опять же происходит изменение цвета по значению текущей строки, а не по адресу ячейки (чего собсвтвенно добивается Dancer)

Если Вы обратили внимание, то исходная задача ставится так - изменить цвет фона конкретной ячейки вне зависимости от ее содержимого.
14 авг 03, 14:34    [300659]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить цвет бэкграунда или символов отдельной ячейки грида программно?  [new]
Flex2
Member

Откуда:
Сообщений: 172
теже :) случайно не Ваши ?
14 авг 03, 14:42    [300680]     Ответить | Цитировать Сообщить модератору
 Дата и время последнего сохранения файла на диске??  [new]
Dancer
Member

Откуда:
Сообщений: 60
Ребятки! Подскажите функцию, которая возвращает дату и время последнего его сохранения на диске.
16 сен 03, 12:18    [340337]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить цвет бэкграунда или символов отдельной ячейки грида программно?  [new]
brahew
Member

Откуда: 61;90
Сообщений: 724
FDATE()
18 сен 03, 08:20    [343657]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить