![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
WIndows.COLOR16 - не правильная декларация ..... [D7]
Chlavik © (2004-12-24 18:29:00)Hi! В модуле Windows не правильно обьявлен тип COLOR16
вместо
type
{$EXTERNALSYM COLOR16}
COLOR16 = Shortint;
надо что бы было
type
{$EXTERNALSYM COLOR16}
COLOR16 = Smalltint;
Thank's...
DiamondShark (2004-12-24 19:52:00) [1]Да ну!
До 7-ой версии так и не исправили?
Я опечален...
Sun bittern (2004-12-24 19:48:00) [2]>> Старший бит < R8, G8, B8 < Младший бит
R :=(MyColor and $ff) shr 0;
G :=(MyColor and $ff00) shr 8;
B :=(MyColor and $ff0000) shr 16;
Sun bittern (2004-12-24 19:38:00) [3]Chlavik © (24.12.04 19:02) [2]
>> там всё таки 2байта на цвет
Вранье!
Для режима:
24 bit - RGB(8.8.8) 1 байт на цвет
32 bit - RGB(8.8.8.8) 1 байт на цвет
Может изменятся в зависимости от видюхи.
Старший бит < R8, G8, B8 < Младший бит
GetRValue() и ей подобные спасут?
Chlavik (2004-12-24 19:02:00) [4]Вызови GradientFill а сразу станет понятно что там всё таки 2байта на цвет ...При чём младший байт не юзается...
Я делал так
VerText[0].Red:=(SColor and $FF) shl 8;
VerText[0].Green:=SColor and $FF00;
VerText[0].Blue:=(SColor and $FF0000) shr 8;
Sun bittern (2004-12-24 18:46:00) [5]Точно?
type
{$EXTERNALSYM COLOR16}
COLOR16 = Shortint;
Shortint = 2^8 = 256;
надо что бы было
type
{$EXTERNALSYM COLOR16}
COLOR16 = Smalltint = ;
Smallint = 2^16 = 65536
Ответ ниже, грубо говоря 8 bit на каждый цветовой кнал, но это не совсем так:
Зависит от видюхи:
RGB(6.5.5)
RGB(1.5.5.5)
RGB(5.6.5)
RGB(8.8.8.8)
PTriVertex = ^TTriVertex;
{$EXTERNALSYM _TRIVERTEX}
_TRIVERTEX = packed record
x: Longint;
y: Longint;
Red: COLOR16; // 8 bit
Green: COLOR16; // 8 bit
Blue: COLOR16; // 8 bit
Alpha: COLOR16; // 8 bit
end;