Jump to content

Macros/Base/001

From The Document Foundation Wiki
This page is a translated version of the page Macros/Base/001 and the translation is 100% complete.


説明

私たちは画像をデータベースに組み込まずに管理したいと考えています。利点は、重複を回避できること、特にデータベースのサイズが大きくならないことです。

この機能にはマクロなしでアクセスできます(Special:MyLanguage/Faq/Base/144を参照)。ここでは、関連するプロパティをマクロで管理できることを確認します。目的の結果は次のようになります。

screenshot of form
Formulaire de saisie/affichage des images
  • 一番上のテキストボックスでは、ローカルファイルパスまたは URL を介して画像を取得できます。
  • ファイル選択ボタン「 "..." 」は、ローカルファイルパスを選択するためのダイアログを開きます。
  • 下部のテキストボックスでは、画像のタイトルを入力できます。
  • イメージコントロールでは、画像を表示できます。

上記は、以下に示す 2つのサブルーチンによって実現することができる。

Code

LibreOffice Basicの場合:

Option Explicit

Sub display_image()
    
    Dim oForm As Object
    
    oForm = ThisComponent.DrawPage.Forms.getByName("Standard")    
    oForm.getByName("ImageControl").ImageURL = convertToUrl( oForm.getByName("textbox_ImageURL").Text )

End Sub ' display_image


Sub save_path(oEvent)
    
    Dim oForm As Object

    oForm = ThisComponent.DrawPage.Forms.getByName("Standard")
    oForm.getByName("textbox_ImageURL").Text = oEvent.Source.Text
    oForm.getByName("textbox_ImageURL").commit
    
    display_image()
    
End Sub ' save_path

サブルーチン display_image は、次のイベントに関連付けられています。

  • フォームの保存を変更した後
  • Image Control がフォーカスを受け取った場合

サブルーチンsave_pathは、次のイベントに関連付けられています。

  • Text Box のフォーカスが失われました。
  • File Selection オブジェクトのテキストが変更されました。

例題の ODB ファイル