[Resolvido][Dúvida] Botão não funciona apos mudar posição.

    Compartilhe

    GallighanMaker
    Experiente
    Experiente

    Medalhas :
    Mensagens : 604
    Créditos : 53

    [Resolvido][Dúvida] Botão não funciona apos mudar posição.

    Mensagem por GallighanMaker em Qua Set 30, 2015 3:33 pm

    Eu estava sem o que fazer no momento e decidi modificar um pouco a Skywyre, alterando o design da interface e posição dos botões, até que então me deparei com um problema. 
    Quando mudei a posição de 4 botões que ficam em cima dos demais para ficarem alinhados eles pararam de funcionar. Não sei se é o tamanho especifico do MENU que pode ser atribuído em um arquivo .ini ou se é por ter atribuído valores negativos para alinhar os botões.
    Aqui uma imagem de como deixei os botões:
    LINK


    clique no link que deixei acima para visualizar a imagem completa.

    O dentro do interface.ini eu deixei a parte do menu dessa forma:

    [GUI_MENU]
    X=643
    Y=514
    Width=300
    Height=76

    Aparentemente esse e  o padrão se não me engano. Se alguém tem alguma dica do que possa ter acontecido para os botões não funcionarem nessas posições me diga.

    Dessa forma os botões funcionam:
    Link


    _________________
    @IndieDB @Steam Concept
    --

    Profane ~
    Moderador Local
    Moderador Local

    Mensagens : 366
    Créditos : 66

    Re: [Resolvido][Dúvida] Botão não funciona apos mudar posição.

    Mensagem por Profane ~ em Qua Set 30, 2015 4:23 pm

    Minha dica seria também fazer a edição no ModInput.

    Procure a mouseUp e Down do Menu; E se for o caso (Deve estar possivelmente em um Loop de Posição); coloque a leitura a partir do X e Y Base, sem a Leitura da 

    GUI_Menu + Buttons(i); 

    Se ocorre um problema, tente por manual o X e Y deles. Apenas usando a Base do Buttons.

    Uma pergunta, Ao passar o Mouse, a questão do Hover acontece? porém quando vc clica nada ocorre? Se for isso, é o ModInput que não está alinhado com o ModGraphics + ModGenerals.

    Ex:
    Espero que isso ajude.
    Código:
     For i = 1 To 5
            x = Buttons(i).x
            y = Buttons(i).y
           
            ' check if we're on the button
          If (GlobalX >= x And GlobalX <= x + Buttons(i).Width) And (GlobalY >= y And GlobalY <= y + Buttons(i).Height) Then
                If Buttons(i).state = 2 Then
                    ' do stuffs
                    Select Case i
                        Case 1
    'Aqui vc poem o que o botão vai fazer...

    Isso você pode add dentro ou editar seu MouseUp e Down da Gui do Menu buscando acertar as coordenadas.

    Att


    _________________

    GallighanMaker
    Experiente
    Experiente

    Medalhas :
    Mensagens : 604
    Créditos : 53

    Re: [Resolvido][Dúvida] Botão não funciona apos mudar posição.

    Mensagem por GallighanMaker em Qua Set 30, 2015 4:49 pm

    O hover acontece normalmente, só o clique que não funciona. vou tentar fixar com a sua ajuda, jaja edito se consegui fazer funcionar. obrigado pela atenção.

    Mouse Down:

    Código:
    Public Sub Menu_MouseDown(ByVal Button As Long)
    Dim I As Long, x As Long, y As Long
        ' find out which button we're clicking
        For I = 1 To 6
            If Buttons(I).Visible Then
                x = GUIWindow(GUI_MENU).x + Buttons(I).x
                y = GUIWindow(GUI_MENU).y + Buttons(I).y
                ' check if we're on the button
                If (GlobalX >= x And GlobalX <= x + Buttons(I).Width) And (GlobalY >= y And GlobalY <= y + Buttons(I).Height) Then
                    Buttons(I).state = 2 ' clicked
                End If
            End If
        Next
       
        For I = 42 To 44
            If Buttons(I).Visible Then
                x = GUIWindow(GUI_MENU).x + Buttons(I).x
                y = GUIWindow(GUI_MENU).y + Buttons(I).y
                ' check if we're on the button
                If (GlobalX >= x And GlobalX <= x + Buttons(I).Width) And (GlobalY >= y And GlobalY <= y + Buttons(I).Height) Then
                    Buttons(I).state = 2 ' clicked
                End If
            End If
        Next
       
    End Sub

    Mouse Up

    Código:
    ' Menu
    Public Sub Menu_MouseUp()
    Dim I As Long, x As Long, y As Long, buffer As clsBuffer

        ' find out which button we're clicking
        For I = 1 To 6
          x = GUIWindow(GUI_MENU).x + Buttons(I).x
          y = GUIWindow(GUI_MENU).y + Buttons(I).y
           

            ' check if we're on the button
            If (GlobalX >= x And GlobalX <= x + Buttons(I).Width) And (GlobalY >= y And GlobalY <= y + Buttons(I).Height) Then
                If Buttons(I).state = 2 Then
                    ' do stuffs
                    Select Case I
                        Case 1
                            ' open window
                            OpenGuiWindow 1
                        Case 2
                            ' open window
                            OpenGuiWindow 2
                        Case 3
                            ' open window
                            OpenGuiWindow 3
                        Case 4
                            ' open window
                            OpenGuiWindow 4
                        Case 5
                            If myTargetType = TARGET_TYPE_PLAYER And myTarget <> MyIndex Then
                                SendTradeRequest
                            Else
                                AddText "Invalid trade target.", BrightRed
                            End If
                        Case 6
                            ' open window
                            OpenGuiWindow 6
                    End Select
                    ' play sound
                    PlaySound Sound_ButtonClick, -1, -1
                End If
            End If
        Next
       
        For I = 42 To 44
            x = GUIWindow(GUI_MENU).x + Buttons(I).x
            y = GUIWindow(GUI_MENU).y + Buttons(I).y
            ' check if we're on the button
            If (GlobalX >= x And GlobalX <= x + Buttons(I).Width) And (GlobalY >= y And GlobalY <= y + Buttons(I).Height) Then
                If Buttons(I).state = 2 Then
                    ' do stuffs
                    Select Case I
                        Case 42
                            ' open window
                            OpenGuiWindow 7
                        Case 43
                            'open window
                            OpenGuiWindow 8
                        'Case 3
                            ' open window
                            'OpenGuiWindow 9
                    End Select
                    ' play sound
                    PlaySound Sound_ButtonClick, -1, -1
                End If
            End If
        Next
       
        ' reset buttons
        resetClickedButtons
    End Sub


    Aparentemente ele busca corretamente as coordenadas, ja tentei deixar:

    x = Buttons(I).x
    y = Buttons(I).y


    _________________
    @IndieDB @Steam Concept
    --

    Profane ~
    Moderador Local
    Moderador Local

    Mensagens : 366
    Créditos : 66

    Re: [Resolvido][Dúvida] Botão não funciona apos mudar posição.

    Mensagem por Profane ~ em Qua Set 30, 2015 5:06 pm

    Dei uma olhada no meu projeto. Tenho botões pela "Tela inteira" vamos assim dizer kk...

    Nenhum com coordenada negativa. Creio que o - X que estão ai estão jogando o Input para fora da tela. Tente reve-lo.

    Tenho botoes mais o menos nessa area ai que você expôs sua Gui e é mais o menos aqui:

    Código:
    With Buttons(92)
                .state = 0 'normal
                .x = 660
                .y = 550
                .Width = 94
                .Height = 32
                .Visible = True
                .PicNum = 61
          End With

    ex de btt meu em local parecido na gui.


    _________________

    GallighanMaker
    Experiente
    Experiente

    Medalhas :
    Mensagens : 604
    Créditos : 53

    Re: [Resolvido][Dúvida] Botão não funciona apos mudar posição.

    Mensagem por GallighanMaker em Qua Set 30, 2015 5:25 pm

    Estranho que ele começa assim:

    .state = 0 'normal
    .x = 0 'primeiro botao em cima
    .y = 0
    .Width = 36 'tamanho
    .Height = 36

    mesmo aumentando os valores não da certo pq o botão some ;x
    certeza que o -X está dando problema mas não consegui colocar um valor positivo ali.

    vou tentar mudar a posição do botão com valor positivo e tentar trazer a janela do menu mais pra esquerda mas não faço ideia se vai funcionar.


    -EDIT-

    Consegui arrumar, ajustei o tamanho da janela do menu e trouxe ela para a esquerda para ganhar espaço para os botões, depois apenas atribui valores positivos para esses botões. Então se alguém tiver algum problema parecido, não use valores negativos e tomem cuidado com o tamanho das janelas pois limita o input e faz com que o botão não funcione. Vlw profane pela ajuda, pelo menos ajudou a esclarecer algumas coisas.

    Podem trancar!.


    _________________
    @IndieDB @Steam Concept
    --

      Data/hora atual: Qua Dez 07, 2016 5:11 pm