Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2007, 17:29   #1
$teelR@t
Новичок
Джуниор
 
Регистрация: 19.09.2007
Сообщений: 1
Плохо Хранение TColor в Access

Подскажите как можно преобразовать формат Tcolor в формат, который поддерживает базы данных Access(integer,string....)
$teelR@t вне форума Ответить с цитированием
Старый 19.09.2007, 17:48   #2
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

Если Edit1.text это String то что такое Edit1.font.color?


TColor - это Integer, чтоб задать нужный цвет можно пользовать константы, а можно в числовом виде:

Edit1.font.color:=$223344

где 22 - яркость красного цвета, может быть в пределах от 00 до FF
где 33 - яркость зеленого цвета, может быть в пределах от 00 до FF
где 44 - яркость синего цвета, может быть в пределах от 00 до FF

Например:

Edit1.font.color:=$000000 - черный
Edit1.font.color:=$FFFFFF - белый
Edit1.font.color:=$00FF00 - зеленый

Всего определено 256*256*256 цветов

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

Edit1.font.color:=123456

Тип TColor состоит из четырех байт. Первый байт - указатель на замену цвета (о нем поговорим позже). Второй байт - яркость красного цвета от 0 до 255 (от 00 до FF). Третий байт - яркость зеленого цвета от 0 до 255 (от 00 до FF). И, наконец, четвертый байт - яркость синего цвета, также, от 0 до 255 (от 00 до FF).

А как Вы уже знаете, из этих трех цветов: красного, зеленого и синего, регулируя их яркость, можно составить практически любой цвет.

Поговорим теперь о первом байте - указателе на замену цвета. Итак, этот байт может принимать три различных значения - ноль ($00), единицу ($01) или двойку ($02). Что это значит:

Ноль ($00) - цвет, который не может быть воспроизведен точно, заменяется ближайшим цветом из системной палитры.
Единица ($01) - цвет, который не может быть воспроизведен точно, заменяется ближайшим цветом из палитры, которая установлена сейчас.
Двойка ($02) - цвет, который не может быть воспроизведен точно, заменяется ближайшим цветом из палитры, которую поддерживает текущее устройство вывода (в нашем случае - монитор).
Видимо, всегда лучше устанавливать значение первого байта равным нулю ($00), по крайней мере, так происходит при получении типа TColor при помощи функции RGB.

И, напоследок, несколько примеров:
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 20.09.2007, 13:56   #3
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

наверное, он это хотел узнать....
var
a:integer;
begin
a:=ColorToRGB(Form1.Font.Color);
end;
преобразовуете цвет в Integer .... Сохраняете в базе... Если нужно потом из базы взять цет , то : Form1.color := a; , где а - это значение из базы
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Pitbull вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MDI и Access stan64 БД в Delphi 2 09.05.2008 23:53
Из Access в dbf Abbatik БД в Delphi 21 04.02.2008 08:16
Delphy и Access.вводя инфу во вторичный файл Access, она отражалась в первом ADOTable Lev БД в Delphi 0 11.11.2007 12:14
Хранение и шифрование данных Paul Hindenburg БД в Delphi 1 20.08.2007 09:04