Pergunte aqui
2

Criar menu popup no formulário calc [fechado]

perguntadas 2019-05-13 15:20:11 +0200

imagem do gravatar de Júnio Vieira

updated 2019-05-24 17:55:53 +0200

Bom dia, alguém sabe como criar aquele menu popup no formulário calc via macro, por exemplo: quando colocar o mouse em cima de um botão me aparecer um menu popup com opções.

editar alterar tag assinalar como ofensivo reabrir mesclar Excluir

Fechado pelo seguinte motivo A pergunta foi respondida, a resposta certa foi aceita por Olivier
data do fechamento 2019-05-15 03:18:28.946688

Comentários

Tem algum exemplo @Júnio Vieira?

imagem do gravatar de ConradoConrado ( 2019-05-13 16:17:55 +0200 )editar

1 Resposta

1

respondidas 2019-05-13 16:23:06 +0200

imagem do gravatar de Conrado

@Júnio Vieira, seria mais ou menos isso?

    Sub RegisterClickHandler()
      doc = ThisComponent
      l = CreateUnoListener("Handler_", "com.sun.star.awt.XMouseClickHandler")
      doc.getCurrentController().addMouseClickHandler(l)
    End Sub

    Function Handler_disposing(ev)
    End Function
    Function Handler_mousePressed(ev)
      Handler_mousePressed = False
    End Function
    Function Handler_mouseReleased(ev)
      If ev.Buttons = com.sun.star.awt.MouseButton.LEFT Then
        async(Array())
      End If
      Handler_mouseReleased = False
    End Function

    Sub ShowPopup
      oPopup = CreateUnoService("com.sun.star.awt.PopupMenu")
      oPopup.insertItem(1, "item1", 0, 0)
      oPopup.insertItem(2, "item2", 0, 1)

      oCompWin = ThisComponent.getCurrentController()._
          getFrame().getComponentWindow()
      n = oPopup.execute(oCompWin, _
          CreateUnoStruct("com.sun.star.awt.Rectangle"), 0)
      If n > 0 Then
        msgbox n
      End If
    End Sub


Sub async(args)
  oASync = CreateUnoService( _
     "com.sun.star.awt.AsyncCallback")
  oCallback = CreateUnoListener("Callback_", _
     "com.sun.star.awt.XCallback" )
  oASync.addCallback(oCallback, args)
End Sub

Sub Callback_notify( aData )
  ShowPopup()
End Sub

Créditos: https://forum.openoffice.org/en/forum...

editar assinalar como ofensivo Excluir Link mais

Comentários

1

Conrado muito obrigado por sua resposta, é exatamente isso que preciso, muito bom vc ter colocado a fonte porque lá consegui pegar uma macro mais completa, a dificuldade que estou tendo é conseguir fazer o popup abrir onde eu clicar no formulário e não na planilha, se eu conseguir posto aqui como complemento. Obrigado!

imagem do gravatar de Júnio VieiraJúnio Vieira ( 2019-05-14 15:23:45 +0200 )editar

Bom que deu certo @Júnio Vieira

imagem do gravatar de ConradoConrado ( 2019-05-14 15:34:27 +0200 )editar

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2019-05-13 15:20:11 +0200

Lidas: 29 vezes

Última atualização: May 13