------------------------------------------------------------------------------
Hot Soup Processor ver3.2                           HSP : Hot Soup Processor  
Additional HSP Template & Tools       copyright 1997-2009 (c) onion software  
------------------------------------------------------------------------------

■はじめに

	AHT(Additional HSP Template & Tools)は、Hot Soup Processor ver3.1以降
	とともに使用することで、ソースの自動生成及び外部データとの連携を
	行なうための様々な仕組みを提供します。


■AHTの概要

	AHTには、様々な役割があります。

	・新しいHSPソーススクリプトを自動生成するためのルールを取り決める
	・再利用可能なHSPソーススクリプト同士の相互依存関係を定める
	・HSPで使用可能なデータ形式やそのツールの依存関係を定める

	つまり、誰でも手軽にHSPのソーススクリプトを生成するための方法と、
	ひな型となるスクリプトやツールを簡単に利用するための仕組みを
	サポートするものだと考えてください。

	HSPでは、スクリプトを再利用するための手段として、モジュールや
	マクロ、プラグインなどを提供してきました。しかしこれらは、
	それぞれのユーザーが独自のルールで作成し、公開を行なってきました。
	AHTは、これを決められたルールで書式化することで、各種の定型
	スクリプトを共通の方法で、より手軽に再利用・連携を行なうことを
	目指しています。

	テンプレートは、HSP3.1から導入される新しい概念です。
	一般的なプログラム言語で使われるテンプレートという概念は、
	コードの抽象化を行なうための高度なメカニズムを指すことが多いのですが、
	HSPの場合はもっと単純に「ひな型」を提供することに主眼を置いて、
	より手軽にスクリプトを再利用するために活用されることになります。 

	AHTは、再利用可能なHSPソーススクリプトの情報及び、管理を行なう
	ツールを含めた仕組みの総称です。
	AHTで使用する、定義ファイルは拡張子「.aht」を持つ、「AHTファイル」
	と呼ばれます。


■「かんたん入力」メニュー

	「かんたん入力」機能は、HSP3の標準スクリプトエディタから、
	機能別にスクリプト入力を支援するもので、右クリックメニューを
	押して「かんたん入力」以下のサブメニュー項目を選択することで、
	利用することができます。
	たとえば、「色を指定」という機能を選択した場合には、
	指定する色をR,G,Bまたは16進数により入力するためのボックスや、
	色見本の中から指定することのできるダイアログが現われます。
	ユーザーが指定したい色をダイアログに入力して「OK」ボタンを
	押すことで、スクリプトエディタのカーソル位置にスクリプトが
	自動的に生成されます。
	「かんたん入力」は、自分が利用したい機能のキーワードが不明な
	時や、フォント名、カラーコードなど直感的でないパラメーターを
	入力する補助となります。
	「かんたん入力」メニューは、AHTの機能を利用して作られています。
	ユーザーが、メニュー項目を自由に編集することができ、自由度の
	高い入力支援を提供することができます。
	「かんたん入力」メニュー項目は、スクリプトエディタ(hsed3.exe)
	が存在するフォルダにある、「ezinput」フォルダ以下が自動的に
	検索されます。つまり、「ezinput」フォルダ内にAHTファイルを
	コピーするだけでメニュー項目を簡単に追加することができます。
	「ezinput」フォルダ以下に新規フォルダを作成した場合には、
	メニュー内でも階層構造が作られます。
	これにより、カテゴリ別にメニュー項目を振り分けることが可能に
	なります。


■HSPテンプレートマネージャー(Peas)

	HSPテンプレートマネージャー(Peas)は、マウス操作を主体にしたツールで、
	AHTファイルを組み合わせ、プログラムの作成や実行を行なうことができる
	機能を持っています。
	自動的に生成されるスクリプトを組み合わせることで、ごく簡単な
	アプリケーションであれば、スクリプトエディタを使用することなく
	ソフトを完成させることができます。
	HSPテンプレートマネージャーは、新しいスタイルでHSPのスクリプトを
	作成することを提案するものですが、スクリプトエディタに替わるもの
	ではありません。
	ユーザーのスタイルや、要求されるソフトの内容によって、最適なツールを
	選んでもらえれば嬉しいです。


■AHTファイル概要

	AHTファイルは、HSPソーススクリプトを生成するための「ひな型」と
	して扱われる形式を指します。
	AHTファイルは、「.aht」の拡張子を持っています。
	AHTファイルは、HSP3のソーススクリプトファイル(.hsp)と互換性が
	あります。AHTファイルをそのままHSP3のソースとしてコンパイルを
	行なうことが可能です。

	AHTファイルは、プリプロセッサ命令を使用してAHTヘッダと呼ばれる
	定義情報が指定されています。また、特別な書式のコメントを使用して
	ダイアログインターフェース定義を行なっています。

	AHTファイルは、従来のHSP3ソーススクリプトを手軽にひな型として
	再利用するための形式です。最小限の修正で、従来のスクリプトを
	AHTファイルとして扱うことができます。


■AHTファイルヘッダ

	AHTファイルヘッダは、AHTファイルの情報を定義します。
	「#aht」プリプロセッサ命令により、ひな型としてのソースコードに
	関する情報を指定することができます。

	#aht class "クラス名"

		AHTファイルのクラス名を指定します。
		AHTファイルは何らかのクラスに所属する必要があります。
		クラス名は、「hsp3.std」のようにピリオドで階層を区切る
		ことができます。
		クラス名は、AHTファイル同士が安全に運用できるように
		使用される環境を定義するものです。
		たとえば、HSP3の標準機能で作成されているものは、
		「hsp3.std」で、HGIMG3環境の場合は、「hsp3.hgimg3」の
		ように異なる環境のソースコードが混ざらないように区別を
		行なうための指標となります。
		このクラス名は、HSPテンプレートマネージャーで主に
		使用されます。

	#aht name "テンプレート名"

		AHTファイルの名称を指定します。
		この定義は省略することが可能です。
		省略した場合は、ファイル名がそのままテンプレート名になります。

	#aht author "作者名"

		AHTファイルの作者名を指定します。
		この定義は省略することが可能です。

	#aht ver "バージョン"

		AHTファイルのバージョンを指定します。
		この定義は省略することが可能です。

	#aht exp "説明文章"

		AHTファイルについての説明を指定します。
		この項目は、複数記述することで追記されていきます。
		この定義は省略することが可能です。

	#aht icon "ファイル名"

		AHTファイル固有のアイコンファイルを指定します。
		この定義は省略することが可能です。
		この項目は、HSPテンプレートマネージャーで使用されます。

	#aht iconid 0

		AHTファイル固有のアイコンIDを指定します。
		この定義は省略することが可能です。
		この項目は、HSPテンプレートマネージャーで使用されます。

	#aht helpkw "ヘルプキーワード"

		ヘルプキーワードを指定します。
		このキーワードは、かんたん入力時にヘルプボタンでHDL
		に渡される文字列を指定します。


■AHTコメント

	AHTコメントを記述することにより、特定のキーワード項目を再定義
	可能な項目として登録することができます。
	AHTコメントのルールは、以下の通りです。

	・#constまたは#define命令に「;;」コメントを付ける
	・「;;」コメントの後にオプション指定文字列を指定することが可能
	・あらかじめ定義されているパラメーターがデフォルトとなります

	通常のコメントは、「;」ですが、これを「;;」にした場合にのみ
	AHTコメントとして認識されます。
	AHTコメントが指定されたキーワードは、GUIによって再定義可能な
	項目として認識されます。

		例:
			#const test1 123 ;  普通のコメントです
			#const test2 456 ;; AHTコメントです

	上の例では、test1、test2をマクロとして定義しています。
	このソースをひな型として、新しいソースを生成する場合に、
	test2の「456」という定義がGUIにより書き換え可能になります。
	AHTコメントには、いくつかの記述ルールがあり、キーワードを
	再定義する場合の補足情報を書いておくことができます。
	「オプション文字列=パラメーター」という書式を「,」で区切り
	ながら記述します。

		例:
			#const test1 123 ;;int,min=1,max=10

	オプション文字列には、以下の種類があります。
	また、パラメーターは省略可能なものもあります。

	・name

		キーワードの表示名称を定義します。
		nameオプションが定義されなかった場合は、定義キーワードが
		そのまま名称として使用されます。
		このオプションで、名称を変更した場合は、定義キーワードと
		名称の相違が起こります。十分に注意して使用してください。

		例:
			#const test1 123 ;;name="名称"

	・int

		キーワードは整数値を定義していることを示します。
		#const命令により定義されたキーワードは、デフォルトで
		intオプションが使用されます。
		min、maxオプションにより最小値、最大値を設定することが可能。

		例:
			#const test1 123 ;;int,min=1,max=10

	・double

		キーワードは実数値を定義していることを示します。
		min、maxオプションにより最小値、最大値を設定することが可能。

		例:
			#const test1 0.0 ;;double,min=0.0,max=1.0

	・str

		キーワードは文字列を定義していることを示します。
		#define命令により定義されたキーワードは、デフォルトで
		strオプションが使用されます。

		例:
			#define test1 "ABC" ;;str

	・combox

		キーワードをコンボボックスにより再定義可能であることを示します。
		prm、optオプションによりコンボボックスの内容を指定します。

		例:
			#define モード 0	;;combox,prm="0\n1\n",opt="時間待ち\nキー入力待ち"

	・chkbox

		キーワードをチェックボックスにより再定義可能であることを示します。
		prm、optオプションによりチェックボックスの内容を指定します。

	・color

		キーワードをファイル選択ダイアログにより再定義可能であることを示します。
		追加で「opt="rgb"」が指定された場合、後に続く3項目は、R,G,B値の編集用として
		使用されます。

		例:
			#define 指定する色コード	$ffffff	;;color

	・file

		キーワードをファイル選択ダイアログにより再定義可能であることを示します。
		prmオプションにより拡張子の内容を指定します。

		例:
			#define 画像ファイル	""	;;file,prm="bmp;*.jpg;*.gif"

	・font

		キーワードをフォント選択ダイアログにより再定義可能であることを示します。
		後に続く2項目は、文字サイズ、モードとして使用されます。

		例:
			#define フォント名	""	;;font,help="ボタンを押して選択。"
			#const 文字サイズ 13	;;help="ポイント"
			#const 文字モード 0	;;help="スタイルを指定します"

	・exec

		キーワードを外部ツールにより再定義可能であることを示します。
		optオプションにより外部ツール名を指定します。

	・parts

		ビジュアル編集ツールに配置されているパーツオブジェクトを参照して、
		パーツIDによる再定義されることを示します。
		prmオプションにより参照可能なパーツのクラス文字列を指定します。
		(クラス文字列は前方一致が有効になります)

	・pprop

		キーワードを「parts」で指定したパーツオブジェクトのプロパティ文字列で再定義されることを示します。
		参照されるパーツは、最後に定義されたpartsオプションのものになります。
		prmオプションによりプロパティの内容(文字列)を指定します。

	・popt

		キーワードを「parts」で指定したパーツオブジェクトのオプション文字列で再定義されることを示します。
		参照されるパーツは、最後に定義されたpartsオプションのものになります。
		prmオプションによりオプションの内容(文字列)を指定します。

	・help

		補足説明の文字列を定義します。
		補足説明は、GUI編集時に表示されます。

	・pure

		文字列を定義しているキーワードを#ahtoutにより展開することを示します。
		デフォルトで、pure指定は有効になっています。
		このキーワードは、明示するためと、互換性のために用意されています。

		例:
			#define test1 "ABC" ;;pure
			#ahtmes "ABC="+test1

	・mes

		文字列を定義しているキーワードを#ahtmesにより展開することを示します。
		ダブルクォートで囲まれた文字列にmes指定を行なった場合に、
		#ahtmes命令で正しくキーワードの展開を行なうことができます。

	・read

		定義しているキーワードを編集した時に、コントロールを無効にします。

	・refname

		定義されている文字列をAHTファイルヘッダのnameパラメーターとして
		再定義します。(HSPテンプレートマネージャーのパーツ表示名の設定
		に使用します。)

	・withid

		定義されている文字列にモデルIDを付加して再定義を行ないます。
		(HSPテンプレートマネージャーのパーツ設定名に使用します。)


■AHTメッセージ出力

	プリプロセッサ命令である、「#ahtmes」を使用して外部へのメッセージ
	出力を行なうことが可能です。
	「かんたん入力」機能時は、エディタ上に追加されるソースコードを
	記述するために使用しています。
	Peasエディタ使用時には、初期化項目(スクリプトの先頭に追加する項目)を
	記述するために使用しています。

	#ahtmes命令は、mes命令と同様に文字列やマクロを「+」演算子で接続させて
	出力することができます。

	例:
		#define 代入する変数	a	;;str
		#const 乱数の範囲 100		;;help="0から指定範囲-1まで発生します"
		#ahtmes	"	"+代入する変数+" = rnd( "+乱数の範囲+" )\t\t; 変数 "+代入する変数+" に乱数を代入します。"

	通常のmes命令と異なり、あくまでもプリプロセッサ上で定義されている
	マクロを接続するという点に注意してください。


■AHTサポートモジュール

	AHTに関する機能は、hspcmp.dll及びAHTモジュール(mod_aht.as)によって
	提供されます。AHTマネージャーを含め、すべてのAHT関連ツールはHSP3に
	よって作成されています。


■更新履歴

	2009/06/24 3.2β4

		comboxオプションの例を修正。
		Peas用のif.ahtを修正。

	2009/05/14 3.2β3

		ファイルヘッダのオプションにhelpkw項目を追加。

	2007/07/15 3.1RC1

		HSPテンプレートマネージャー(Peas)ツールを正式公開。

	2007/06/08 3.1β10

		AHTコメントのnameオプション不具合を修正。

	2007/02/09 3.1β7

		AHTコメントキーワード「pure」を追加。

	2006/11/10 3.1β6

		AHTのプレビュー版として最初の公開。


------------------------------------------------------------------------------
                                                        AHT.TXT / end of file 
------------------------------------------------------------------------------
