Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.09.2011, 12:25
Аватар для mak-karpov
mak-karpov mak-karpov вне форума
Активный
 
Регистрация: 18.09.2008
Сообщения: 235
Версия Delphi: 2010 и 7
Репутация: 1242
По умолчанию chr()

Всем привет! Я пишу программу управления 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)

Но выходит какая-то хрень... Что я делаю не так?
__________________
Кнопка "+" - весы в правом верхнем углу сообщения...
Ответить с цитированием
  #2  
Старый 21.09.2011, 13:21
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
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 в нужном порядке.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:35.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter