Главная страница
    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.57 MB
Время: 0.034 c
3-92387
Эрик
2002-10-08 12:31
2002.10.28
IBDataSet


14-92713
Pat
2002-10-08 12:06
2002.10.28
Курить вредно...


7-92768
lack
2002-08-20 19:49
2002.10.28
Народ нужна такая прога:


1-92461
Romych
2002-10-17 09:16
2002.10.28
StringGrid- или чтот похожее


14-92739
BillyKiller
2002-10-09 00:11
2002.10.28
Кто-нить, дайте ссылку где можно глянуть на фото Билл Гейтса :)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский