コードで複数のメソッドのプロパティを一度に変更する

Deeplからの自動翻訳

複数のメソッドのプロパティを、それぞれのメソッドのプロパティダイアログを開かずに変更したい場合があるかと思います。

例えば、すべてのメソッドを「プリエンプティブモードで実行可能」な状態に設定してから、データベースをコンパイルしたいとします。コンパイルエラーで、プリエンプティブに変更するメソッドの概要がわかるわけです。

コマンドを使用して METHOD GET NAMESコマンドを使用してデータベースからメソッドのリストを取得し、次に METHOD SET ATTRIBUTESコマンドを使って属性を変更することで、すべてのメソッドを同時に変更することができます。

以下は、プロジェクトのすべてのメソッドをプリエンプティブモードに設定する例です。

ARRAY TEXT
($arrName;0)
C_OBJECT ($attributes)

// Retrieve all methods in structure
METHOD GET NAMES ($arrName)

// Create object with the "preemptive" attribute set to "capable"
OB SET ($attributes; "preemptive"; "capable")

// Change the "preemptive" attribute value for all methods For ($i;1;Size of array($arrName)
METHOD SET ATTRIBUTES
($arrName{$i};$attributes)
End for

コレクションを使ってプロパティを操作する

4Dには、新しい型であるコレクションがあり、コレクションを扱うための多くのメソッドが用意されています。

では、この新しい型はどのように使うのでしょうか?メソッド名やプロパティをコレクションに挿入して、検索したり、変更したり、単純にコレクション型のリストボックスに表示したりします。

以下は、すべてのメソッドプロパティをコレクションに格納する例です。

C_OBJECT$iSize of array$arrName

$i$attributes($attributes)
C_COLLECTION (colMethod)
ARRAY TEXT ($arrName;0)
colMethod :=New collection()

// Retrieve all methods in structure
METHOD GET NAMES ($arrName)

For $attributes :=New object()
// Retrieve the attributes for each method
METHOD GET ATTRIBUTES ($arrName{$i};$attributes)

// Add item in the collection colMethod .push(New object("name";$arrName{ xml
End for

属性を編集した後、コレクションをループさせるだけで結果を保存することができます。

C_OBJECT// Save attributes ($item;$tmp)
// Loop for each item in the collection
For each ($item;colMethod)

$tmp :=$item.attributes
METHOD SET ATTRIBUTES
($item.name;$tmp)
End for each

デモコードによるメソッドプロパティの変更

Vanessa Talbot
- プロダクトオーナー - Vanessa Talbotは、2014年6月に4Dプログラムチームに参加しました。プロダクトオーナーとして、彼女はユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換する役割を担っています。また彼女の役割は、実装された機能が顧客のニーズを満たしているかどうかを確認することでもあります。入社以来、4Dにおける主要機能の定義に関わってきました。プリエンプティブ/マルチスレッドの新機能の大部分と、非常に複雑なテーマである組み込みアプリケーションの新アーキテクチャに取り組んできました。VanessaはTelecom Saint-Etienneで学位を取得後、Criminal Research Institute でオーディオビジュアル部門の開発者としてキャリアをスタートさせました。また、メディアや医療の分野でも、技術サポートやプロダクションの分野で働いてきました。