Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Инверсный цвет 
:(
    Опции темы
amt
Дата 18.3.2008, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 26.10.2004
Где: г. Волгоград

Репутация: 3
Всего: 3



Help, please!
Вопрос такой:
Если у контрола меняется цвет BackColor, то нужно сделать чтобы его ForeColor стал инверсным.
Заранее благодарен.
--------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций.
PM MAIL   Вверх
Akina
Дата 18.3.2008, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



А в чем проблема? изменить цвет? посчитать какой именно? отловить момент изменения? что-то еще?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
amt
Дата 18.3.2008, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 26.10.2004
Где: г. Волгоград

Репутация: 3
Всего: 3



Например у label Backcolor задали =1234  а его ForeColor нужно установить инверсным (синий - жельый; красный - зелёный...)
Т.е. как просчитать цвет инверсный тому, который задал пользователь? smile 

Это сообщение отредактировал(а) amt - 18.3.2008, 22:02
--------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций.
PM MAIL   Вверх
I_Am_Rock
Дата 18.3.2008, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 523
Регистрация: 18.1.2008

Репутация: 12
Всего: 15



Сейчас попробую код нацарапать...)
PM MAIL WWW   Вверх
I_Am_Rock
Дата 18.3.2008, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 523
Регистрация: 18.1.2008

Репутация: 12
Всего: 15



См. в архив...

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  zzz.rar 1,39 Kb
PM MAIL WWW   Вверх
Akina
Дата 19.3.2008, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Чисто формально дополнительный цвет считается так:
Код
Control.ForeColor = Not (Control.BackColor) And &HFFFFFF
А вот что такое инверсный цвет... попробую завтра помучить поиск.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
amt
Дата 19.3.2008, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 26.10.2004
Где: г. Волгоград

Репутация: 3
Всего: 3



I_Am_Rock 
Спасибо, я предполагал именно такой фариант. Тебе +
Но есть такая проблема.
Когда пользователь поменяет цвет я могу узнать его числовое значение. А как это число перевести в RGB?

Это сообщение отредактировал(а) amt - 19.3.2008, 09:40
--------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций.
PM MAIL   Вверх
amt
Дата 19.3.2008, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 26.10.2004
Где: г. Волгоград

Репутация: 3
Всего: 3



Всем спасибо, сам разобрался. smile 
Допустим  пользователь поменял цвет BackColor у лейбла. Определяем его значение, например 123456. Тогда инверсным будет 16777215-123456 (16777215 - соответствует RGB(255,255,255)). 
Думаю тему можно закрыть. smile 
--------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций.
PM MAIL   Вверх
Akina
Дата 19.3.2008, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(amt @  19.3.2008,  11:13 Найти цитируемый пост)
Думаю тему можно закрыть.

Это зависит от того, зачем тебе собсно нужен инверсный цвет... а то пара инверсных &H808080 и &H7F7F7F очень красиво смотрятся один по другому...  smile 

И еще одна мелочь. Если юзер задал цвет, например, Label.BackColor=123456 - как ты думаешь, какое значение будет у Label.BackColor? 123456? как бы ни так...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
amt
Дата 20.3.2008, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 26.10.2004
Где: г. Волгоград

Репутация: 3
Всего: 3



Цитата

И еще одна мелочь. Если юзер задал цвет, например, Label.BackColor=123456 - как ты думаешь, какое значение будет у Label.BackColor? 123456? как бы ни так... 


Суть в том что юзер задает цвет не с клавы, а выбирает его в окне ShowColor компонента CommonDialog. А затем я уже программно определяю код цвета CommonDialog.Color. Этот цвет присваивается компоненту Label.BackColor, а  LabelForeColor я определяю так, как указал выше.
--------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций.
PM MAIL   Вверх
Akina
Дата 20.3.2008, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(amt @  20.3.2008,  10:09 Найти цитируемый пост)
Суть в том что 

Суть как раз в том, что в xxxColor используется младшие 24 бита, а значения старших 8 задаются VB по какому-то своему достаточно хитрому и совершенно непонятному алгоритму. Посему использование АРИФМЕТИЧЕСКИХ операторов не всегда будет давать те результаты, которые ожидаешь. Следует использовать битовые операции. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0490 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.