VBScript フォーム コンポーネントの使用
VBScript フォームでのコンポーネントの使用
フォームおよびコンポーネントは、Embarcadero Delphi™のVisual Component Library (VCL) を基盤としていますが、Altium Designerでは、Delphiベースの
コンポーネントの概要
スクリプトシステムでは、ビジュアルコンポーネントとノンビジュアルコンポーネントの2種類のコンポーネントを扱います。ビジュアルコンポーネントはユーザーインターフェースの構築に使用され、ノンビジュアルコンポーネントは、 TimerOpenDialogMainMenuTimerButtonEditMemo
どちらのタイプのコンポーネントもデザイン時には表示されますが、非視覚的コンポーネントは実行時には表示されません。
- プロパティ
- イベント
- メソッド
A Visible
イベントとは、スクリプトによって検出される動作や発生を指します。スクリプト内では、プログラマーは
A
すべてのスクリプトフォームには、1つ以上のコンポーネントが含まれています。コンポーネントは通常、情報を表示したり、ユーザーがアクションを実行できるようにしたりします。たとえば、Labelは静的なテキストの表示に使用され、Editボックスはユーザーがデータを入力するために使用され、Buttonはアクションを開始するために使用されます。
フォーム上には、任意の組み合わせでコンポーネントを配置することができ、スクリプトの実行時(ランタイム)にユーザーがそれらと対話できるようになります。ユーザーがボタンをクリックしたり、編集ボックスのテキストを変更したりした際に何が起こるかを決定するのは、スクリプトプログラマーの役割です。
スクリプティングシステムは、スクリプト用の単純なものから複雑なものまで、さまざまなユーザーインターフェースを作成するための幅広いコンポーネントを提供しています。フォームに配置できるすべてのコンポーネントは、「ツールパレット」パネルにあります。
コンポーネントをフォームに配置するには、
デフォルトの位置と幅・高さで配置されたコンポーネントは、マウスを使用するか、または
スクリプトフォームの設計
スクリプトフォームは、Altium Designer 環境内でユーザーと対話するように設計されています。スクリプトフォームの設計は、Altium Designer におけるビジュアル開発の中核をなします。
スクリプトフォームに配置された各コンポーネントや設定されたすべてのプロパティは、そのフォームを記述するファイル( *.dfm*.vbs*.vbs*.dfm
スクリプトフォームとそのコンポーネントを操作する際、そのプロパティには Caption
新しいスクリプトフォームの作成
スクリプト・プロジェクトを開いた状態で、 EditScript1.vbs *.PrjPCB
スクリプトフォームの表示
スクリプトには、Altium Designer でスクリプトフォームが実行された際にフォームを表示するルーチンが含まれている必要があります。このルーチン内で、 ShowModalVisibleShowModal
ShowModal の例
Sub RunDialog DialogForm.ShowModal End Sub
上記の ShowModalRunDialogDialogFormDialogForm.ShowModal
ModalResultmrOkmrCancelShowModal
sub bOKButtonClick(Sender) ModalResult := mrOK end sub sub bCancelButtonClick(Sender) ModalResult := mrCancel end sub sub RunShowModalExample 'Form Visible property must be false for ShowModal to work properly. If Form.ShowModal = mrOk Then ShowMessage("mrOk") If Form.ShowModal = mrCancel Then ShowMessage("mrCancel") end sub
上記と同じ処理は、 ModalResultmrOkmrCancelCloseModalResult
なお、フォームの ModalResultSender.Cancel := TrueCancelButtonClick
ユーザー入力の受け付け
ユーザーからの入力を受け付けることができる一般的なコンポーネントの一つに、 EditBoxEditBox
以下の例は、ユーザーが編集ボックスにテキストを入力した後、ボタンをクリックした際に何が起こるかを示しています。なお、ユーザーが編集コンポーネントにテキストを入力しなかった場合、イベントハンドラは警告メッセージを表示することに注意してください
sub TScriptForm.ButtonClick(Sender) If Edit1.Text = "" Then ShowMessage("Warning - empty input!") Exit End ' do something else for the input End sub
なお、ユーザーは
イベントへの対応
ユーザーがフォームまたはコンポーネントを選択すると、Altium Designer はスクリプティングシステムにメッセージを送信し、スクリプティングシステムは適切なイベントハンドラメソッドを呼び出すことでイベント通知に応答します。
イベントハンドラの記述
スクリプトは、実行時にコンポーネントで発生する可能性のあるイベントに応答する必要がある場合があります。イベントとは、ボタンのクリックなど Altium Designer での発生事象と、その事象に応答するコードとの関連付けのことです。応答するコードはイベントハンドラであり、プロパティの値を変更したり、メソッドを呼び出したりします。
コンポーネントのプロパティには、それぞれ一連のイベント名が割り当てられています。スクリプトプログラマは、Altium Designer におけるユーザーの操作に対してどのように反応するかを決定します。たとえば、ユーザーがフォーム上のボタンをクリックすると、Altium Designer はスクリプトにメッセージを送信し、スクリプトはこの新しいイベントに反応します。 OnClick
このようなコンポーネントにはすべて、フォーカスを取得および喪失するイベントも用意されています。ただし、OnEnterおよびOnExitのコードが指定されていない場合(OnEnterOnExit
コンポーネントのプロパティ
コンポーネントのプロパティ一覧を表示するには、コンポーネントを選択し、
コンポーネントのイベント
コンポーネントが反応できるイベントの一覧を表示するには、コンポーネントを選択し、
たとえば、 Button1OnClickCloseCloseClickClose
要約すると、イベントハンドラは、フォーム上のコンポーネントを選択するか、または
あるいは、ボタンをダブルクリックすると、スクリプトシステムが OnClick
コンポーネントのメソッド
コンポーネントのメソッドの一覧については、「コンポーネントリファレンス」を参照し、詳細については Embarcadero Delphi のドキュメントを参照してください。
実行時のコンポーネントの作成
スクリプト内でコンポーネントを直接作成および破棄することができます。通常、フォームのハンドルを渡す必要はありません。スクリプトフォームが自動的に処理してくれるためです。その代わりに、コンポーネントのコンストラクタに Nil
たとえば、 TOpenDialogTSaveDialog