Всем привет! Я пишу программу управления LCD-дисплеем через COM-порт. Теперь о главном. Цвет у этого дисплея кодируется так:
Код:
RRRRRGGG GGGBBBBB
16 8 7 0
Потом его надлежит передать двумя символами в COM. Когда я пишу что-то типа #$FF#$FF (белый) - то все нормально. Я написал такую процедуру:
Код:
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)
Но выходит какая-то хрень... Что я делаю не так?