4D v12.4

SET RESOURCE

ホーム

 
4D v12.4
SET RESOURCE

 

SET RESOURCE 


 

SET RESOURCE ( resType ; resID ; resData {; resFile} )  
引数   説明
resType  文字 in 4文字のリソースタイプ
resID  倍長整数 in リソースID番号
resData  BLOB in リソースの新しい内容
resFile  DocRef in リソースファイル参照番号、または 省略時、カレントリソースファイル

説明   

SET RESOURCE コマンドは、BLOB resDataに渡されるデータを使って引数resTyperesIDに渡されるタイプとIDを持つリソースを作成または上書きします。

重要: resTypeには4文字を渡す必要があります。

リソースを書き込めなかった場合、システム変数OKに0が設定されます。

resFileに有効なリソースファイル参照番号を渡すと、リソースはそのリソースファイルに追加されます。resFileを省略した場合、リソースはリソースチェーンの最上位にあるファイル (最後に開いたリソースファイル) に追加されます。

Note: リソースは数メガバイトのサイズになる可能性があります。

Mac OSベースのリソースに対して作業していることを忘れないでください。プラットフォームが何であろうと、倍長整数のような内部リソースデータは Macintoshバイトオーダーで格納されます。Windows上では、(ストリングリストリソースおよびピクチャリソース等の) 標準リソースデータは必要に応じて自動的にバイトスワップされます。これに対して、カスタム内部データストラクチャを作成および使用する場合は、BLOB から取り出すデータのバイトスワップは開発者に任されています (LONGINT TO BLOBコマンドにMacintosh byte ordering定数を渡すなど)。

例題  

4Dセッション中にインタープロセス変数でユーザの環境設定を管理すると仮定します。この環境設定をセッション間で保存するには、以下のように記述できます:


以下の例は、3番目のメソッドの例です。

に以下のように記述します:

  ` On Exit データベースメソッド
 If(Test path name("DB_Prefs")#Is a document)
    $vhResFile:=Create resource file("DB_Prefs")
 Else
    $vhResFile:=Open resource file("DB_Prefs")
 End if
 If(OK=1)
    VARIABLE TO BLOB(<>vbAutoRepeat;$vxPrefData)
    VARIABLE TO BLOB(<>vlCurTable;$vxPrefData;*)
    VARIABLE TO BLOB(<>asDfltOption;$vxPrefData;*)
  ` and so on...
    SET RESOURCE("PREF";26500;$vxPrefData;$vhResFile)
    CLOSE RESOURCE FILE($vhResFile)
 End if

に以下のように記述します:

  ` On Startup データベースメソッド
 C_BOOLEAN(<>vbAutoRepeat)
 C_LONGINT(<>vlCurTable)
 $vbDone:=False
 $vhResFile:=Open resource file("DB_Prefs")
 If(OK=1)
    GET RESOURCE("PREF";26500;$vxPrefData;$vhResFile)
    If(OK=1)
       $vlOffset:=0
       BLOB TO VARIABLE($vxPrefData;<>vbAutoRepeat;$vlOffset)
       BLOB TO VARIABLE($vxPrefData;<>vlCurTable;$vlOffset)
       BLOB TO VARIABLE($vxPrefData;<>asDfltOption;$vlOffset)
  ` and so on...
       $vbDone:=True
    End if
    CLOSE RESOURCE FILE($vhResFile)
 End if
 If(Not($vbDone))
    <>vbAutoRepeat:=False
    <>vlCurTable:=0
    ARRAY STRING(127;<>asDfltOption;0)
 End if

リソースが書き込まれるとOKは1に、そうでなければ0に設定されます。

 
プロパティ 

プロダクト: 4D
テーマ: リソース
番号: 509

このコマンドはOKシステム変数を更新します

 
履歴 

初出: 4D v6

 
参照 

BLOBコマンド
GET RESOURCE