Где правда?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Где правда?

Сообщение Matew » 12.07.2005 (Вт) 3:10

Процедуры из тем:
http://bbs.vbstreets.ru/viewtopic.php?t ... hlight=rgb
http://bbs.vbstreets.ru/viewtopic.php?t ... hlight=rgb
http://bbs.vbstreets.ru/viewtopic.php?t ... hlight=rgb
Для числа &H8000000F дают разные значения! Некоторые даже переполнение, может конечно я что - то неправильно делаю, но где же правда?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.07.2005 (Вт) 3:59

Не знаю, чё там по ссылкам, но

r = &h8000000f and &hff&
g = (&h8000000f and &hff00&) / &h100&
b = (&h8000000f and &hff0000&) / &h10000&
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 12.07.2005 (Вт) 4:14

Получается 15,0,0 - это же черный, а никак не серый. У меня h8000000f = -2147483533. Значит я что то не так делаю?

Код: Выделить всё
Sub GetRGB(ByVal Color As Long, Red As Byte, Green As Byte, Blue As Byte)
Red = &H8000000F And &HFF&
Green = (&H8000000F And &HFF00&) / &H100&
Blue = (&H8000000F And &HFF0000) / &H10000
End Sub

GetRGB &H8000000F, r, g, b
    hPen = CreatePen(0, 0, RGB(r, g, b))

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.07.2005 (Вт) 4:18

Чел!
Ты когда фигнёй страдаешь, ты уж сам, а? :)

&H8000000F - это OLE_COLOR, а не COLORREF. И на каждой системе он будет свой. Зайди в свойства рабоче стола и измени цвет "Рельефных объектов". Сразу всё поймёшь.
А для перевода OLE_COLOR в COLORREF используется OleTranslateColor.
Последний раз редактировалось GSerg 12.07.2005 (Вт) 4:23, всего редактировалось 1 раз.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.07.2005 (Вт) 4:19

И ещё.
Нафига, ну нафига ты разбиваешь цвет на компоненты, чтобы сразу же слить их обратно? У тебя уже есть готовый цвет!
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 12.07.2005 (Вт) 4:24

>И ещё.
>Нафига, ну нафига ты разбиваешь цвет на компоненты, чтобы сразу >же слить их обратно? У тебя уже есть готовый цвет!

Я уж испугался, думал я совсем дурак, ан нет я так пробовал-получается черный:

Код: Выделить всё
    hPen = CreatePen(0, 0, &H8000000F)

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 12.07.2005 (Вт) 4:28

Буду в Магадане с меня бутылка!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 77

    TopList  
cron