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

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

13 Декабрь 2017, 23:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Как получить значение TextField1 диалога  (Прочитано 437 раз)
0 Пользователей и 1 Гость смотрят эту тему.
sttt
Новичок
*
Offline Offline

Сообщений: 6


« Стартовое сообщение: 9 Август 2017, 13:45 »

Как получить значение TextField1 диалога? - пытался так:
   
Код:
        DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
'ocControl = Dlg.getControl("TextField1")
ocControl = Dlg.Controls("TextField1")
ocControl.Model.TextColor = RGB(55,155,95)
ocControl.Model.HelpText = "тестовая подсказка..."
'MsgBox ocControl.Model.Text
'ocControl .Label = "Новая надпись"
MsgBox ocControl.getText()
Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 314


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #1: 9 Август 2017, 13:56 »

Как получить значение TextField1 диалога? - пытался так:
А в чём проблема? Так и получить, как у вас написано. Если ничего не показывает, значит текстовое поле пустое.

P.S. если хотите увидеть диалог с полем и записать текст, нужно добавить:
Код:
Dlg.execute()
перед
Код:
MsgBox ocControl.getText()
« Последнее редактирование: 9 Август 2017, 14:01 от rami » Записан

JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 373


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #2: 9 Август 2017, 14:23 »

А в чём проблема?
Возможно, не найден диалог с именем Dialog1 потому что он ещё не создан?.. Питоньяк, глава  10.2.  Dialogs
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
sttt
Новичок
*
Offline Offline

Сообщений: 6


« Ответ #3: 9 Август 2017, 15:43 »

Как получить значение TextField1 диалога? - пытался так:
А в чём проблема? Так и получить, как у вас написано. Если ничего не показывает, значит текстовое поле пустое.

P.S. если хотите увидеть диалог с полем и записать текст, нужно добавить:
Код:
Dlg.execute()
перед
Код:
MsgBox ocControl.getText()

Код:
Dim Dlg As Object

Sub Main
'thisComponent.Parent.FormDocuments.getByName("FormTest").open
'FormTest.Show
'ThisComponent.DrawPage.Forms.getByName("FormTest")'.getByName("Text1")

DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
Dlg.Execute()
Dlg.dispose()

End Sub

Sub RunTest

'Dim Dlg As Object
Dim Ctl As Object
Dim ocControl As Object
Dim text As String
Dim textControl As Object
Dim textComp As Object

'DialogLibraries.LoadLibrary("Standard")
'Dlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
'ocControl = Dlg.getControl("TextField1")
ocControl = Dlg.Controls("TextField1")
ocControl.Model.TextColor = RGB(55,155,95)
ocControl.Model.HelpText = "тестовая подсказка..."
'MsgBox ocControl.Model.Text
'Ctl.Label = "Новая надпись"
MsgBox ocControl.getText()

End Sub

Main прописан у кнопки в экселе у события "Выполнить действие"
В открывшейся форме есть кнопка с выполнением процедуры RunTest

Где-то не то делаю (
Записан
sttt
Новичок
*
Offline Offline

Сообщений: 6


« Ответ #4: 9 Август 2017, 15:45 »

вроде со всеми объектами получается работать, а с простейшим TextField1 не получается
Записан
sttt
Новичок
*
Offline Offline

Сообщений: 6


« Ответ #5: 9 Август 2017, 15:49 »

сейчас попробовал нажать кнопку с процедурой RunTest и получил в MsgBox Label1 хотя должен быть тестовый текст. И, если сделать так:
Код:
ocControl.setText("просто тест")
меняет текст метки, хотя логично полагаю, что должно меняться содержимое текстового поля
Записан
sttt
Новичок
*
Offline Offline

Сообщений: 6


« Ответ #6: 9 Август 2017, 15:51 »

LibreOffice Версия: 5.4.0.3
Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 314


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #7: 9 Август 2017, 16:08 »

Давайте пустой документ с макросами и диалогом.

У меня всё нормально работает.


* Нормально работает.png (40.73 Кб, 459x327 - просмотрено 8 раз.)
Записан

sttt
Новичок
*
Offline Offline

Сообщений: 6


« Ответ #8: 9 Август 2017, 16:33 »

Заново сделал книгу с диалогом и все заработало.
Не пойму с чем связано, но не стал метку добавлять на форму,
сначала все необходимые элементы, протестировал и только потом метку добавил.

* FormTextField.ods (11.22 Кб - загружено 5 раз.)
Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 314


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #9: 9 Август 2017, 17:27 »

сейчас попробовал нажать кнопку с процедурой RunTest и получил в MsgBox Label1 хотя должен быть тестовый текст. И, если сделать так:
Код:
ocControl.setText("просто тест")
меняет текст метки, хотя логично полагаю, что должно меняться содержимое текстового поля
Скорей всего была путаница с именами переменных.

Заново сделал книгу с диалогом и все заработало.
Иногда большие эксперименты заводят в большие дебри. В таком случае бывает полезно начать сначала.
Записан

Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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