Крутая кнопочка!!! :shock:

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

GoodWin74
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 29.09.2006 (Пт) 18:58
Откуда: от Верблюда! :)

Крутая кнопочка!!! :shock:

Сообщение GoodWin74 » 03.05.2007 (Чт) 21:49

Хочу сделать на свою прогу такую кнопку как в Opere да и вообще как там все сделали...
Там кнопка закрыть когда на неё наводишь она плавноооо светлеет как так они сделали??? я тоже так хочуюююю!!!!.... :cry:
http:\\start4you.narod.ru

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 04.05.2007 (Пт) 2:25

(глубокомысленно) Хотеть не вредно.
А что ещё ты хотел сказать?

AnarCky
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 229
Зарегистрирован: 20.11.2006 (Пн) 20:12
Откуда: Россия, Екатеринбург.

Сообщение AnarCky » 04.05.2007 (Пт) 18:42

Какую кнопку ты вообще имеешь ввиду? У тебя какя версия Оперы? Где у тебя "светлеет"? Как насчет Opacity? :)
Компьютеры были придуманы чтобы исправлять ошибки людей. Но кто же тогда будет исправлять ошибки компьютера?..

GoodWin74
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 29.09.2006 (Пт) 18:58
Откуда: от Верблюда! :)

Сообщение GoodWin74 » 04.05.2007 (Пт) 19:19

у меня только на форме есть свойство Opacity. Z помню чето ставил чтоб она была а как на Picture Box сделать?
http:\\start4you.narod.ru

AnarCky
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 229
Зарегистрирован: 20.11.2006 (Пн) 20:12
Откуда: Россия, Екатеринбург.

Сообщение AnarCky » 04.05.2007 (Пт) 19:54

Да точно... Я забыл ...

Попробуй тогда так:

Код: Выделить всё

    Private Sub butHalfTrans_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butHalfTrans.Click
        'Получение полупрозрачной картинки

        Dim img As Image = PictureBox1.Image
        Dim copy As Bitmap = New Bitmap(img.Width, img.Height)
        Dim ia As ImageAttributes = New ImageAttributes

        ' Алгоритм получения полупрозрачности
        Dim cm As ColorMatrix = New ColorMatrix(New Single()() _
               {New Single() {1, 0, 0, 0, 0}, _
                New Single() {0, 1, 0, 0, 0}, _
                New Single() {0, 0, 1, 0, 0}, _
                New Single() {0, 0, 0, 0.5, 0}, _
                New Single() {0, 0, 0, 0, 1}})

        ia.SetColorMatrix(cm)

        Dim g As Graphics
        g = Graphics.FromImage(copy)
        g.DrawImage(img, _
           New Rectangle(0, 0, img.Width, img.Height), 0, 0, _
           img.Width, img.Height, GraphicsUnit.Pixel, ia)
        PictureBox1.Image = copy
        g.Dispose()
        img.Dispose()
    End Sub
Компьютеры были придуманы чтобы исправлять ошибки людей. Но кто же тогда будет исправлять ошибки компьютера?..

GoodWin74
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 29.09.2006 (Пт) 18:58
Откуда: от Верблюда! :)

Сообщение GoodWin74 » 04.05.2007 (Пт) 21:17

а как управлять ну прибавлять или убавлять прозрачность??? я чето не догнал скоко смотрел на код!
http:\\start4you.narod.ru

GoodWin74
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 29.09.2006 (Пт) 18:58
Откуда: от Верблюда! :)

Сообщение GoodWin74 » 04.05.2007 (Пт) 21:27

а все понял там строка
New Single() {0, 0, 0, 0.5, 0}, _
где 0.5 там прозрачность

а как сделать эффект ну чтобы по тихоньку прибавлялся

я так сделал у меня не получилось! чето при наведение уменьшается а потом еси еще раз навести то ваще чето хрень какаято из картинки получаеться... вот код:

Код: Выделить всё

Public Class Form1
    Dim proz As String = 0.4
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim img As Image = PictureBox1.Image
        Dim copy As Bitmap = New Bitmap(img.Width, img.Height)
        Dim ia As Imaging.ImageAttributes = New Imaging.ImageAttributes

        ' Алгоритм получения полупрозрачности
        Dim cm As Imaging.ColorMatrix = New Imaging.ColorMatrix(New Single()() _
               {New Single() {1, 0, 0, 0, 0}, _
                New Single() {0, 1, 0, 0, 0}, _
                New Single() {0, 0, 1, 0, 0}, _
                New Single() {0, 0, 0, 0.4, 0}, _
                New Single() {0, 0, 0, 0, 1}})

        ia.SetColorMatrix(cm)

        Dim g As Graphics
        g = Graphics.FromImage(copy)
        g.DrawImage(img, _
           New Rectangle(0, 0, img.Width, img.Height), 0, 0, _
           img.Width, img.Height, GraphicsUnit.Pixel, ia)
        PictureBox1.Image = copy
        g.Dispose()
        img.Dispose()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If proz = 0.9 Then
            Timer1.Enabled = False
        End If
        proz = proz + 0.1
        Dim img As Image = PictureBox1.Image
        Dim copy As Bitmap = New Bitmap(img.Width, img.Height)
        Dim ia As Imaging.ImageAttributes = New Imaging.ImageAttributes

        ' Алгоритм получения полупрозрачности
        Dim cm As Imaging.ColorMatrix = New Imaging.ColorMatrix(New Single()() _
               {New Single() {1, 0, 0, 0, 0}, _
                New Single() {0, 1, 0, 0, 0}, _
                New Single() {0, 0, 1, 0, 0}, _
                New Single() {0, 0, 0, proz, 0}, _
                New Single() {0, 0, 0, 0, 1}})

        ia.SetColorMatrix(cm)

        Dim g As Graphics
        g = Graphics.FromImage(copy)
        g.DrawImage(img, _
           New Rectangle(0, 0, img.Width, img.Height), 0, 0, _
           img.Width, img.Height, GraphicsUnit.Pixel, ia)
        PictureBox1.Image = copy
        g.Dispose()
        img.Dispose()
    End Sub

    Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click

    End Sub

 
    Private Sub PictureBox1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseEnter
        Timer1.Enabled = True
    End Sub
End Class
[/quote]
http:\\start4you.narod.ru

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 04.05.2007 (Пт) 22:56

Код: Выделить всё
    Enum enumMode As Integer
        toTransparent = 1
        toOpaque = 2
    End Enum
    Dim Mode As enumMode = enumMode.toTransparent
    Dim proz As Single = 1.0!
    Dim OriginalImage As Image = My.Resources.button_search_active
    Dim ia As Imaging.ImageAttributes = New Imaging.ImageAttributes
    Dim cm As Imaging.ColorMatrix = New Imaging.ColorMatrix(New Single()() _
                  {New Single() {1, 0, 0, 0, 0}, _
                   New Single() {0, 1, 0, 0, 0}, _
                   New Single() {0, 0, 1, 0, 0}, _
                   New Single() {0, 0, 0, 1, 0}, _
                   New Single() {0, 0, 0, 0, 1}})

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        PictureBox1.Image = OriginalImage.Clone()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Select Case Mode
            Case enumMode.toTransparent
                proz -= 0.1!
                If proz < 0.5! Then
                    Timer1.Enabled = False
                End If
            Case enumMode.toOpaque
                PictureBox1.Image = OriginalImage.Clone
                proz += 0.1!
                If proz >= 1.0! Then
                    Timer1.Enabled = False
                    proz = 1.0!
                End If
        End Select

        cm.Matrix33 = proz
        ia.SetColorMatrix(cm)

        With PictureBox1
            Dim g As Graphics = Graphics.FromImage(.Image)
            g.Clear(PictureBox1.BackColor)
            g.DrawImage(OriginalImage, _
               .ClientRectangle, 0, 0, _
               .Image.Width, .Image.Height, GraphicsUnit.Pixel, ia)
            g.Dispose()
        End With

        PictureBox1.Refresh()
    End Sub

    Private Sub PictureBox1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseEnter
        Mode = enumMode.toTransparent
        Timer1.Enabled = True
    End Sub

    Private Sub PictureBox1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseLeave
        Mode = enumMode.toOpaque
        Timer1.Enabled = True
    End Sub
Последний раз редактировалось Nord777 06.05.2007 (Вс) 0:20, всего редактировалось 1 раз.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

GoodWin74
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 29.09.2006 (Пт) 18:58
Откуда: от Верблюда! :)

Сообщение GoodWin74 » 05.05.2007 (Сб) 12:50

спасибо! но мне бы еще чтоб обратно возрашалось такто я и тот пример могу взять... обратно я не могу также мягко сделать переход!
http:\\start4you.narod.ru

AnarCky
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 229
Зарегистрирован: 20.11.2006 (Пн) 20:12
Откуда: Россия, Екатеринбург.

Сообщение AnarCky » 05.05.2007 (Сб) 19:36

Лично мое мнение, что обратно не интересно так же плавно.
Впрочем, дело хозяйское. Если так неймется, то сделай второй таймер и ставь proz += 0.1
Компьютеры были придуманы чтобы исправлять ошибки людей. Но кто же тогда будет исправлять ошибки компьютера?..

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 06.05.2007 (Вс) 0:23

код выше исправлен
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

GoodWin74
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 29.09.2006 (Пт) 18:58
Откуда: от Верблюда! :)

Сообщение GoodWin74 » 06.05.2007 (Вс) 9:32

AnarCky и Nord777 Большое спасибо!!! Что терпели меня и мои не понятия :) (например какFaKk2) :)
http:\\start4you.narod.ru

GoodWin74
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 29.09.2006 (Пт) 18:58
Откуда: от Верблюда! :)

Сообщение GoodWin74 » 06.05.2007 (Вс) 21:56

Еще вопрос конечно не по теме ну тему создавать не хотелось мне надо еще и с формой так сделать ну чтоб при запуске проги она плавно из Opacaty = 0 в Opacaty = 100 так пробовал не получаеться

Код: Выделить всё
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Opacity = 1
        formProz.Enabled = True
    End Sub

    Private Sub formProz_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles formProz.Tick
        If formp = 100 Then
            formProz.Enabled = False
        End If
        formp = formp + 10
        Me.Opacity = formp
    End Sub


он просто немного ждет и появляеться окно резко[/quote]
http:\\start4you.narod.ru

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 06.05.2007 (Вс) 22:28

Код: Выделить всё
    Dim formp As Single = 0.0!

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        formp = formp + 0.1!
        If formp >= 1.0! Then
            formp = 1.0!
            Timer1.Enabled = False
        End If
        Me.Opacity = formp
    End Sub

    Private Sub Form1_HandleCreated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.HandleCreated
        Me.Opacity = formp
    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Timer1.Enabled = True
    End Sub
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Alex[fj]
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 278
Зарегистрирован: 17.02.2007 (Сб) 20:10
Откуда: Питер

Сообщение Alex[fj] » 07.05.2007 (Пн) 13:19

А че так сложно? Столько переменных...
Код: Выделить всё
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Me.Opacity = Me.Opacity + 0.1
        If Me.Opacity = 1 Then Timer1.Enabled = False
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Opacity = 0
        Timer1.Enabled = True
    End Sub

Вот... и все! :)
Изображение
Стараюсь быть вполне хорошим (c) Лев Толстой

GoodWin74
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 29.09.2006 (Пт) 18:58
Откуда: от Верблюда! :)

Сообщение GoodWin74 » 07.05.2007 (Пн) 17:01

Alex[fj] спасибо
http:\\start4you.narod.ru

asharky
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 22.06.2004 (Вт) 0:39
Откуда: Батоны-ларьки-поребрики...

Сообщение asharky » 15.06.2007 (Пт) 20:04

А как под кнопку пояснительную надпись запихать? Нечто вроде тэга alt в html ? Чтобы когда мышь наводишь, то надпись возникала.

cosmo_vk
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 26.12.2006 (Вт) 12:07
Откуда: Владимирская обл, г.Ковров

Сообщение cosmo_vk » 15.06.2007 (Пт) 20:29

asharky писал(а):А как под кнопку пояснительную надпись запихать? Нечто вроде тэга alt в html ? Чтобы когда мышь наводишь, то надпись возникала.
так это ж обыкновенный tooltip! открывай справку и читай!

asharky
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 22.06.2004 (Вт) 0:39
Откуда: Батоны-ларьки-поребрики...

Сообщение asharky » 15.06.2007 (Пт) 20:59

cosmo_vk писал(а):
asharky писал(а):А как под кнопку пояснительную надпись запихать? Нечто вроде тэга alt в html ? Чтобы когда мышь наводишь, то надпись возникала.
так это ж обыкновенный tooltip! открывай справку и читай!
Всё как всегда, в общем :P

Пример кода можно попросить?

cosmo_vk
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 26.12.2006 (Вт) 12:07
Откуда: Владимирская обл, г.Ковров

Сообщение cosmo_vk » 15.06.2007 (Пт) 21:15

asharky писал(а):
cosmo_vk писал(а):
asharky писал(а):А как под кнопку пояснительную надпись запихать? Нечто вроде тэга alt в html ? Чтобы когда мышь наводишь, то надпись возникала.
так это ж обыкновенный tooltip! открывай справку и читай!
Всё как всегда, в общем :P

Пример кода можно попросить?
а зачем код?
кидаем tooltip на форму. Устанавливаем ему свойства, типо как выводить(фон, длительность, заголовок и т.д. и т.п.). У всех элементов в свойствах появляется "ToolTip on ToolTip1" и пишем туда свой текст. Все очень просто.
Если же надо, чтоб у элементов разный текст был при каких-то событиях, то это уже код.

asharky
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 22.06.2004 (Вт) 0:39
Откуда: Батоны-ларьки-поребрики...

Сообщение asharky » 15.06.2007 (Пт) 21:53

cosmo_vk писал(а):а зачем код?
кидаем tooltip на форму. Устанавливаем ему свойства, типо как выводить(фон, длительность, заголовок и т.д. и т.п.). У всех элементов в свойствах появляется "ToolTip on ToolTip1" и пишем туда свой текст. Все очень просто.
Если же надо, чтоб у элементов разный текст был при каких-то событиях, то это уже код.
Спасибо!

cosmo_vk
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 26.12.2006 (Вт) 12:07
Откуда: Владимирская обл, г.Ковров

Сообщение cosmo_vk » 15.06.2007 (Пт) 22:12

asharky писал(а):
cosmo_vk писал(а):а зачем код?
кидаем tooltip на форму. Устанавливаем ему свойства, типо как выводить(фон, длительность, заголовок и т.д. и т.п.). У всех элементов в свойствах появляется "ToolTip on ToolTip1" и пишем туда свой текст. Все очень просто.
Если же надо, чтоб у элементов разный текст был при каких-то событиях, то это уже код.
Спасибо!
да не за что! :)

GoodWin74
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 29.09.2006 (Пт) 18:58
Откуда: от Верблюда! :)

Сообщение GoodWin74 » 16.06.2007 (Сб) 2:04

cosmo_vk тоже от меня спасибо!!! :wink:
http:\\start4you.narod.ru


Вернуться в Visual Basic .NET

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 104

    TopList