グラフィカル・コンポーネントのスクリプティング

 

このリファレンスでは、スクリプトでサポートされるグラフィカルコンポーネントと、それらの主要なプロパティおよびメソッドの概要を示します。

Altium Designer スクリプトで使用できるビジュアルフォームコンポーネントは、主に Embarcadero の Visual Component Library(VCL)に由来します。VCL は、Delphi および C++ 言語を用いて Windows アプリケーションを開発するために定義されたビジュアルコンポーネントのコレクションです。

ビジュアルクラスライブラリとして開発された VCL クラスは、線形のオブジェクト階層において TComponent オブジェクト(それ自体が TObject ルートオブジェクトの派生)から派生しています。したがって、TButton オブジェクトのような一般的なスクリプトコンポーネントは、上位オブジェクトからプロパティ、メソッド、イベントを継承します。この場合のクラス階層は次のとおりです:TObject → TPersistent → TComponent → TControl → TWinControl → TButtonControl → TButton

なお、TControl オブジェクトから派生するコンポーネントは一般にビジュアルコンポーネント(コントロール)であり、TWinControl から派生する一般的なコンポーネントは主に Windows API のラッパーです。

► VCL のアーキテクチャとコンポーネントの概要については Embarcadero RAD Studio VCL を参照してください。

Altium Designer の Script Editor でフォームを作成する際、コンポーネントは Tool Palette パネルからアクセスします。Script Form には、フォームの構成、コンポーネントの配置、その他の属性の詳細を含む関連 *.DFM ファイルがあり、このファイルはスクリプトプロジェクトのホストフォルダ内にあります。Altium Designer では、Script Form の設計時に DelphiScript または VBScript のいずれかでコンポーネントを使用できます。

VBScript 言語はレガシーと見なされ、既定では利用できませんが、Advanced PreferencesLegacy.Scripts.SupportOldLanguages 設定で有効化できます。

Tool Palette パネルには、スクリプト Form にドロップできるカテゴリ別のビジュアルコントロールが含まれています。
Tool Palette パネルには、スクリプト Form にドロップできるカテゴリ別のビジュアルコントロールが含まれています。

Tool Palette panel には、Script Form に配置できるコンポーネントのカテゴリ別選択肢が含まれています。利用可能なコンポーネントは Tool Palette パネル内の展開可能なセクションにまとめられており、Standard、Additional、Win32、System、Dialogs、Altium Standard、Instrument Controls に分類されています。

パネルの外観と動作は、右クリックのコンテキストメニューから変更できます。

パレットで利用できるコンポーネント(または「コントロール」)は、スクリプトフォーム上で使用する場合はビジュアルコンポーネントであり、ユーザーは実行時にコントロールを視認し、場合によっては操作できます。すべてのコントロールには、外観の側面を表すプロパティ、メソッド、イベントがあります。たとえば、コントロールの位置を示す position プロパティ、コントロールを描画または移動するメソッド、ユーザー操作に応答するイベントなどです。

プロパティとイベントは、現在選択されているフォームコンポーネント(フォーム自体を含む)について Object Inspector panel で利用できます。メソッドは、そのコンポーネントがサポートするプロシージャおよび関数です。

Script Forms Overview

Script Forms

Script Form はスクリプトにおける主要なユーザーインターフェースですが、ダイアログボックス、セカンダリウィンドウなど他のフォームもあります。新しい Script Form を作成するには、Altium Designer でプロジェクトを開いた状態で File » New » Script » Script Form を選択するか、Script プロジェクト名を右クリックして Add New to Project » Script Form を選びます。VBScript 言語が有効な場合、このコマンドは VB Script と Delphi Script の両方で利用できます。

新しい Script Form は既定で Form1 のフォーム名で作成されますが、Object Inspector パネルの Misc 配下にある Name プロパティで変更できます。スクリプトフォーム名はプロジェクト内で一意である必要があります。

スクリプト Form を設計する際は、下部ステータスバーの Script button から Object Inspector Panel を開きます。スクリプト Form を設計する際は、下部ステータスバーの Script button から Object Inspector Panel を開きます。

空のフォームは基本的に、コントロールを追加できるビジュアルウィンドウです。ダイアログやパネルは別種のフォームであり、既定ではフォームに次のような標準ウィンドウ機能が含まれます:

  • Controls
  • 最小化および最大化ボタン
  • タイトルバー
  • 境界のドラッグによるサイズ変更

これらの機能は、他の利用可能なフォームプロパティと同様に、設計時に Object Inspector パネルを使用して変更できます。Script Form は VCL コンポーネントであるため、次の 3 つの項目を持ちます:

  • Properties – オブジェクトの可視的な振る舞いや動作に影響する特性。たとえば Visible property は、オブジェクトがスクリプトフォーム上で表示されるかどうかを決定します。
  • Events – スクリプトが検出するアクションまたは発生事象。スクリプトには各イベントハンドラのコードを含める必要があり、イベントハンドラはマウスクリックなど特定のイベントを捕捉するよう設計されています。
  • Methods – オブジェクト(この場合はコンポーネントオブジェクト)に関連付けられ、その振る舞いを定義するスクリプトプロシージャ。

► フォームベースのスクリプト開発の基本ガイドについては Writing Scripts を参照してください。

Form Properties, Methods and Events

Tool Palette パネルのコントロールは Embarcadero Visual Component Library(VCL)に基づいています。Form コンポーネント(TForm)のメソッド、プロパティ、イベントの詳細については、Embarcadero の VCL ドキュメントを参照してください。

Embarcadero TForm reference

を参照してください。なお、上記リンクは VCL ライブラリの Embarcadero RAD Studio XE6 リファレンスを指します。以前のリリース(2010 バージョンまで)のドキュメントも利用可能です。

TForm Properties

ベースとなるスクリプトフォームである TForm コンポーネントオブジェクトの利用可能なプロパティは、次の方法で確認できます:

  • Object Inspector Panel から – エディタの Form ビュー(Form タブを選択)で、フォーム本体をクリックし、Object Inspector's Properties タブを選択します。

パネルに表示されるのはビジュアルコンポーネントオブジェクトのみである点に注意してください。裏側で動作する非ビジュアルオブジェクトはフォーム上に表示されません。

  • コード補完機能を使用 – エディタの Code ビュー(Code タブを選択)では、コンテキストに応じた Code Completion ウィンドウに、オブジェクト名に対するすべてのコード候補が表示されます。

Form オブジェクトの場合、TForm.(ピリオドに注意)を入力してウィンドウを起動します。目的のプロパティの先頭数文字を入力して検索を絞り込めます。プロパティとメソッドの両方が表示される点に注意してください。

TForm Methods

TForm コンポーネントオブジェクトの利用可能なメソッドは、次の方法で確認できます:

  • コード補完機能を使用 – エディタの Code ビューで、コンポーネント名に続けてピリオドを入力します。Code Completion ウィンドウが開き、オブジェクト名に対するコードメソッド(およびプロパティ)が表示されます。なお、コードウィンドウは Crtl+Space ショートカットキーで手動起動することもできます。

  • TForm Methods reference page にある Embarcadero のリファレンスドキュメントを参照してください。これは継承されたメソッドもすべて表示しますが、そのオプションは解除できます。

TForm Events

TForm コンポーネントオブジェクトの利用可能なイベントは、次の方法で確認できます:

  • Object Inspector Panel – エディタの Form ビューでフォーム本体をクリックし、Object Inspector の Events tab を選択します。

Component Properties, Events and Methods

Tool Palette パネルのコントロールは Embarcadero Visual Component Library(VCL)に基づいています。大半のコンポーネントのメソッド、プロパティ、イベントの詳細については、Embarcadero VCL ドキュメント内のコンポーネントカテゴリを参照してください。Tool Palette に含まれる一部のコンポーネントタイプ、特に Altium Instrument Controls は Altium Designer 専用であり、Embarcadero のリファレンスドキュメントには含まれません。

Embarcadero VCL Components Categories Index

を参照してください。
なお、上記リンクは VCL ライブラリの Embarcadero RAD Studio XE6 リファレンスを指します。以前のリリース(2010 バージョンまで)のドキュメントも利用可能です。

Component Properties

コンポーネントのプロパティ一覧を確認するには:

  • フォーム上のコンポーネントを選択し、Object Inspector パネルの Properties tab を有効化します(上記の TForm コンポーネントオブジェクトの例と同様)。
  • Embarcadero reference documentation の該当コンポーネント参照ページ上部にある Properties リンクを選択します。たとえば TButton コントロールの場合、Standard Component カテゴリの TButton ページを開き、Properties ビューを選択します。

Component Events

コンポーネントが反応できるイベント一覧を確認するには:

  • フォーム上のコンポーネントを選択し、Object Inspector パネルの Events tab を有効化します(上記の TForm コンポーネントオブジェクトの例と同様)。
  • Embarcadero reference documentation で該当するコンポーネント参照ページを選び、Events リンクを選択します。これは利用可能なイベントのガイドとして有用ですが、Altium Designer のスクリプト用コンポーネントで利用できるイベントと完全には一致しない場合があります。

イベント処理プロシージャを作成するには、Object Inspector Events tab でコンポーネントが反応すべきイベントを選択し、Event の入力フィールドをダブルクリックします。すると、コンポーネント名とイベント動作から命名されたイベントハンドラプロシージャがスクリプト内に自動生成されます。Object Inspector panel でイベント名を変更すると、対応するコードプロシージャ名もそれに合わせて変更されます。

Component Methods

Tool Palette コンポーネントで利用可能なメソッドについては、Component Categories ドキュメントを参照してください。

これには、次のコントロールオブジェクトカテゴリの参照が含まれます。

  • Standard
  • Additional
  • Win32
  • System
  • Dialog
  • Altium Standard
  • Instrument Controls

大部分において、これらのカテゴリは標準的な Delphi 系 VCL コンポーネントに基づくビジュアルフォームコントロールの種類をまとめたものです。例外は Altium Standard と Instrument Controls カテゴリで、これらは Altium Designer のスクリプトシステム専用のコンポーネントを提供します。

Tool Palette Component Categories を参照してください。

Working with Forms and Components

Customizing Script Forms

  • 他の開いているパネルよりもフォームを常に前面に表示したい場合は、FormStyle プロパティを fsStayOnTop に設定します。
  • フォームの既定の動作を定義するには、FormKind を次のいずれかの値に設定します。fkNone, fkNormal, fkServerPanel または fkModal
    • fkModal を選択すると、フォームはモーダルフォームになります。つまり、フォームを閉じるなどのアクションを続行する前に、ユーザー入力を待機するフォームです。
    • fkServerPanel を選択すると、フォームはサーバーパネルとして表示されます。
    • fkNormal を選択すると、フォームは通常の非モーダルフォームとして動作します。
  • フォームのスクロールバーを追加/削除するには、HorzScrollBar および VertScrollBar プロパティの値を変更します。
  • フォームを MDI(Multiple Document Interface)のフレームまたは子として扱うには、FormStyle プロパティを使用します。
  • フォームの境界線スタイルを変更するには、BorderIcons および BorderStyle プロパティを使用します。(結果は実行時に表示されます。)
  • 最小化されたフォームのアイコンを変更するには、Icon プロパティを使用します。
  • アプリケーションウィンドウ内でのフォームの初期位置を指定するには、Position プロパティを使用します。
  • フォームの初期状態(例:最小化、最大化、通常)を指定するには、WindowState プロパティを使用します。
  • 実行時にフォームの作業領域を定義するには、ClientHeight および ClientWidth プロパティを使用します。ClientHeightClientWidth はフォームの境界線内の領域を表し、HeightWidth はフォーム全体の領域を表す点に注意してください。
  • 実行時にフォーム内で初期フォーカスを持つコントロールを指定するには、ActiveControl プロパティを使用して利用可能なコンポーネントから選択します。
  • 選択されているコントロールに関係なく、すべてのキーボードイベントをフォームに渡すには、KeyPreview プロパティを使用します。
  • フォームに複数のメニューが含まれている場合に特定のメニューを指定するには、Menu プロパティを使用します。

フォームとコンポーネントの更新

場合によっては、スクリプトフォームの見た目が最新の状態でなくなることがあります。たとえば、スクリプトによる集中的なバックグラウンド処理が原因でコントロールが更新/再描画されず、フリーズしたり表示が崩れたりして見えることがあります。

スクリプトフォームの Update メソッドは、フォームまたは特定のコントロールのグラフィカルな内容をプログラムから更新する手段を提供します。以下のコード例では、Update メソッドのコード行がグレーで強調表示されています。

Using the Update method to refresh the Status Bar:

Procedure TConverterForm.loadbuttonClick(Sender: TObject);
Var
   I, J : Integer;
Begin
    If OpenPictureDialog1.Execute then
    Begin
        XPProgressBar1.Position := 0;
        XStatusBar1.SimpleText  := '  Loading...';
        XStatusBar1.Update;

        // loading a monochrome bitmap only
        Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);

        // Check if image is monochrome, otherwise prompt a warning
        If Image1.Picture.Bitmap.PixelFormat <> pf1bit Then
        Begin
            For J := 0 to Image1.Picture.Height – 1 Do
                For I := 0 to Image1.Picture.Height – 1 Do
            Begin
                If Image1.Canvas.Pixels[I,J] <> clWhite Then
                    Image1.Canvas.Pixels[I,J] := clBlack;
            End;
        End;

        ScalingFactorChange(Nil);

        convertbutton.Enabled  := True;
        LoadButton.Enabled     := False;
        XStatusBar1.SimpleText := '  Ready...';
        XStatusBar1.Update;
    End;
End;

Scripts\Delphiscript Scripts\PCB\PCB Logo Creator フォルダーにある PCB Logo Creator スクリプトプロジェクトを参照してください。これはダウンロード可能な スクリプトコレクションに含まれています。

AI-LocalizedAI で翻訳
問題が見つかった場合、文字/画像を選択し、Ctrl + Enter キーを押してフィードバックをお送りください。
機能の可用性

利用できる機能は、所有する Altium ソリューション (Altium DevelopAltium Agile のエディション (Agile Teams、または Agile Enterprise)、または Altium Designer (有効な期間)) によって異なります。

説明されている機能がお使いのソフトウェアに表示されない場合、Altium の営業担当者にお問い合わせください

従来のドキュメント

Altium Designer のドキュメントは、バージョンごとに掲載されなくなりました。Altium Designer の旧バージョンのドキュメントは、Other Installers ページの Legacy Documentation の項目をご覧ください。

Content