« Evernoteへメモを追加する。(添付ファイル付) | トップページ | Excel 2010を操作してみる。 »

JWWファイルの超簡易表示用コンポーネント for Delphi 2007(zipファイル)

[Delphi 2007]
今までの超簡易表示シリーズ?をコンポーネントにしたものがあったので、アップしておきますね。素人が試行錯誤の結果をまとめているものなので、(おられないとは思いますが)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は、動的に作成します)

Design_2


テスト用コード
 

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;


実行時

Runtime_2



いくつかのファイルを試してみると、ファイルによっては、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;

|

« Evernoteへメモを追加する。(添付ファイル付) | トップページ | Excel 2010を操作してみる。 »