![]() |
|
|
|
|
#1
|
||||
|
||||
|
Всем привет! Я пишу программу управления LCD-дисплеем через COM-порт. Теперь о главном. Цвет у этого дисплея кодируется так:
Код:
RRRRRGGG GGGBBBBB 16 8 7 0 Код:
function TForm1.color16c(C: TColor): String;
var Cl : Word;
begin
Cl := ((GetRValue(C) and $F8) shl 8) + ((GetGValue(C) and $FC) shl 3) +
((GetBValue(C) and $F8) shr 3);
Result := chr(Cl shr 8) + chr(Cl and $FF);
end;
...
color16c(clWhite)Но выходит какая-то хрень... Что я делаю не так? |
|
#2
|
||||
|
||||
|
Код:
function Color2Word(AColor: TColor): Word;
begin
Result:=((GetRValue(AColor) and $f8) shl 8) or
((GetGValue(AColor) and $fc) shl 3) or
((GetBValue(AColor) and $f8) shr 3);
end;Код:
var W: Word; BH, BL: Byte; begin W:=Color2Word($aa55aa); BH:=HIBYTE(W); BL:=LOBYTE(W); end; и пиши в порт BH и BL в нужном порядке. |