MATLAB Release Notes | ![]() ![]() |
外部インタフェース/APIの機能
MATLAB 6.5は、以下の外部インタフェースとAPIの機能を追加しています。
新規 MEX 関数
エラーやワーニングを報告する際に、メッセージ識別子やメッセージ文字列の指定が可能な2つの新規CおよびFortran MEX関数が提供されています。これらの関数は、エラーやワーニングメッセージ文字列内で、MATLABの関数sprintf
で用いたような書式付きの変換キャラクタを受け取ることができます。
関数 |
詳細 |
mexErrMsgIdAndTxt |
識別子をもつエラーメッセージを出力し、MATLABプロンプトに戻る |
mexWarnMsgIdAndTxt |
識別子をもつワーニングメッセージを出力 |
オブジェクト指向テクノロジへの一貫したインタフェースを提供するため、MATLAB 6.5は、MATLABとのComponent Object Model (COM)コントロールとサーバの相互作用の方法に影響を与える変更が行われています。
set
の複数引数
invoke
で出力されるメソッドに関するより有用な情報
これらの機能に関する詳細は、MATLABドキュメントのClient Support for COMを参照してください。これらの変更が既存プログラムにどのように影響するかを知るためには、External Interfaces/API Upgrade Issuesを参照してください。
COMに対する新規MATLAB関数. COMインタフェースで利用可能な新規関数は以下の通りです。
関数 |
詳細 |
addproperty |
COMオブジェクトにカスタムプロパティを追加 |
deleteproperty |
COMオブジェクトからカスタムプロパティを削除 |
eventlisteners |
listenerに設定されるイベントのリストを出力 |
events |
コントロールがトリガするイベントのリストを出力 |
isevent |
アイテムがCOMコントロールのイベントであるかどうかを決定 |
ismethod |
アイテムがCOMオブジェクトのメソッドであるかどうかを決定 |
isprop |
アイテムがCOMオブジェクトのプロパティであるかどうかを決定 |
registerevent |
コントロールのイベントを使ってイベントハンドラを登録 |
unregisterallevents |
コントロールに対するすべてのイベントを未登録にする |
unregisterevent |
コントロールのイベントを使ってイベントハンドラを未登録にする |
COMのMATLAB新規関数. COM環境において以下のMATLAB関数を使うことができます。
関数 |
詳細 |
fieldnames |
COMオブジェクトのプロパティ名を出力 |
inspect |
プロパティ値を表示し修正するためのグラフィカルインタフェースを表示 |
methods |
コントロールまたはサーバに対するすべてのメソッドをリスト表示 |
methodsview |
メソッドの情報をリストするためのグラフィカルインタフェースを表示 |
プロパティ名の指定. プロパティ名は、省略して、明確に識別可能できる文字を入力するだけでかまいません。また、プロパティ名は大文字と小文字の区別を行います。たとえば、Excelアプリケーションを実行中のCOMサーバからOrganizationName
プロパティの値を取得するには、以下を使います。
COMプロパティに対する列挙された型の値. MATLABでCOMプロパティの値を設定する際、数値の代わりに列挙された方の文字列を使うことができます。xlUnicodeText
のような列挙された文字列は、等価な数値よりも覚えやすいので、プロパティに対して有効な設定を探す時間が不要になります。
オブジェクト h のプロパティに対して有効なすべての列挙型の値をリストするには、以下を使います。
列挙型の文字列で表わされる値にプロパティを設定するには、以下のシンタックスを使います。enumstring
引数は、省略可能で、明確に識別可能となる文字を入力するだけでかまいません。
プロパティのカレントの列挙型の値を取得するには、以下のようにします。
詳細は、MATLABドキュメントのUsing Enumerated Values for Propertiesを参照してください。
カスタムプロパティ. 関数addpropertyを使って、ユーザ独自のプロパティをコントロールに加えることができます。下記のシンタックスは、コントロールh
に対するカスタムプロパティを作成します。
つぎの例題は、mwsamp
コントロールを作成し、Position
という新規プロパティを追加し、そのプロパティに値 [200 120]
を割り当てます。
h = actxcontrol('mwsamp.mwsampctrl.2', [200 120 200 200]); addproperty(h, 'Position'); set(h, 'Position', [200 120]);
コントロールからカスタムプロパティを削除するには、以下のシンタックスでdeletepropertyを使います。
詳細は、MATLABドキュメントのCustom Propertiesを参照してください。
新規のイベントハンドリング関数. MATLABの旧バージョンでは、コントロールの作成時にのみコントロールに対するイベントを登録できました。MATLAB 6.5では、関数registerevent
, unregisterevent
やunregisterallevents
を利用するときはいつでも、イベントを登録あるいは未登録にすることができます。
関数events
とeventlisteners
をそれぞれ使って、コントロールが応答可能なすべてのイベントや、現在登録されているイベントのみをリスト表示することができます。関数events
は、COM関数send
を置き換えたものです。
イベントハンドリングに関する情報は、COM Control Events" in the MATLAB documentation を参照してください。
プロパティの取得と設定のためのGUIインタフェース. 新規関数inspect
を使って、COMオブジェクトまたはインタフェースに属するすべてのプロパティの一覧を見ることができます。Excel serverオブジェクトを作成し、inspect
を実行することにより、下記のProperty Inspectorウィンドウが起動されます。
あるプロパティの値を変更するには、左側のプロパティ名をクリックしてから、右側のフィールドに新規の値をタイプしてください。
MATLABドキュメントのUsing the Property Inspectorを参照してください。
set Accepts Multiple Arguments. 1回のset
コマンドにより、複数のプロパティ値を設定することが可能です。シンタックスは以下の通りです。
各property
引数のつぎには、newvalue
引数が続きます。下記の例題は、mwsamp
コントロールに対するLabel
とRadius
を変更します。
h = actxcontrol('mwsamp.mwsampctrl.2', [0 0 200 200]); get(h) ans = Label: 'Label' Radius: 20 set(h, 'label', 'Hello', 'radius', 35); get(h) ans = Label: 'Hello' Radius: 35
より詳しいエラーメッセージ. MATLABは、COMエラーが発生した際に、より詳しい情報を出力します。これには、エラーのソースと目的地、エラーを解決するための手助けとなるヘルプリソースの位置が含まれます。
h = actxserver('excel.application'); Repeat(h) ??? Invoke Error, Dispatch Exception: Source: Microsoft Excel Description: Repeat method of Application class failed Help File: D:\Applications\MSOffice\Office\1033\xlmain9.chm Help Context ID: 0.
![]() | グラフィックス機能 | グラフィカルユーザインタフェース(GUIDE)の作成機能 | ![]() |