Region メソッドで取得できます。画像上に仮説の Region を表示する場合や、仮説に基づいてブロックを作成する場合、Region の境界は各 Rectangle の境界に厳密には一致しません。可視性を高めるため、検索領域の境界は平滑化されます。このように作成された Region は、仮説の SimplifiedRegion メソッドでも取得できます。Region と SimplifiedRegion は、Search Conditions セクション (要素の検索領域の記述時) でも、ブロックのプロパティを記述し既に見つかった要素を使用する場合でも利用できます。
仮説が見つからなかった場合、その仮説は検索領域のファジー矩形と一致します。未検出の仮説を画像上に表示する際、プログラムはそのファジー矩形の外接Rectangleを描画します。
任意の仮説の Left、Top、Right、Bottom の境界は「範囲」です。見つかった仮説では、範囲は点へと縮退します。すなわち、Left.Start = Left.End、Top.Start = Top.End などです。未検出の仮説では、各境界の範囲はその検索領域の範囲と一致します。
ブロックや要素の対応するダイアログボックスのコードで、生成済みの仮説とそのプロパティにアクセスすることで、FlexiLayout の設定に追加の手段を得られます。要素の仮説には、要素名でアクセスできます。Hypotheses Evaluation セクションで現在の要素の仮説にアクセスする場合は、プロパティ名のみを使用できます。
仮説およびそのプロパティへのアクセスは読み取り専用です。要素の仮説には、Search Conditions と Hypotheses Evaluation の各セクション、ならびに field の Code Editor セクションからアクセスできます。Search Conditions では、Elements ツリーで現在の要素より上にあるすべての要素について、生成済みの仮説 (およびそのプロパティ) にアクセスできます。Hypotheses Evaluation では、Elements ツリーで現在の要素より上にある要素の生成済み仮説に加えて、現在の要素自体の仮説にもアクセスできます。field の Code Editor では、すべての要素の仮説 (およびそのプロパティ) にアクセスできます。
以下の表に、すべての種類の要素に対する仮説のプロパティを示します。
仮説プロパティを呼び出すためのサンプルコード
単純要素または Group 要素の仮説のプロパティにアクセスする前に、対象の仮説がヌル仮説ではないことを確認してください (IsNull プロパティを呼び出します) 。ヌル仮説 (検出されなかった要素に対応) のプロパティにアクセスするとエラーになります。
Document 上にバーコード形式の識別子があり、バーコードの値が 1556897142240 のものにのみ FlexiLayout を一致させたいとします。これを実現するには次の手順に従います。バーコードのプロパティと検索制約を定義している要素の Hypotheses Evaluation セクションに、次のコードを記述します。
Quality: 0; のコードによって仮説のスコアは 0 にリセットされます。すると、この要素にはヌル仮説が生成され、プログラムはこの仮説に対しても条件 value != "1556897142240" をチェックします。ヌル仮説の値へアクセスすることは許可されていない (そのプロパティが存在しない) ため、プログラムは “…undefined hypothesis…” というエラーメッセージを出力します。
したがって、コードを次のように調整する必要があります。
else {Quality: 0;} を追加すると、その文はすべての仮説 (ヌル仮説を含む) に対して実行され、この要素で仮説の連鎖全体が 0 にリセットされるため、FlexiLayout のマッチングは停止します。
メソッド Region Region() と Region SimplifiedRegion() の比較
メソッド Region Region() と Region SimplifiedRegion() を使用すると、要素の Region を取得できますが、Region Region() メソッドでは正確な Region を取得できる一方、Region SimplifiedRegion() メソッドでは境界の座標に基づいて作成された Rectangle を取得します。