2011年7月27日水曜日

イメージコントロールを操作する

操作する、というほどでもないが、イメージコントロールに画像を表示する
方法について。
  
先ず、下図のようなフォームを用意 :
  
サンプルコードは下記の通り :
  
Private mobjDialog1 As Object
  
Sub Main
  DialogLibraries.LoadLibrary("Standard")
       mobjDialog1 = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
       mobjDialog1.execute()
End Sub
  
Sub CommandButton1Click()
       Dim objImageControl1 As Object
       objImageControl1 = mobjDialog1.Model.ImageControl1
       objImageControl1.imageURL = ConvertToUrl("D:\Temp\suika.jpg")
       objImageControl1.ScaleImage = True
End Sub
  
Sub CommandButton2Click()
       Dim objImageControl1 As Object
       objImageControl1 = mobjDialog1.Model.ImageControl1
       objImageControl1.imageURL = ConvertToUrl("D:\Temp\suika.jpg")
       objImageControl1.ScaleImage = False
End Sub
  
「画像を表示 (1)」ボタンには CommandButton1Click プロシージャを、
「画像を表示 (2)」ボタンには CommandButton2Click プロシージャを
それそせれ対応させる。
CommandButton1Click プロシージャと CommandButton2Click プロ
シージャの違いは、最後のステートメントが
  
   objImageControl1.ScaleImage = True
  

  
   objImageControl1.ScaleImage = False
  
の差だけである。
実際、「画像を表示 (1)」ボタンをクリックした結果は下図のようになる :
  
一方、「画像を表示 (2)」ボタンをクリックした結果は下図の通り :
  
二つの結果から推察すると、ScaleImage プロパティを True にした場合は
イメージコントロールの大きさに画像を合わせて調整し、False の場合は
調整せずに、そのままの大きさで表示しているように思える。
  
リストボックスやコンボボックスの場合と、イメージボックスでは、若干コード
の記述に違いがある。例えば、リストボックスの場合、オブジェクトを取得
するのに
  
   ListBox 変数 = Form 変数.getControl(ListBox 名)
  
と記述するのに対して、イメージコントロールの場合は
  
   ImageControl 変数Form 変数.Model.イメージコントロール名
  
と記述するらしい。実際、リストボックス同様に記述すると、エラーになった。
また、イメージコントロールに表示する画像は
  
   ImageControl 変数.imageURL = 画像のURL形式のパス
  
と記述する。

0 件のコメント:

コメントを投稿