Раскраска строк Grid-а | |
---|---|
Саян Автор Сообщений: 57 Дата регистрации: 26.07.2007 |
Здравствуйте уважаемые корифеи программирования. Есть интересная задачка! Как-то написал программу для инвентаризации оргтехники, с тех пор она обросла огромным количеством функций, ремонты, отчеты, перемещения, склад и прочее. Так вот идея такова, в основную таблицу добавил поле COLOR - для хранения цвета строчки в Grid. Хочу из контекстного меню менять цвет строки, чтобы их цвет записывался в поле COLOR и соответственно выводил "раскрашенный реестр", ну как легенда: Красный фон - списать, желтый - уточнить то-то и т.д.
Цвет получаю CetColor() и храню в виде строки 'RGB(XXX,XXX,XXX)', предварительно обработав функцией. Вот так пытаюсь покрасить нужную мне строку и записываю цвет во временный курсор (пока что), но красится весь Grid (((, ConvRGB() - переделывает код цвета от CetColor() в 'RGB(XXX,XXX,XXX)'
В Init формы пытаюсь грузить курсор и красить так:
|
Re: Раскраска строк Grid-а | |
---|---|
VeterVFP Сообщений: 413 Откуда: Москва Дата регистрации: 26.12.2006 |
Так Dynamic-и должны получать .T./.F. в результате, чтобы либо красить либо нет.
|
Re: Раскраска строк Grid-а | |
---|---|
Саян Автор Сообщений: 57 Дата регистрации: 26.07.2007 |
Да вот тут сразу цвет подставляется а не логика,
forum.foxclub.ru
|
Re: Раскраска строк Grid-а | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
Задаешь один цвет, но хочешь раскраски в несколько? В dynamicBackColor должно быть выражение, вычисляющее нужный цвет для текущей строки.
------------------ Лень - это неосознанная мудрость. |
Re: Раскраска строк Grid-а | |
---|---|
Саян Автор Сообщений: 57 Дата регистрации: 26.07.2007 |
Я понял, не получится произвольно закрасить в разные цвета, надо сделать ЛЕГЕНДУ и вычислять её... так получается, в контекстном меню сделать несколько пунктов и цветов и в зависимости от кода красить, так?
|
Re: Раскраска строк Grid-а | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
И при чем тут контекстное меню?
------------------ Лень - это неосознанная мудрость. |
Re: Раскраска строк Grid-а | |
---|---|
Божья_коровка Сообщений: 25731 Дата регистрации: 23.08.2001 |
Вот пример раскраски грида -
Для чего вам контекстное меню? ------------------ Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается... Исправлено 1 раз(а). Последнее : Божья_коровка, 03.08.18 11:52 |
Re: Раскраска строк Grid-а | |
---|---|
Sawradym Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
Добавьте еще одно поле, например ColorValue, со значением того что Вы сейчас храните в виде строки 'RGB(XXX,XXX,XXX)'. Тогда раскраска заработает в таком виде:
------------------ |
Re: Раскраска строк Grid-а | |
---|---|
Саян Автор Сообщений: 57 Дата регистрации: 26.07.2007 |
Хотел сделать так: yadi.sk, чтобы можно было красить в произвольный, как понял придется вот так: yadi.sk
Я вначале описал, открыл реестр, щелкнул ПКМ, выбрал цвет для строки... все, цвет произвольный. При следующем открытии базы, эти строки раскрасились в нужные мне цвета - выбранные ранее. Исправлено 1 раз(а). Последнее : Саян, 03.08.18 12:01 |
Re: Раскраска строк Grid-а | |
---|---|
Саян Автор Сообщений: 57 Дата регистрации: 26.07.2007 |
Ну вот так храню: yadi.sk
|
Re: Раскраска строк Grid-а | |
---|---|
Sawradym Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
Из Украины яндекс не видно. Думаю так будет более понятно что я имел ввиду:
------------------ Исправлено 1 раз(а). Последнее : Sawradym, 03.08.18 12:14 |
Re: Раскраска строк Grid-а | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
Ну так и в чем дело? Нарисуй функцию, получающую значение цвета из твоего "хранилища цветов" по значениям в текущей строке грида и подставь её(функцию!) в dynfmicbackcolor. Тебе про Фому, а ты всё про Ерёму....
------------------ Лень - это неосознанная мудрость. |
Re: Раскраска строк Grid-а | |
---|---|
Саян Автор Сообщений: 57 Дата регистрации: 26.07.2007 |
Выбрав цвет из цветовой палитры, я получаю его код (формат числовой), я написал функцию перевода этого числа в формат 'RGB(XXX.XXX.XXX)' и записываю его в таким виде в базу, функцию выбора цвета я поместил в контекстное меню (скрины прикреплены выше)... В том-то и дело, что чего-то не догоняю, не закрашивается выбранная строка в указанный цвет, е если вручную вбить несколько значений в базу и прогрузить реестр, то строки как были в цвете по-умолчанию, так и остались.
Исправлено 1 раз(а). Последнее : Саян, 03.08.18 12:27 |
Re: Раскраска строк Grid-а | |
---|---|
pasha_usue Сообщений: 3649 Откуда: Е-бург Дата регистрации: 06.10.2006 |
По-сути, для вычисления цвета каждой ячейки фокс делает EVALUATE(DynamicBackColor). А цвет это число в диапазоне от 0 до 16777215. А вы ему подсовываете текстовую строку с текстом функции. Чтоб выковырять из неё число, надо сделать EVALUATE(EVALUATE(DynamicBackColor)). До такого тонкого извращения создатели фокса не додумались. Тупо. В поле таблицы должно быть число, вычисленное от функции RGB, или ещё от чего полученное. А свойство DynamicBackColor должно содержать текстовую строку с названием поля (и курсора). Исправлено 1 раз(а). Последнее : pasha_usue, 03.08.18 12:47 |
Re: Раскраска строк Grid-а | |
---|---|
Sawradym Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
Даже не знаю где тут можно заблудиться
------------------ |
Re: Раскраска строк Grid-а | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Я понял где ТС запутался)
DynamicBackColor работает по условию.
И совсем не надо в RGB переводить. так что главное, определись с условиями, по которым ты будешь красить. Потом для каждого условия, назначь цвет, ну и... все) Если хочешь произвольно, каждую строку, так надо, с этой строкой, хранить цвет. То бишь, доп поле. Например color ну и код примерно
------------------ |
Re: Раскраска строк Grid-а | |
---|---|
Саян Автор Сообщений: 57 Дата регистрации: 26.07.2007 |
Исправлено 1 раз(а). Последнее : Саян, 03.08.18 16:01 |
Re: Раскраска строк Grid-а | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Конечно. Никакой динамики нет. У вас однозначный цвет=&StrCode Вы получили цвет, и его вставили в раскраску. Все в этот цвет и раскрасилось. Так у вас закодировано. Там все не верно. еще раз, прочтите что писал pasha_usue Не надо никаких ConvRGB Сформулируйте четко, для начала, задачу. ------------------ |
Re: Раскраска строк Grid-а | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Да не надо там никакого условия, у автора темы и так в каждой записи прописан её цвет.
Владимир (Sawradym) всё предельно понятно и кратно описал. Выкинуть всю мутотень с получением строки "RGB(...)" - в поле хранить именно число (хватит диапазона типа Integer) которое тот же GetColor и возвращает. В Dynamic* прописать просто ИМЯ ПОЛЯ (а это строка, скажем "tmpComp.Color") - никаких макро, никаких eval не нужно. ------------------ WBR, Igor |
Re: Раскраска строк Grid-а | |
---|---|
Саян Автор Сообщений: 57 Дата регистрации: 26.07.2007 |
- все классно описано, работает, пробовал за что и плюс в карму ) Вот Вы говорите не нужно никакой конвертации в строку, а как тогда отдать цвет в Динамик, если отдаешь его Интегером - ошибка, не тот тип данных, если отдаешь его в кавычках - тоже ошибка на тип данных, если макроподстановка без конвертации, ничего не происходит, если через преобразование в РГБ( и т.д. работает, но там дальше опять роги, вверху писал.
Пы.Сы. как наверное трудно объяснять не программисту в чем его ошибка ((( Исправлено 4 раз(а). Последнее : Саян, 06.08.18 10:43 |
© 2000-2024 Fox Club  |