Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Цвета [D6, XP]


Achpile ©   (2009-09-04 22:38:00) 

Люди, подскажите, плз, как можно разбить цвет типа TColor на RGB составляющие, чтоб перевести его в DWORD (TD3DColor)?


Anatoly Podgoretsky   (2009-09-05 09:21:00) [1]

Сообственно это означает написание некоторого количества функции, по одной на формат, вместо макросов и подавать на вход нужной ColorToRGB


Anatoly Podgoretsky   (2009-09-05 09:19:00) [2]

> KilkennyCat  (05.09.2009 03:28:09)  [9]

А согласно этому это никакое не RGB, а множество форматов.


Achpile   (2009-09-05 06:52:00) [3]

Спасибо вам всем огромное =)


KilkennyCat   (2009-09-05 03:28:00) [4]

таж фигня, только из DirectX
http://msdn.microsoft.com/en-us/library/bb172518%28VS.85%29.aspx


Германн   (2009-09-05 02:33:00) [5]

А что есть TD3DColor?


antonn   (2009-09-05 02:06:00) [6]


> Kolan ©   (04.09.09 22:46) [2]
>
> А так — GetR, GetG, GetB по моему. Из Graphics.

GetRValue(), GetGValue() и GetBValue()


Омлет   (2009-09-05 01:09:00) [7]

> (X shl 24)

Это тоже можно убрать.. В TColor этот байт не задействован.

type
TRGBX = packed record
  R, G, B, X: Byte;
end;

function Color2D3DColor(AColor: TColor): TD3DColor;
begin
with TRGBX(ColortoRGB(AColor)) do
  Result := (R shl 16) or (G shl 8) or B;
end;


Омлет   (2009-09-05 01:01:00) [8]

Э.. название только поменяй на Color2D3DColor, я забыл )


Омлет   (2009-09-05 00:59:00) [9]

Вроде так:

type
 TRGBX = packed record
   R, G, B, X: Byte;
 end;

function ContrastColor(AColor: TColor): TD3DColor;
begin
 with TRGBX(ColortoRGB(AColor)) do
   Result := (X shl 24) or (R shl 16) or (G shl 8) or B;
end;


Anatoly Podgoretsky   (2009-09-04 22:57:00) [10]

> Achpile  (04.09.2009 22:38:00)  [0]

ColorToRGB а затем любым путем выделить составляющие, например предложеным GetX


Kolan   (2009-09-04 22:46:00) [11]

А так — GetR, GetG, GetB по моему. Из Graphics.


Kolan   (2009-09-04 22:45:00) [12]

TColor — это число.


Наверх

Титульная страница Поиск, карта сайта Написать письмо