Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];

Вниз

Компоненты RGB из констант красок.   Найти похожие ветки 

 
.: Joiro :.   (2002-06-30 18:11) [0]

Вот такой у меня к знатокам вопрос:

Из Делфийских констант красок вроде clActiveCaption, clGradientActiveCaption можно получать компоненты RGB или нет?

Вроде туповатый вопрос, но на Delphi 6 под WinXP у такого простого кода:

Color1 := clGradientActiveCaption;

R := GetRValue(Color1);
G := GetGValue(Color1);
B := GetBValue(Color1);

результат всегда один: R,G и B = 0, то есть они не изменились.

Есть ли возможность обойти эту странность?


 
KilkennyCat   (2002-07-01 07:32) [1]

я не пробовал проверить это утверждение, хотя склонен думать, что в данном случае либо clGradientActiveCaption - черный, либо в WinXP такого нет (то, что там несколько подобных цветов отсутствует - это доказано печальным опытом).
Но если предположить, что все нормально, и цвет не черный, и константа такая есть, но возврат все равно 0, то надо создать битмап размером 1х1, закрасить его этим цветом и получить новый цвет используя свойство пикселс.


 
.: Joiro :.   (2002-07-01 11:19) [2]

Фишка то в том, что в интерфейсе программы есть возможность выбрать эти краски и их можно назначить, например, самой форме (и в runtime), что значит что краски присутствуют. И цвет уж точно не чёрный.

Так что или это в Delphi что-то не так или WinXP, или оба (или всё же я :)).

Пробовал Color1 := Color2 - не помогает, пробовал дать краску форме и Color1 := Form1.Color - тоже не помогает. Но пройсходит только для констант с красками из Windows.

Скорее всего придётся делать с битмапом, только не специально созданным а одним из присутствуюших.

И немножко попробуем поднять шансы получить ответ на другой вопрос: Это дело с красками нужно для этой вещи: http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1025434691&n=3


 
KilkennyCat   (2002-07-02 05:39) [3]

Я использую в своей проге такие константы. Работает. Помню, что с какими-то двумя не заработало, несмотря на то, что в интерфейсе они тоже присутствовали (правда, мне сообщало об ошибке при запуске). Делфи 6, ВинХР.


 
.: Joiro :.   (2002-07-02 11:07) [4]

Хмм... также при использовании GetRValue, итд? Потому что назначить краску контролам, самой форме или картинке по пикселам (Canvas.Pixels[X,Y]) не проблема, но у меня используется Scanline а там надо разделить краски на RGB составляющие. А каждый раз использовать битмап для перегона красок как-то не совсем хочется.


 
ricks   (2002-07-02 14:35) [5]

clActiveCaptio - это системный цвет. Посмотрите в Graphics какой у него номер. Меньше нуля. Поэтому прежде чем использовать GetXValue надо написать:
Color1:=ColorToRGB(Color1)
или
Color1:=GetSysColor(Color1 and $000000FF);
Вот и все. А вы мучались :-)))


 
ricks   (2002-07-02 14:36) [6]

clActiveCaption - это системный цвет. Посмотрите в Graphics какой у него номер. Меньше нуля. Поэтому прежде чем использовать GetXValue надо написать:
Color1:=ColorToRGB(Color1)
или
Color1:=GetSysColor(Color1 and $000000FF);
Вот и все. А вы мучались :-)))


 
.: Joiro :.   (2002-07-02 16:34) [7]

2ricks

Вот где-то ведь видел и в голове что-то о том было, но вот дырявая память... больщое спасибо за ответ.



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
14-92696
VictorT
2002-10-04 18:56
2002.10.28
таблицы стилей в Нетскейпе и Эксплорере


4-92788
dumb
2002-09-04 22:56
2002.10.28
Как изменить цвет имен файлов


14-92657
Юрий Зотов
2002-09-28 23:01
2002.10.28
Странное поведение дебаггера D5 под XP


3-92384
Vovik
2002-10-08 11:22
2002.10.28
Структура полей DBF


3-92324
wHammer
2002-10-05 11:09
2002.10.28
Как программно установить NET DIR для Paradox?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский