Вставка изображения в диалог(форму)

Чтобы вставить изображение в диалог, потребуется добавить графический элемент управления. Для этого следует выбрать созданный диалог и вставить в него графический элемент управления, выбрав его на панели элементов. Пример этого показан на скриншоте ниже:



Для вставки изображения, которое находится на файловой системе, выполните следующие действия:

  • Сначала объявляются необходимые переменные:


    Dim dialog, imageControl, model
    Dim imagePath As String : imagePath = "file:///C:/Users/User/test.jpg"

  • Затем загружается стандартная библиотека макросов и диалогов:

    DialogLibraries.LoadLibrary("Standard")

  • После этого получаем объект диалога "Dialog1" и его модель для доступа к диалогу:

    dialog = createUnoDialog(DialogLibraries.Standard.Dialog1)
    model = dialog.getModel()

  • Далее, получаем доступ к графическому элементу управления ImageControl1 и устанавливаем путь до изображения в свойстве ImageURL:

    imageControl = model.getByName("ImageControl1")
    imageControl.ImageURL = imagePath

  • Отображаем диалоговое окно:

    dialog.execute()

                                             


Для вставки изображения, которое хранится на листе в документе ACell, применяется другой подход. Метод доступа к изображению описан в статье, доступной по ссылке: https://support.almi-partner.ru/help/ru/23/241

После успешного доступа к изображению можно воспользоваться следующим кодом для его вставки в диалог:

    'Устанавливает свойство "InputStream"  и значение как полученное изображение в массиве свойств.
    props(0).Name = "InputStream"
    props(0).Value = oImage
    
   'Создаем объект oGraphicProvider который позволяет загружать графические объекты
    oGraphicProvider = CreateUnoService("com.sun.star.graphic.GraphicProvider")

    'Устанавливает графический объект в модели элемента управления изображением в диалоговом окне.
    dialog.getControl("ImageControl1").Model.Graphic = oGraphicProvider.queryGraphic(props)
    dialog.execute()


Прикреплённые файлы
insert_external_image_into_dialog.bas
404kb
insert_internal_image_into_dialog.bas
404kb