Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

18 Май 2021, 17:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 »   Вниз
  Печать  
Автор Тема: Программируемый Диалог  (Прочитано 4428 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Tigrik
Форумчанин
***
Offline Offline

Сообщений: 94


« Ответ #54859: 11 Июнь 2020, 00:32 »

Подскажите, пожалуйста!

В продолжение темы программируемых диалогов, так как необходим, именно, этот вариант.
Вроде получилось "прицепить" обработчик событий к кнопкам, но не закрывается сам диалог.
Уже два дня перебираю различные способы решить эту проблему.
Может быть, .dispose(), но куда его определить?
Или где-то что-то напутал?
Код:
Sub Dlg_Button()
 Dim oDlgModel, oDlg, oModel
oDlgModel = CreateUnoService("com.sun.star.awt.UnoControlDialogModel")
oDlgModel.setPropertyValue("PositionX", 333) : oDlgModel.setPropertyValue("PositionY", 185)
oDlgModel.setPropertyValue("Width", 160) : oDlgModel.setPropertyValue("Height", 60)
oDlgModel.setPropertyValue("Title", "Кнопки в диалоге")
oDlg = CreateUnoService("com.sun.star.awt.UnoControlDialog")
oDlg.setModel(oDlgModel)
 For i% = 1 to 2
oModel = oDlgModel.createInstance("com.sun.star.awt.UnoControlButtonModel")
oModel.setPropertyValue("PositionX", Clng(70*i-50)) : oModel.setPropertyValue("PositionY", 20)
oModel.setPropertyValue("Width", 50) : oModel.setPropertyValue("Height", 20)
oModel.setPropertyValue("PushButtonType", 0) : oModel.setPropertyValue("Label", "Кнопка № "&i)
oDlgModel.insertByName("ComButton" & i, oModel)
oDlg.getControl("ComButton"&i).addActionListener(CreateUnoListener("Button_", "com.sun.star.awt.XActionListener"))
 Next
oDlg.createPeer(CreateUnoService("com.sun.star.awt.Toolkit"), null)
If oDlg.execute() = 0 Then Print "Выход без кнопки!" : Exit Sub
Print "Нажата какая-то кнопка!"
End Sub


Sub Button_actionPerformed(ActionEvent)
Print "Нажата кнопка: "  & ActionEvent.Source.Model.Label
' .dispose()
End Sub

Спасибо.
« Последнее редактирование: 11 Июнь 2020, 00:34 от Tigrik » Записан
Страниц: 1 2 »   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!