Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Определение цвета обратного данному


Автор: Rostik Ultra 11.1.2005, 08:33
Как програмно определить цвет обратный данному на цветовом круге ( например наводишь мышку на label и он меняет forecolor на обратный по отношению к своему первоначальному цвету )

Автор: -Mikle- 11.1.2005, 09:24
Инвертировать что-ли?

Можно так:
Код
ColorResult = ColorSource XOR &hFFFFFF&


Подходит?

Автор: Gannibal 11.1.2005, 19:36
-Mikle-
а что такое
Цитата
&hFFFFFF&
что этот параметр определяет? всё работает проверял smile

Автор: cardinal 11.1.2005, 20:11
M.E.G.U.S
&hFFFFFF это 111111111111111111111111 в бинарной системы счисления. То есть все единицы. XOR это логическая операция, которая делает из
0,1->1
1,1->0

1,0->1
0,0->0
Тебя интересуют первые два случая. Если ты внимательно посмотришь, то увидишь, что нолик (левая сторона) превращается в единичку и наоборот.
-Mikle-, только вот один прокол может получиться
Код

Option Explicit

Private Sub Command1_Click()
Dim colorresult As Long

colorresult = 33554431
colorresult = colorresult Xor &HFFFFFF
Debug.Print colorresult
End Sub

и
Код

Option Explicit

Private Sub Command1_Click()
Dim colorresult As Long

colorresult = 33554431
colorresult = colorresult Xor &HFFFFFFFF
Debug.Print colorresult
End Sub

и вообще числовых трехбайтных переменных в VB6 нет smile

Автор: -Mikle- 13.1.2005, 17:05
Цитата(cardinal @ 11.1.2005, 23:11)
и вообще числовых трехбайтных переменных в VB6 нет

Ну это естественно smile

Просто я написал &hFFFFFF вместо &hFFFFFFFF, для того чтоб было яснее, что ксорить нужно только три младших байта, т.е. те самые, которые содержат значения трех составляющих цвета. Ошибки тут нет smile.... это для наглядности... smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)