Щоб створити форму користувача в OpenOffice необхідно відкрити вікно редактору Basic. Це можна зробити виконавши команду Сервис=>Макросы=>Управление макросами=>OpenOffice Basic…. З’явиться діалогове вікно для роботи з макросами, показане на мал.4.
Малюнок 4. Діалогове вікно для роботи з макросами.
В лівому списку необхідно вибрати місце, де знаходиться макрос. Це може бути папка «Мои макросы», папка «Макросы OpenOffice.org» або поточний документ (в нашому прикладі це файл «Без имени1»). Виділяємо документ «Без имени1» та натиснемо кнопку «Создать». З’явиться вікно створення нового модуля, що зображено на мал. 5. В цьому вікні задаємо ім’я модуля, або залишаємо ім’я Module1. Після виконання цих дій відкриється вікно редактору програми на мові Basic.
Малюнок 5. Надання ім’я модулю
Щоб створити форму користувача необхідно в OpenOffice.org або в редакторі OpenOffice.org Basic визвати діалог для роботи з макросами (див. мал. 4) за допомогою команди Сервис=>Макросы=>Управление макросами=>OpenOffice Basic…. Обираємо в лівому списку Module1 та натискуємо кнопку «Управление…». З’явиться діалогове вікно керування макросами. В ньому потрібно обрати закладку «Диалоги» і натиснути кнопку «Новый диалог…». В наступному вікні вводимо ім’я діалогу «DialogForm» і натиснемо OK. В списку діалогів з’явиться створена форма. Натиснемо кнопку «Правка» щоб редагувати цю форму. В вікні редактору Open Office.org Basic на закладці з ім’ям форми з’явиться пуста форма. За допомогою панелі інструментів створимо форму, як на мал.3. Для зміни властивостей будь-якого елементу форми необхідно виділити потрібний елемент і в контекстному меню обрати команду «Свойства». Діалогове вікно властивостей показано на мал.6.
Мал. 6. Вікно властивостей.
Розташуємо на формі елементи, перелік яких наведено в таблиці 2. Налаштуйте властивості елементів форми (див. табл.2).
Введіть підпрограму для обчислення за розробленим раніше алгоритмом. Текст програми має такий вигляд.
Private Sub CommandButton1_Click()
Dim x As Single
Dim xTextBox, yTextBox, zTextBox as Object
xTextBox = DialogForm.GetControl("xTextBox")
x = CSng(xTextBox.Text)
Const a As Single = 0.4
Const Pi As Single = 3.1416
Dim y As Single
Dim z As Single
y = a * Cos(Pi * x) * Sin(Pi * x) * Cos(3 * Pi * x)
z = Sqr(Abs(x ^ 2 + x + 1)) / (x + y) - y ^ 2 * (1 + x)
yTextBox = DialogForm.GetControl("yTextBox")
yTextBox.Text = CStr(y)
zTextBox = DialogForm.GetControl("zTextBox")
zTextBox.Text = CStr(z)
End Sub
Щоб ця програма виконувалась коли користувач натискує кнопку CommandButton1 необхідно на формі виділити кнопку та у вікні властивостей обрати закладку «События». В першому рядку «Выполнить действие…» натиснути кнопку праворуч від поля вводу. Далі натиснути кнопку «Макрос…» і обрати макрос CommandButton1_Click.
Введіть підпрограму для зачинення діалогового вікна
Private Sub CommandButton2_Click()
Hide
End Sub
Цю підпрограму необхідно виконувати коли користувач натискує кнопку CommandButton2 «Закрыть диалоговое окно». Налаштуйте необхідну дію за аналогією до першої кнопки.
Щоб вивести на екран форму користувача зробимо підпрограму. Для цього введіть наступну підпрограму
Після цього програма готова до виконання. Закрийте вікно редактору Bisic. Виконайте макрос Express з середовища OpenOffice.org та переконайтесь, що виводиться форма користувача і обчислюється значення функції. Для запуску макроса оберіть пункт меню Сервис=>Макросы=>Выполнить макрос…. Оберіть макрос Express та натисніть кнопку Выполнить. Перевірте роботу макросу.