|
#1
|
||||
|
||||
chr()
Всем привет! Я пишу программу управления 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 в нужном порядке. Пишу программы за еду. __________________ |