JWWファイルの超簡易表示用コンポーネント for Delphi 2007(zipファイル)
[Delphi 2007]
今までの超簡易表示シリーズ?をコンポーネントにしたものがあったので、アップしておきますね。素人が試行錯誤の結果をまとめているものなので、(おられないとは思いますが)CAD処理の基本をこのソースで学ばないで下さい(笑)CAD作成に興味がある方は、AFSoftさんの「CAD作ろ!」をぜひご覧下さい。
AFSoft
http://afsoft.jp/index.html
左側のCADをクリックすると右側に「CAD作ろ!」のリンクが表示されます。
このコンポーネントには、下記のユニットが必要になりますので、事前に用意して下さい。
[1] jww data read & save unit Ver1.40β
Peter's Room
http://be-sp.com/petrm/index.html
softwareのページからダウンロードできます。
[2] Delphi zlib
base2 technologies
http://www.base2ti.com/
現在のバージョンは、1.2.5です。
デザイン時(JWWPanelは、動的に作成します)
テスト用コード
実行時
いくつかのファイルを試してみると、ファイルによっては、JwwUnitで、「ファイルの末尾以降を読み込みました」というエラーが表示されました。 私の場合、次のようにすることで読み込めたのですが、JWWファイルが壊れている可能性もあり、実際のところはよくわからないです。とりあえず参考までに載せておきますね。
今までの超簡易表示シリーズ?をコンポーネントにしたものがあったので、アップしておきますね。素人が試行錯誤の結果をまとめているものなので、(おられないとは思いますが)CAD処理の基本をこのソースで学ばないで下さい(笑)CAD作成に興味がある方は、AFSoftさんの「CAD作ろ!」をぜひご覧下さい。
AFSoft
http://afsoft.jp/index.html
左側のCADをクリックすると右側に「CAD作ろ!」のリンクが表示されます。
JWWファイルの超簡易表示用コンポーネント for Delphi 2007
「TJwwPanel.zip」をダウンロード ※JwwPanel.pasとJwwDraw.pasの2つのユニットからなります。 ※今回は、ソースが長いのでZIPファイルとしました。
このコンポーネントには、下記のユニットが必要になりますので、事前に用意して下さい。
[1] jww data read & save unit Ver1.40β
Peter's Room
http://be-sp.com/petrm/index.html
softwareのページからダウンロードできます。
[2] Delphi zlib
base2 technologies
http://www.base2ti.com/
現在のバージョンは、1.2.5です。
1.JWWファイルに同梱された画像は、「年月日-時分秒」フォルダ内に解凍します。 2.レイヤーは、レイヤ名を表示するのみです。 3.ブロックツリーも同様に名前を表示するのみで表示を切り替えません。 4.いろいろな部分がとにかく適当です。(^-^)
デザイン時(JWWPanelは、動的に作成します)
テスト用コード
uses JwwPanel; procedure TForm1.FormCreate(Sender: TObject); var FileName: String; begin JwwPanel1 := TJwwPanel.Create(Self); JwwPanel1.Parent := Self; JwwPanel1.Align := alClient; FileName := 'c:\jww\Aマンション平面例.jww'; if FileExists(FileName) then begin JwwPanel1.FileName := FileName; JwwPanel1.BlockListTreeView := TreeView1; JwwPanel1.LayerTreeView := TreeView2; JwwPanel1.Active := True; end; end;
実行時
いくつかのファイルを試してみると、ファイルによっては、JwwUnitで、「ファイルの末尾以降を読み込みました」というエラーが表示されました。 私の場合、次のようにすることで読み込めたのですが、JWWファイルが壊れている可能性もあり、実際のところはよくわからないです。とりあえず参考までに載せておきますね。
1201-1215行 if JWWHd.JW_DATA_VERSION >= 700 then begin // hiderin // Img: Integerとして宣言済み BlockRead(F,wd,2); if wd > 0 then begin Img := wd; BlockRead(F,wd,2); jwwRead_BundleImage(Img); end; //次の2行がオリジナルです。 // BlockRead(F,dw,4); // jwwRead_BundleImage(dw); end;
| 固定リンク