KCFTOPメニューへ□□ Delphiの部屋 □□
Delphiを利用したJW_CADビュワーの作成方法について研究情報発信の部屋で〜す。
(宮西さん作の shvcl & shview + Delphi3.1j = JW_CADビュワー完成だぁ〜)      

■佐藤卓視さんのJW_CAD comment++のコードへ■
● Delphi用 sh/VCL & sh/VIEW 研究の部屋へ ● 

弾 ■■ shvcl + Delphi3.1j を利用したJW_CADビュワーの作成方法について

順番 ■作成 画像■ ■説明内容■
@ まず shvclとshviewをダウンロードします。
@Delphiを立ち上げて shvcl&shviewコンポーネントを左図のようにインストールする。
A 既存のパッケージへ追加の「ユニットファイル名」の右ボタンをクリックします。
B 「参照」ボタンをクリックすると 選択窓が開きshframe.dcuを選択します。
ファイルの種類を必ずDelphiコンパイル済みユニット(*.dcu)にしてからshframe.dcuを選択すると 簡単です。
以上 shframeのコンパイルが終了しましたら完了です。
C 上記のshframeをコンパイルすると 「sh++」と言うコンポーネントフォームに追加されています。
D では新規作成を選んで JW_CADビュワーを作成してみましょう。
まず「sh++」のshframeをクリックしフォーム内でクリックするとJW_CADを表示する白い枠が表示されますのでドラッグし適当な広さに拡大します。
@standardの中の「メニュー」のコンポーネントクリックしてshframeフォーム外でクリックして配置します。
Aコモンダイログの中の「オープン」ダイアログをクリックしてshフォーム外でクリックして配置する。
Bstandardの中の「ポップアップメニュー」のコンポーネントクリックしてshframeフォーム外でクリックして配置します。
C
E スピードバーです。
このスピードバーが一番良く利用する 所で〜す。
コンパイルしたり プロジェクトを補粗笨したり プロジェクトを読み込んだり 追加したりする所ですね。
F ポップアップメニュー(同時クリック左下ドラッグ時に画面に表示される選択メニュー。)の内容を決めている所です。
今回は 「開く」「JW_CAD起動」「sh/32起動」「印刷」「閉じる」の5つを選択出来るわうにコードを作成しました。
沢山メニュー選択したい場合は ここに追加すれば増やす事が出来ます。
G ここは JW_CADを表示する 背景の色のコードと 線の表示する色を決めています。
それと 拡大する時に表示される四角のラバーバンドの線の色を決めています。
コンパイル後に このラバーバンドの色が変わらないのですが・・・?○○かな。??
H Project1.dprの内容です。
このファイルはDelphiが勝手に自動的に作成してくれます。
Iコード unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, shFrame, ComCtrls, printers;

type
TForm1 = class(TForm)
OpenDialog1: TOpenDialog;
shFrame1: TshFrame;
MainMenu1: TMainMenu;
File1: TMenuItem;
Open1: TMenuItem;
Close1: TMenuItem;
PopupMenu1: TPopupMenu;
Open2: TMenuItem;
Close2: TMenuItem;
JWCAD1: TMenuItem;
sh321: TMenuItem;
Print1: TMenuItem;
procedure FormResize(Sender: TObject);
procedure Close1Click(Sender: TObject);
procedure Open1Click(Sender: TObject);
procedure shFrame1shDragTrap1(Sender: TObject; var Message: TMessage);
procedure JW_CADClick(Sender: TObject);
procedure sh321Click(Sender: TObject);
procedure Print1Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormResize(Sender: TObject);
begin

//shフレームを拡大縮小時に 画面一杯に表示する。
shFrame1.Width:=Form1.ClientWidth;
shFrame1.Height:=Form1.ClientHeight;
//
shFrame1.backcolor:=clblack; //背景色−−黒色
shFrame1.pen1color:=claqua; //水色
shFrame1.pen2color:=clwhite; //白色
shFrame1.pen3color:=cllime; //緑色
shFrame1.pen4color:=clyellow; //黄色
shFrame1.pen5color:=clfuchsia; //紫色
shFrame1.pen6color:=clblue;  //青色
shFrame1.pen7color:=clred;  //ラバーバンド色 赤色に??
//ラバーバドの色が変化しない??。 なぜでしょう。

end;

procedure TForm1.Close1Click(Sender: TObject);
begin
Form1.Close;
end;

procedure TForm1.Open1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
shFrame1.JWCFileName:=OpenDialog1.FileName;
shFrame1.LoadJwcFromFile;

end;
end;

procedure TForm1.shFrame1shDragTrap1(Sender: TObject;
var Message: TMessage);
var
Poi:TPoint;
begin
GetCursorPos(Poi);
PopupMenu1.Popup(Poi.x,Poi.y); //ポップアップメニユーを表示する。
end;

procedure TForm1.JW_CADClick(Sender: TObject);
begin
shframe1.exec_jw_cad;  //JW_CADで編集へ起動する。
end;

procedure TForm1.sh321Click(Sender: TObject);
begin
shframe1.exec_sh32;  //sh/32で編集へ起動する。
end;

procedure TForm1.Print1Click(Sender: TObject);  //プリンターに印刷する。

var canvas1:tcanvas;

begin
printer.BeginDoc;

//プリンター描画処理 canvas1:=printer.canvas;  //まだ出来ていないです。

printer.enddoc;

end;

end.
簡単なJW_CADビュワーの全コードで〜す。
赤い文字部分が私がコードを入力した部分です。

その他の部分は Delphiが自動的に作成してくれます。
ほんとに 簡単にJW_CADビュワーが作成できちゃいますね。
宮西さん 本当にありがとうございます。

私もこの企画には 賛同しまして shview0.80を私の呉CADフォーラム(KCF)ホームページのダウンロード集からダウンロード出来る用になっています。
J コード(プロクラムを書く)が全て書き込みが終わったら 左の「スピードバー」の中の右三角の上でクリックするとコードをコンパイル(プログラムにする)されます。
※必ず コンパイルする前に「オブジェクトを全て保存する」ボタンをクリックして保存して下さい。
K完


では完成したプログラムがちゃんと稼動するかどうか コンパイル済みのEXEファイルをクリックすると左の画面が表示されます。
画面内で同時クリック左下ドラッグでポップアップメニューが表示されればOK 又は ファイルの上でクリックすると 「開く」「閉じる」のメニューが表示されればOKだぁ〜。
さあ〜JW_CADのファイルを選択して画面に表示されれば プログラム完成で〜す。
次にデバッグ(虫取り)をして 色々とプログラムをいじってみます。
それで 途中で止まったり 動かなくなる事がなければOKで〜す。

■ 呉CADフォーラム(KCF)ホームページTOPへ ■