Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: нужна помошь по апи GradientFillRect Добавлено: 15.04.08 15:55  

Автор вопроса:  Vitalysan®
здесь лежит пример: http://www.vbnet.ru/faq/showtopic.asp?id=52
сколько не бился, а создать градиент от RGB(255,255,255) до RGB(195,195,255) не смог. То overflow, то чёрно-белый градиент, то вообще дрянь...
Есть вообще справка по этой функции?

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #1
Добавлено: 15.04.08 21:48
    'from black
    With vert(0)
        .x = 0
        .y = 0
        .Red = LongToUShort(65280)
        .Green = LongToUShort(65280) '&HFF& '0&
        .Blue = LongToUShort(65280)
        .Alpha = 0&
    End With

    'to blue
    With vert(1)
        .x = Me.ScaleWidth
        .y = Me.ScaleHeight
        .Red = LongToUShort(49920)
        .Green = LongToUShort(49920)
        .Blue = LongToUShort(65280)
        .Alpha = 0&
    End With

каждое число умножил на 256 и засунул в LongToUShort

Ответить

Номер ответа: 2
Автор ответа:
 Vitalysan®



Вопросов: 25
Ответов: 61
 Профиль | | #2 Добавлено: 16.04.08 09:21
Спасибо! Заработало! :)

Ответить

Номер ответа: 3
Автор ответа:
 Vitalysan®



Вопросов: 25
Ответов: 61
 Профиль | | #3 Добавлено: 17.04.08 10:36
Рано обрадовался... Ачто делать, если надо создать градиент от RGB(255,255,255) до RGB(127,0,255)?
LongToUShort = CInt(ULong - &H10000)
Опять overflow...Можно попорсить написать комменты к

.Red = LongToUShort(65280)
.Green = LongToUShort(65280) '&HFF& '0&
.Blue = LongToUShort(65280)
и к [code
.Red = LongToUShort(49920)
.Green = LongToUShort(49920)
.Blue = LongToUShort(65280)

[/code]

Ответить

Номер ответа: 4
Автор ответа:
 Vitalysan®



Вопросов: 25
Ответов: 61
 Профиль | | #4 Добавлено: 22.04.08 16:23
всё, разобрался:
Private Function LongToUShort(ULong As Long) As Long
Select Case ULong
Case 0
Case Is >= 128
LongToUShort = CInt(ULong * &HFF - &H10000)
Case Is <= 127
LongToUShort = CInt(ULong * (&HFF + &H1))
End Select
End Function

это ж надо такой геммор придумать с цветами...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам