2015-12-28 4 views
0

Я пытался сделать это сам, но я просто не знаю, как определить проблему. Я пишу макрос для LibreOffice и включает в себя несколько диалогов. Когда я запускаю макрос, я хочу выполнить функцию после того, как диалог станет видимым. Я не мог найти решение этого, поэтому я сделал еще один диалог, который показывает только «Загрузка, Подождите ...», и я вставил его в начало и конец этой функции, dialog.Execute() и dialog.endExecute(). Я предполагаю, что программа останавливается на .execute() и застревает на значке «Loading, Wait ...», если я нажимаю «X» в углу, программа продолжает нормально.LibreOffice Dialog Не работает как планировалось

Лучшим решением было бы, если бы я мог запускать функцию после того, как диалог будет виден. Так есть какой-то триггер?

ответ

0

Вы можете загрузить диалоговое окно и сделать его видимым, но это не будет активировать функции (кнопки и т.д.), так как это то, что делает execute

' StarBasic 
' Tools 
With GlobalScope.BasicLibraries 
    If (Not .isLibraryLoaded("Tools")) Then 
    .LoadLibrary("Tools") 
    End If 
End With 

sampleDialog = LoadDialog("Standard", "Dialog1") 

sampleDialog.setVisible(TRUE) 

ли это поможет?

+0

Я пробовал об этом, но он по-прежнему не выполняет то, что мне нужно для этого, мне нужно будет выполнить определенную функцию, которую я написал, как только появится диалог. Как и в excel ther - это функция OnExecute(), которая запускается сразу же после запуска программы. –

+0

Мне не известно о такой функции, я думаю, вам нужно ее перестроить, используя 'setVisible' (как показано выше), затем запустите все, что вам нужно, в конце' execute' dialog – ngulam

+0

Я понял! ... Я забыл задуматься над коробкой;) Я изменил диалог, так что все было отключено, и в огромных красных письмах написано «ЗАГРУЗКА» после того, как функция запускалась, я включил все и изменил загрузку до готовности, выполнил выполнение и вот так :) Спасибо ! –

 Смежные вопросы

  • Нет связанных вопросов^_^