![]() |
![]() |
|
Определение цвета | ☑ | ||
---|---|---|---|---|
0
mishaPH
31.10.10
✎
12:33
|
Коллеги, сломал себе мозг. Каким образом определяется код цвета когда задаем цвет строки.
например .Цвет(R,G,B) с этим понятно. а вот когда цвет определяется 1 кодом, как я понял это по какой-то формуле смешение (R,G,B). как из (R,G,B) вычислить этот код |
|||
1
Aleksey_3
31.10.10
✎
12:38
|
это где?
|
|||
2
Aleksey_3
31.10.10
✎
12:39
|
Типа R 255, G 204, B 0 -> ffcc00
|
|||
3
mishaPH
31.10.10
✎
12:40
|
Вариант 1
Цвет(<?>,,) Синтаксис: Цвет(<R>,<G>,<B>) Назначение: Установка режима отображения цвета элемента диалога. Возвращает: текущее числовое значение RGB цвета элемента диалога (на момент до исполнения метода). Параметры: <R> - число, задающее цвет красной компоненты; <G> - число, задающее цвет зеленой компоненты; <B> - число, задающее цвет синей компоненты. Замечание: Доступ к методу возможен только в контексте Модуля формы через атрибут Форма. Вариант 2 Цвет(<?>) Синтаксис: Цвет(<Цвет>) Назначение: Установка режима отображения цвета элемента диалога. Возвращает: текущее числовое значение RGB цвета элемента диалога (на момент до исполнения метода). Параметры: <Цвет> - число, задающее цвет (-1 определяет цвет, заданный для формы). Замечание: Доступ к методу возможен только в контексте Модуля формы через атрибут Форма. |
|||
4
mishaPH
31.10.10
✎
12:40
|
(2) 16 ти ричный это понятно. там число десятичное
|
|||
5
miki
31.10.10
✎
12:42
|
(4)Преобразровать в hex-строку, а потОм Лев(,2),Прав(,2),Сред()...
|
|||
6
skunk
31.10.10
✎
12:44
|
||||
7
mishaPH
31.10.10
✎
12:44
|
(5) ? например оранжевый ff9900 код.
|
|||
8
mishaPH
31.10.10
✎
12:47
|
(6) мерси! нашел там формулу
|
|||
9
Aleksey_3
31.10.10
✎
12:47
|
FFFFFF = 16777215 оно?
|
|||
10
Aleksey_3
31.10.10
✎
12:48
|
(7) 16750848
|
|||
11
mishaPH
31.10.10
✎
12:50
|
нифига оранжевый ff9900 = 255,153,0 = 39423
|
|||
12
mishaPH
31.10.10
✎
12:50
|
в(6) раскраска раздел
|
|||
13
miki
31.10.10
✎
12:50
|
(11)не прав
|
|||
14
mishaPH
31.10.10
✎
12:53
|
(13) да ты что. а у меня все получилось и цвет 1с вывела правильный
|
|||
15
mishaPH
31.10.10
✎
12:54
|
внимательно читаем (6) там есть формула. там не просто перевод из 16тиричного в двоичный.
|
|||
16
mishaPH
31.10.10
✎
12:55
|
для 1с палитры
RGB = (Blue*65535) + (Green*256) + (Red) |
|||
17
miki
31.10.10
✎
12:56
|
(14)
И формулы не понимаешь, и дальтоник, по-ходу... 0xff9900 = 16750848, прав (10) |
|||
18
mishaPH
31.10.10
✎
12:56
|
(17) инженерным калькулятором я могу пользоватся. тоже. 10 не прав.
|
|||
19
mishaPH
31.10.10
✎
12:57
|
(17) открой 7ку, и выведи параметр цвет(16750848) и удивись что за цвет получился.
|
|||
20
miki
31.10.10
✎
12:58
|
(16) извините, в фотошопе проверял...
|
|||
21
mishaPH
31.10.10
✎
12:58
|
еще раз внимательно читаем (6) и ищем там формулу (16)
|
|||
22
mishaPH
31.10.10
✎
12:59
|
(20) причем тут фотошоп?
|
|||
23
miki
31.10.10
✎
12:59
|
(19)не подозревал, что БН и цвет ни как у людей сделает...
сорри ещё раз. |
|||
24
mishaPH
31.10.10
✎
13:00
|
(23) ага. вот я тоже и голову сломал. первоначально тоже думал как ты.
|
|||
25
Cthulhu
31.10.10
✎
13:03
|
1с7 отображает не все цвета а только те, которые составляют палитру (набор цветов в "свойствах" элементов, допускающих раскраску - он одинаков). С остальными цветами 1с7 обходится варварски - преобразует к ближайшему цвету из палитры.
поэтому для определения цветов и раскрасок разумнее всего один раз нарисовать обработку, которая предоставляет в диалоге выбор из набора элементов (атрибутов диалога и/или ячеек), раскрашенных всеми доступными из палитры цветами и результат выбора предоставляет в виде фрагмента кода, доступного для копипасты (в нотации с одноночисловым представлением). такую обработку можно доработать до вида, который при принятии в параметрах (при открытии) произвольного R+G+B или номерного представления цвета - не открывая диалога возвращает в параметре числовое представление ближайшего цвета 1с-овской палитры. делается один раз и закрывает этот вопрос навсегда. |
|||
26
miki
31.10.10
✎
13:05
|
+
Извиняюсь и перед БН. Действительно, в хексе ничинается с синего. COLORREF — стандартный тип для представления цветов в Win32. Использует для определения цвета в RGB виде. Размер — 4 байта. При определении какого-либо RGB цвета, значение переменной типа COLORREF можно представить в шестнадцатеричном виде так: 0x00bbggrr wiki:RGB |
|||
27
Aleksey_3
31.10.10
✎
13:11
|
тест wiki:RGB
|
|||
28
Torquader
31.10.10
✎
13:23
|
(25) Так это Microsoft придумал:
GetNearestColor The GetNearestColor function returns a color value identifying a color from the system palette that will be displayed when the specified color value is used. COLORREF GetNearestColor( HDC hdc, // handle of device context COLORREF crColor // color to be matched ); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |