| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Delphi+TColor |
| Автор: Kesh 7.11.2002, 10:52 | ||||
Тут вот пришлось повозиться с цветами... Предлагалось сделать так:
А хочется что-то типа такого:
Как? Заранее спасибо... |
| Автор: Vit 7.11.2002, 12:53 |
| 4 бита : 1 2 3 4 4й бит - красный цвет 3й бит - зелёный цвет 2й бит - синий цвет Цвета смешиваются функцией - RGB(красный, зелёный, синий) Если бит =0 то соответственно в функцию RGB соответствующий цвет отправляется $0, а если 1 то надо смотреть на бит 1 - если бит1=1 ещ отправляется $FF а если бит1=0 то отправляется $80 Например для 5 в двоичном виде будет 0101, значит для получения цвета зададим RGB($80,0,$80). Ещё примеры: 0 clBlack 0000 RGB($0,$0,$0) 1 clBlue 0001 RGB($0,$0,$80) 2 clGreen 0010 RGB($0,$80,$0) 3 clRed 0100 RGB($80,$0,$0) ... 15 clWhite 1111 RGB($FF,$FF,$FF) Хорошее упражнение для изучения двоичной системы счисления.... |
| Автор: neutrino 7.11.2002, 18:04 |
| type TColorArray = array[0..15] of TColor; var ColorArray: TColorArray = (clBlack, clRed, clGreen, clBlue ... ); CurrentColor: TColor; i: Integer; begin for i:=0 to 15 do CurrentColor := ColorArray[i]; end; |
| Автор: Vit 8.11.2002, 00:24 | ||
|
| Автор: neutrino 8.11.2002, 02:33 |
| Все правильно, только с массивом будет быстрее работать. Ведь цветов всего 16, так что особого смысла в написании функции нет. |
| Автор: Vit 8.11.2002, 02:49 |
| Человеку нужна функция - я сделал функцию... Конечно с массивом быстрее и удобнее. |
| Автор: Kesh 10.11.2002, 07:24 |
| Всем огромное спасибо... Каждый из ваших ответов был действительно полезен... |