Мы уже научились менять цвет и даже в предыдущей части узнали, что константа ciBiack равна черному цвету, a ciRed— красному. Но есть еще много констант, которые определяют стандартные цвета для более удобного их использования. Вот именно с ними нам предстоит сейчас познакомиться и узнать, как хранится цвет в памяти машины.
Цвет хранится в виде типа TColor. Хотя в названии типа в начале стоит буква т, этот тип не объектный, а просто число из четырех байт, но реально нас будут интересовать только последние три.
Вы, наверное, должны знать, что в компьютерной графике цвет представляется тремя составляющими: красным, зеленым, голубым (RGB— Red, Green, Blue). В разных пропорциях из этих трех базовых цветов можно получить любой другой. Например, если взять красного и зеленого по максимуму, а синего вообще не брать, то получится желтый цвет.
Каждый из цветов представляется в виде одного байта, так что для хранения трех цветов достаточно 3 байтов. Но зачем же тогда для TColor выделено 4 байта? Это сделано потому, что в компьютере регистры четные и могут хранить только 1 или 2, или 4 байта. Так что у переменной цвета один байт избыточен (первый) и чаще всего он равен нулю. В дальнейшем он может быть использован для обозначения прозрачности или других целей на усмотрение разработчика.
Конечно же, программисты могли поместить в 6 байт две точки цвета (3 + 3), но этого не стали делать для будущего использования 32-битного цвета. Сейчас же более распространены 24-битные градации.