メインコンテンツまでスキップ
バージョン: 開発中

SET PICTURE TO LIBRARY

SET PICTURE TO LIBRARY ( picture ; picRef ; picName )

引数説明
picturePicture新しいピクチャ
picRefIntegerピクチャライブラリ画像の参照番号
picNameTextピクチャの新しい名前

このコマンドはスレッドセーフではないため、プリエンプティブなコードには使えません。

説明

SET PICTURE TO LIBRARY コマンドは、新規ピクチャを作成、またはピクチャライブラリにあるピクチャを置き換えます。

このコマンドを呼び出す前に、下記の引数を渡してください:

  • picRefにピクチャ参照番号(1~32767の範囲)
  • pictureにピクチャ自身
  • picNameにピクチャの名前(最大255文字)

同じ参照番号を持つ既存のピクチャライブラリのピクチャがある場合、そのピクチャの内容は置き換えられ、引数picturepicNameに渡された値でピクチャと名前が変更されます。

picRefに渡された参照番号を持つピクチャライブラリのピクチャがない場合、新規ピクチャがピクチャライブラリに追加されます。

4D Server: SET PICTURE TO LIBRARYコマンドはサーバマシン上で実行される (ストアードプロシージャやトリガ) メソッドの中から使用することはできません。SET PICTURE TO LIBRARYコマンドをサーバマシン上で呼び出しても、無視され、何も行われません。

警告: デザインオブジェクト (階層リスト項目、メニュー項目等) は、ピクチャライブラリのピクチャを参照することができます。プログラムによってピクチャライブラリのピクチャを修正する際は、注意する必要があります。

Note: pictureに空のピクチャを渡すか、picRefに負数またはヌル値を渡すと、コマンドは何も行いません。

例題 1

以下の例は、ピクチャライブラリの現在の内容に関わらず、最初にユニークなピクチャ参照番号を探すことによってピクチャライブラリに新規ピクチャを追加します:

 PICTURE LIBRARY LIST($alPicRef;$asPicNames)
 Repeat
    $vlPicRef:=1+Abs(Random)
 Until(Find in array($alPicRef;$vlPicRef)<0)
 SET PICTURE TO LIBRARY(vgPicture;$vlPicRef;"New Picture")

例題 2

以下の例は、PICTURE LIBRARY LISTの3番目の例題で作成した、ディスク上のドキュメントに格納されたピクチャをピクチャライブラリの中に読み込みます:

 SET CHANNEL(10;"")
 If(OK=1)
    RECEIVE VARIABLE($vsTag)
    If($vsTag="4DV6PICTURELIBRARYEXPORT")
       RECEIVE VARIABLE($vlNbPictures)
       If($vlNbPictures>0)
          For($vlPicture;1;$vlNbPictures)
             RECEIVE VARIABLE($vlPicRef)
             If(OK=1)
                RECEIVE VARIABLE($vsPicName)
             End if
             If(OK=1)
                RECEIVE VARIABLE($vgPicture)
             End if
             If(OK=1)
                SET PICTURE TO LIBRARY($vgPicture;$vlPicRef;$vsPicName)
             Else
                $vlPicture:=$vlNbPictures+1
                ALERT("This file looks like being damaged.")
             End if
          End for
       Else
          ALERT("This file looks like being damaged.")
       End if
    Else
       ALERT("The file “"+Document+"” is not a Picture Library export file.")
    End if
    SET CHANNEL(11)
    End

エラー管理

ピクチャライブラリにピクチャを追加するための十分なメモリがない場合、エラーコード-108が生成されます。また、I/Oエラーが返される(例えば、ストラクチャファイルがロックされている等)点にも注意してください。エラー処理メソッドを使って、このエラーを受け取ることができます。

参照

GET PICTURE FROM LIBRARY
PICTURE LIBRARY LIST
REMOVE PICTURE FROM LIBRARY