Re: 引き出し線について ( No.1 ) |
- 日時: 2008/04/15 15:19
- 名前: NCG
- @に対する回答
申訳ありませんが、DBベクタの場合、ラインとポリゴン以外は原点が表示範囲内に無いと図形の描画が行われない仕様となっております。
Aに対する回答 現象が確認できませんでした。 FGPULLで登録された図形の引き出し線が短くなるのでしょうか?
Bに対する回答 現象が確認できませんでした。 FGFILLIFVで図形の取得が行えないのでしょうか? 下記の”■引出し図形の再取得処理”を変更することで改善されるかご確認下さい。
Cに対する回答 申訳ありませんが、注記全体が画面内に入りきらない配置は行えない仕様となっておりますので注記を配置したいエリアが入るようにに画面を縮小し引出し注記の移動を行って下さい。
■引出し図形の再取得処理 FGPULLに使用した中間ファイルでFGFILLIFを実行することで図形の取得が行えます。
◆変更前 '> 引き出し図形の再取得 georet = gexec("FGCURDB", "elTMP C", SZEL, "! ! ! ! ! ! !", geoLAY) georet = gexec("FGFILLIFV", "elTMP edTMP 0 CUR CLIP LA") ↓ ◆変更後 georet = gexec("FGFILLIF", "inTMP edTMP 0 CUR CLIP LA")
|
Re: 引き出し線について ( No.2 ) |
- 日時: 2008/04/15 15:24
- 名前: GEOSISサポート受付
- @について
対処する方策としてどのような方法が考えられるでしょうか?
Aについて 通常は配置した文字を"FGMODLSTYLE"で編集した後"FGPULLMOVE"で移動するのですが、文字列が画面をはみ出す場合、"FGPULLMOVE"でErr29が発生し、当初に配置した下線の長さになってしまうようです。 つまり配置した文字サイズ変更後の長さに下線が延びない状態になります。 多分C「注記全体が画面内に入りきらない配置は行えない仕様」に影響されているのだと思います。
Bについて 画面に入りきらない文字列を含む引出し線を移動する場合ですが、取得とでなく、取得後の"FGPULLMOVE"にErr29が発生するため図形が取得できないように見えていたようです。 多分これも C「注記全体が画面内に入りきらない配置は行えない仕様」に影響されているのだと思います。
尚、■引出し図形の再取得処理を実行してみましたが、"FGMODASTYLE"でErr41が発生し、文字のサイズが変更できませんでした。
OCX上の「DBベクタの仕様」は解りましたが、引出し線や文字で、「注記全体が画面内に入りきらない配置は行えない仕様」に対する対応策はどのような方法が考えられるでしょうか?
|
Re: 引き出し線について ( No.3 ) |
- 日時: 2008/04/15 15:28
- 名前: NCG
- @に対する回答
DBベクタで文字の大きさを考慮して図形の表示を行うと、全ての注記データを検索する必要があり図形の描画速度が遅くなります。図形の描画速度を考慮して、ラインとポリゴン以外の図形については表示画面内に原点があるデータのみを表示する仕様となっております。 現状では対応策が無い状態ですが、ご理解下さいますよう、お願い致します。
■引出し図形の再取得処理の件 FGFILLIFのパラメータに誤りがあり、正常に中間ファイルが作成されていませんでした。 そのため、その後のコマンド”FGMODASTYLE"でErr41が発生していました。 以下のように訂正を行い、ご確認下さい。
◆誤り georet = gexec("FGFILLIF", "inTMP edTMP 0 CUR CLIP LA") ↓ ◆訂正 georet = gexec("FGFILLIF", "inTMP edTMP 0 CUR LA")
|
Re: 引き出し線について ( No.4 ) |
- 日時: 2008/04/15 15:39
- 名前: NCG
- ■注記全体が画面に入りきらない場合の対応について
FGPULLMOVEを実行する前に引き出し注記が上下左右に移動できる範囲に表示範囲を変更することで、FGPULLMOVEのエラーを回避することが出来ますので、ご検討下さい。 処理の流れの例を紹介します。
1)注記・ラインのスタイル変更(FGMODASTYLE・FGMODLSTYLE)
2)注記の長さを取得 @FGGETMINMAXRECT(注記の大きさの中間ファイル作成) ※FGMODASTYLEで使用した中間ファイルを使用 AFGGETINFO(@で作成した中間ファイルのXMIN,XMAXを取得し幅を算出)
3)現在の表示画面の幅を取得 @FGO2T(画面内の中間ファイルを作成) AFGGETINFO(@で作成した中間ファイルのXMIN,XMAXを取得し幅を算出)
4)2)で取得した注記の長さの2倍と3)で取得した表示画面の幅を比較 ※注記を左右に動かせるようにするために2)で取得した文字の長さを2倍にします。
5)4)で比較した結果、現在の表示画面が狭い場合(引出し注記の左右移動が行えない範囲の場合)には 表示範囲を広げるための中間ファイルを作成 ※表示範囲が狭くない場合は5)、6)の処理を省略し7)を実行します。
引出し注記の登録位置(プログラム内の変数の sx , sy)から文字の幅分広げた範囲で中間ファイルを作成 例) gexec "fgcurdb", "wrect", "c", "! ! !", sX -注記の長さ, sY - 注記の長さ gexec "fgcurdb", "wrect", "A", "! ! !", sX +注記の長さ, sY + 注記の長さ
6)5)で作成した中間ファイルの範囲を表示(FGDISP)
7)引出し注記の移動(FGPULLMOVE)
|
|