仮説の Region と 境界
Region メソッドで取得できます。
画像上に仮説の Region を表示するとき、または仮説に基づいてブロックを作成するとき、Region の 境界 は各 Rectangle の 境界 に正確には一致しません。代わりに、見やすく表示するために 検索領域 の 境界 が滑らかにされます。この方法で作成された Region は、仮説の SimplifiedRegion メソッドを使用して取得できます。
Region メソッドと SimplifiedRegion メソッドは、Advanced タブの Advanced pre-search relations field (要素の 検索領域 を記述する場合) または、ブロックのプロパティを記述してすでに見つかっている要素を使用する場合の Region expression field のいずれかで使用できます。
仮説が見つからなかった場合、それはその 検索領域 の ファジー矩形 と一致します。画像上に見つからなかった仮説を表示するとき、FlexiLayout Studio は ファジー矩形 の外側の Rectangle を描画します。
任意の仮説の Left、top、Right、および Bottom の 境界 は range です。見つかった各仮説では、その range は点になります。つまり、Left.Start = Left.End、top.Start = top.End などです。見つからなかった仮説では、境界 の range はその 検索領域 の range と一致します。
FlexiLayout コードでの仮説へのアクセス
すべての要素型の仮説のプロパティ
例: プロパティにアクセスする前にヌル仮説を確認する
IsNullプロパティを確認します) 。ヌル仮説のプロパティにアクセスすると (これは要素が検出されなかったことを示します) 、エラーが発生します。
プログラムのCD-ROMに収録されている Sample 1 のプロジェクトを使用する例を見てみましょう。
文書上にバーコード形式の識別子があり、バーコードの値が1556897142240である文書にのみ FlexiLayout をマッチさせたいとします。
バーコードのプロパティと検索条件を記述する要素 (Sample 1 の要素IdentityNumber) のAdvanced post-search relationsセクションに、次のコードを記述します。
Error in element “MainGroup.IdentityNumber”, Advanced relations section: Attempt to access undefined hypothesis MainGroup.IdentityNumber.
エラーの原因は次のとおりです。FlexiLayout Studio はまず、バーコード要素の仮説を見つけます。次に、バーコードの値をコードで指定された値と比較します。値が異なる場合、Quality: 0; というコードによって、その仮説の値が 0 にリセットされます。
その後、この要素に対してヌル仮説が生成され、FlexiLayout Studio はそのヌル仮説に対しても value != "1556897142240" という条件をチェックします。ヌル仮説の value にアクセスすることはできないため (このプロパティを持たないため) 、FlexiLayout Studio は “…undefined hypothesis…” というエラーメッセージを表示します。
そのため、コードを次のように調整してください:
if not IsNull 条件は実行されません。
そのため、最終的な (ヌル) 仮説の Quality は要素の Properties で指定された値のままになります (デフォルト値のままであれば 0.97) 。その結果、指定された要素がなくても、FlexiLayout Studio は FlexiLayout のマッチングを続行します。
コードに else {Quality: 0;} を追加すると、この文はすべての仮説 (ヌル仮説を含む) に対して実行されます。さらに、この要素で仮説チェーン全体も 0 にリセットされるため、FlexiLayout のマッチングは停止します。
Region() メソッドと SimplifiedRegion() メソッドの比較
Region Region() メソッドと Region SimplifiedRegion() メソッドは、どちらも要素の領域を返しますが、Region Region() メソッドが返すのは正確な領域です。

Region SimplifiedRegion() メソッドは、境界座標に基づいて作成されたRectangleを返します。

