HOME > プログラマーズガイド > クライアントインターフェース > VCL コンポーネント
> VCL コンポーネント・リファレンス
VCL コンポーネント・リファレンス
クラス一覧

クラス名 説明
TTcpNumberReceiver
(コンポーネント)
NumberWatcher サーバと TCP/IP インターフェースを使って通信するためのコンポーネントです。
ETcpNumberReceiver
(例外クラス)
TTcpNumberReceiver に関連する例外クラスです。
TMulticastNumberReceiver
(コンポーネント)
NumberWatcher サーバからの電話番号を IP マルチキャストインターフェースを使って受信するためのコンポーネントです。IP マルチキャスト通信は着信電話番号データの受信しかできません。ナンバーディスプレイアダプタのメモリ読み出し、書き込みをしたい場合は TTcpNumberReceiver コンポーネントの方を使って下さい。
EMulticastNumberReceiver
(例外クラス)
TMulticastNumberReceiver に関連する例外クラスです。
INumberDisplayData
(インターフェース)
電話番号データ操作用のインターフェースです。



TTcpNumberReceiver コンポーネントクラス

構成
プロパティ一覧
プロパティ名 説明
Active NumberWatcher サーバへの接続/接続解除
AsyncHandling イベントハンドラの同期/非同期呼び出し設定用
BindAddr ソケットにバインドする IP アドレスまたはホスト名
BindPort ソケットに設定するポート番号
BoundAddr ソケットにバインドされた IP アドレスまたはホスト名
BoundPort ソケットに設定すされたポート番号
KeepAliveInterval KeepAlive パケット送信間隔(秒)
KeepAliveResTimeout KeepAlive レスポンス受信タイムアウト(秒)
ServerAddr 接続する NumberWatcher サーバの IP アドレスまたはホスト名
ServerPort 接続する NumberWatcher サーバのポート番号
メソッド一覧
メソッド名 説明
Close NumberWatcher サーバとの接続解除
Open NumberWatcher サーバへの接続
ReadMemory ナンバーディスプレイアダプタのメモリ読み出し
WriteMemory ナンバーディスプレイアダプタのメモリ書き込み
イベント一覧
メソッド名 説明
OnAsyncError 内部処理エラー発生時(非同期呼び出し)
OnAsyncTrace 内部処理におけるトレースメッセージの出力用(非同期呼び出し)
OnClose NumberWatcher サーバとの接続解除時
OnError 内部処理エラー発生時
OnPhoneDetect 電話着信時
OnTrace 内部処理におけるトレースメッセージの出力用

プロパティ
Active [アクセス] Read and Write
[データ型] Boolean
[初期値] False

[解説]

True にすると NumberWatcher サーバに接続(= Openメソッド呼び出し)し、False にすると接続を解除(= Closeメソッド呼び出し)します。エラーの場合は例外が発生します。

AsyncHandling [アクセス] Read and Write
[データ型] Boolean
[初期値] False

[解説]

NumberWatcher サーバとの通信処理は別スレッドで行っていますが、何らかのイベントが発生したときに、通信処理側スレッドから直接イベントハンドラを実行させるのか、あるいはメインスレッドと同期させてイベントハンドラを呼び出させるのかを設定します。True にするとメインスレッドとは非同期に呼び出され、False にするとメインスレッドと同期して呼び出されます。

Active=True 時に設定しようとすると ETcpNumberReceiver 例外が発生します。

OnAsyncErrorOnAsyncTrace イベントハンドラはこのプロパティに関係なく非同期呼び出しされます。
BindAddr [アクセス] Read and Write
[データ型] string
[初期値] '' (空ストリング)

[解説]

ソケットにバインドする IP アドレスまたはホスト名を設定します。空ストリングにすると自動設定されます。

Active=True 時に設定しようとすると ETcpNumberReceiver 例外が発生します。

BindPort [アクセス] Read and Write
[データ型] Word
[初期値] 0

[解説]

ソケットに設定するポート番号を設定します。0 にすると自動設定されます。

Active=True 時に設定しようとすると ETcpNumberReceiver 例外が発生します。

BoundAddr [アクセス] Read Only
[データ型] string

[解説]

NumberWatcher サーバに接続した際の、ソケットにバインドされた IP アドレスです。Active=False 時には読み出さないようにして下さい。

BoundPort [アクセス] Read Only
[データ型] Word

[解説]

NumberWatcher サーバに接続した際の、ソケットに設定されたポート番号です。Active=False 時には読み出さないようにして下さい。

KeepAliveInterval [アクセス] Read and Write
[データ型] DWORD
[初期値] 60 (秒)

[解説]

NumberWatcher サーバとの接続を維持させるために、定期的にデータを送信しています。 このプロパティにはその送信間隔を秒数で指定しますが、送信間隔はサーバ側の numwat.ini ファイル[Dispatch.TCP] keepAliveTimeout 設定値以下になるように設定する必要があります。 keppAliveTimeout 設定値以上にしてしまうと keepAliveTimeout 時間経過後にサーバに接続を解除されてしまいます。 (サーバ側の keepAliveTimeout の初期値は 90 秒です。)

定期的に NOP コマンドデータを送信しています。

Active=True 時に設定しようとすると ETcpNumberReceiver 例外が発生します。

KeepAliveResTimeout [アクセス] Read and Write
[データ型] DWORD
[初期値] 20 (秒)

[解説]

KeepAliveInterval の間隔で送信している NOP コマンドのレスポンスが返ってくるまでのタイムアウト時間を設定します。これは NumberWatcher サーバが生きているかどうか確認するためです。タイムアウトになるとサーバとの接続を解除します。

Active=True 時に設定しようとすると ETcpNumberReceiver 例外が発生します。

ServerAddr [アクセス] Read and Write
[データ型] string
[初期値] '127.0.0.1'

[解説]

接続する NumberWatcher サーバの IP アドレスまたはホスト名を設定します。

Active=True 時に設定しようとすると ETcpNumberReceiver 例外が発生します。

ServerPort [アクセス] Read and Write
[データ型] Word
[初期値] 9876

[解説]

接続する NumberWatcher サーバのポート番号を設定します。

Active=True 時に設定しようとすると ETcpNumberReceiver 例外が発生します。


メソッド
Close procedure Close;

[解説]

NumberWatcher サーバとの接続を解除します。これは Active=False と同じです。このメソッドまたは Active=False で明示的に接続を解除した場合は OnClose イベントは発生しません。

Open procedure Open;

[解説]

NumberWatcher サーバに接続します。これは Active=True と同じです。オープンできない場合は例外が発生します。

ReadMemory procedure ReadMemory(AdaptorIndex: Integer; Addr: Integer;
out NumberData: INumberDisplayData);

[解説]

ナンバーディスプレイアダプタのメモリを読み出します。AdaptorIndex には対象のナンバーディスプレイアダプタのインデックス(1台目 = 0, 2台目=1,...)を指定し、Addr には読み出すメモリアドレス(1 ~ 30)を指定します。

正常に読み出せた場合は NumberData に読み出した電話番号データのインタフェースポインタがセットされます。エラーの場合は ETcpNumberReceiver 例外が発生します。

WriteMemory procedure WriteMemory(AdaptorIndex: Integer; const Number: string);

[解説]

ナンバーディスプレイアダプタのメモリに電話番号を書き込みます。AdaptorIndex には対象のナンバーディスプレイアダプタのインデックス(1台目 = 0, 2台目=1,...)を指定し、Number には書き込む電話番号(数字のみ)を指定します。

エラーの場合は ETcpNumberReceiver 例外が発生します。


イベント
OnAsyncError procedure(Sender: TTcpNumberReceiver; const Msg: string) of object;

[解説]

OnError イベントと同じですが、このイベントハンドラは AsyncHandling の設定に関係なく、メインスレッドと非同期に呼び出されます。通常このイベントはハンドリングする必要はありません。

OnAsyncTrace procedure(Sender: TTcpNumberReceiver; const Msg: string) of object;

[解説]

OnTrace イベントと同じですが、このイベントハンドラは AsyncHandling の設定に関係なく、メインスレッドと非同期に呼び出されます。通常このイベントはハンドリングする必要はありません。

OnClose procedure(Sender: TObject) of object;

[解説]

サーバとの接続が解除された場合にこのイベントが発生します。Close メソッドまたは Active=False で明示的に接続を解除した場合はこのイベントは発生しません。

OnError procedure(Sender: TTcpNumberReceiver; const Msg: string) of object;

[解説]

内部でエラーが起きた場合に発生するイベントです。Msg にはエラーメッセージが入っています。通常このイベントはハンドリングする必要はありません。

OnPhoneDetect procedure(Sender: TTcpNumberReceiver; NumberData: INumberDisplayData) of object;

[解説]

電話を着信すると、このイベントが発生します。NumberData には電話番号データのインターフェースポインタが入っています。

OnTrace procedure(Sender: TTcpNumberReceiver; const Msg: string) of object;

[解説]

内部処理におけるトレースメッセージを出力するためのものです。通常このイベントはハンドリングする必要はありません。


ETcpNumberReceiver 例外クラス

構成
プロパティ一覧
プロパティ名 説明
ErrorCode エラーコード

プロパティ
ErrorCode [アクセス] Read and Write
[データ型] Integer

[解説]

例外原因を識別するためのエラーコード値が格納されています。エラーコードは以下の通りです。

エラーコード表)
エラーコード値 エラー内容
1 コマンドのパラメータが正しくありません。
2 アダプタインデックス値が不正です。
3 ナンバーディスプレイアダプタがまだオープンしていません。
4 ナンバーディスプレイアダプタからのメモリ読み出し時エラー
5 ナンバーディスプレイアダプタへのメモリ書き込み時エラー
-1 管理者権限がないため実行できません。
-2 未定義コマンドです。
-99 NumberWatcher サーバがシャットダウン動作中です。
100 まだ NumberWatcher サーバに接続していません。
101 NumberWatcher サーバ接続中は設定変更できません。
102 NumberWatcher サーバとの接続が切断されました。
103 BindAddr プロパティ値が正しくありません。
104 ソケットを作成できません。
105 ServerAddr プロパティ値が正しくありません。
106 NumberWatcher サーバに接続できません。
200 NumberWatcher サーバからのレスポンス待ちタイムアウト
201 レスポンスヘッダ部が正しくありません。
202 コマンドに対するレスポンスの不一致です。
203 レスポンスデータ部が正しくありません。
999 内部エラー

TMulticastNumberReceiver クラス

構成
プロパティ一覧
プロパティ名 説明
Active マルチキャスト通信の開始/終了
AsyncHandling イベントハンドラの同期/非同期呼び出し設定用
BindAddr ソケットにバインドする IP アドレスまたはホスト名
BindPort ソケットに設定するポート番号
BoundPort ソケットに設定されたポート番号
MCastAddr マルチキャストアドレス
メソッド一覧
メソッド名 説明
Close マルチキャスト通信の終了
Open マルチキャスト通信の開始
イベント一覧
メソッド名 説明
OnAsyncError 受信エラー発生時(非同期呼び出し)
OnAsyncTrace 内部処理におけるトレースメッセージの出力用(非同期呼び出し)
OnError 受信エラー時
OnPhoneDetect 電話着信時
OnTrace 内部処理におけるトレースメッセージの出力用

プロパティ
Active [アクセス] Read and Write
[データ型] Boolean
[初期値] False

[解説]

True にすると NumberWatcher サーバからの送信パケットを受信できるように通信状態を設定します。(= Openメソッド呼び出し) False にすると通信状態を解除します。(= Closeメソッド呼び出し) エラーの場合は例外が発生します。

AsyncHandling [アクセス] Read and Write
[データ型] Boolean
[初期値] False

[解説]

NumberWatcher サーバとの受信処理は別スレッドで行っていますが、何らかのイベントが発生したときに、受信処理側スレッドから直接イベントハンドラを実行させるのか、あるいはメインスレッドと同期させてイベントハンドラを呼び出させるのかを設定します。True にするとメインスレッドとは非同期に呼び出され、False にするとメインスレッドと同期して呼び出されます。

Active=True 時に設定しようとすると EMulticastNumberReceiver 例外が発生します。

OnAsyncErrorOnAsyncTrace イベントハンドラはこのプロパティに関係なく非同期呼び出しされます。
BindAddr [アクセス] Read and Write
[データ型] string
[初期値] '' (空ストリング)

[解説]

ソケットにバインドする IP アドレスまたはホスト名を設定します。空ストリングにすると自動設定されます。

BindPort [アクセス] Read and Write
[データ型] Word
[初期値] 9876

[解説]

マルチキャスト送信された電話番号パケットを受信するポート番号を設定します。NumberWatcher サーバの numwat.ini ファイル[Dispatch.Multicast] mcastPort の設定値に合わせるようにして下さい。そうしないと受信できません。

BoundPort [アクセス] Read Only
[データ型] Word

[解説]

オープン時にソケットに設定されたポート番号です。Active=False 時には読み出さないようにして下さい。

BindPort と同じ値(BindPort=0 以外のとき)になるはずなので、このプロパティは意味がありません。

MCastAddr [アクセス] Read and Write
[データ型] string
[初期値] '226.0.0.1'

[解説]

マルチキャスト送信された電話番号パケット受信する、マルチキャストアドレスを設定します。NumberWatcher サーバの numwat.ini ファイル[Dispatch.Multicast] mcastAddr の設定値に合わせるようにして下さい。そうしないと受信できません。

マルチキャストアドレスの範囲は 224.0.0.0 ~ 239.255.255.255 です。(一部使えないアドレスがあります。)詳しくは、RFC2365, RFC1112, RFC2236 や関連サイト等を参照して下さい。


メソッド
Close procedure Close;

[解説]

マルチキャスト送信パケットの受信状態を解除します。これは Active=False と同じです。

Open procedure Open;

[解説]

NumberWatcher サーバからのマルチキャスト送信パケットを受信できる状態に設定します。これは Active=True と同じです。オープンできない場合は例外が発生します。


イベント
OnAsyncError procedure(Sender: TMulticastNumberReceiver; const Msg: string) of object;

[解説]

OnError イベントと同じですが、このイベントハンドラは AsyncHandling の設定に関係なく、メインスレッドと非同期に呼び出されます。通常このイベントはハンドリングする必要はありません。

OnAsyncTrace procedure(Sender: TMulticastNumberReceiver; const Msg: string) of object;

[解説]

OnTrace イベントと同じですが、このイベントハンドラは AsyncHandling の設定に関係なく、メインスレッドと非同期に呼び出されます。通常このイベントはハンドリングする必要はありません。

※ 現在このイベントは使われていません。
OnError procedure(Sender: TMulticastNumberReceiver; const Msg: string) of object;

[解説]

内部でエラーが起きた場合に発生するイベントです。Msg にはエラーメッセージが入っています。

OnPhoneDetect procedure(Sender: TMulticastNumberReceiver; NumberData: INumberDisplayData; const FromAddr: string; FromPort: Word) of object;

[解説]

電話を着信すると、このイベントが発生します。NumberData には電話番号データのインターフェースポインタが入っています。FromAddr, FromPort には電話番号パケットの送信元(NumberWatcher サーバ)の IP アドレスとポート番号が入っています。

OnTrace procedure(Sender: TMulticastNumberReceiver; const Msg: string) of object;

[解説]

内部処理におけるトレースメッセージを出力するためのものです。通常このイベントはハンドリングする必要はありません。

※ 現在このイベントは使われていません。

EMulticastNumberReceiver 例外クラス

構成
プロパティ一覧
プロパティ名 説明
ErrorCode エラーコード

プロパティ
ErrorCode [アクセス] Read and Write
[データ型] Integer

[解説]

例外原因を識別するためのエラーコード値が格納されています。エラーコードは以下の通りです。

エラーコード表)
エラーコード値 エラー内容
101 通信有効状態のときは設定変更できません。
103 BindAddr プロパティ値が正しくありません。
104 ソケットを作成できません。
999 内部エラー

INumberDisplayData インターフェース

構成
プロパティ一覧
プロパティ名 説明
AdaptorIndex アダプタインデックス
Year 電話着信時の日時(年)
Month 電話着信時の日時(月)
Day 電話着信時の日時(日)
DayOfWeek 電話着信時の日時(曜日)
Hour 電話着信時の日時(時)
Minute 電話着信時の日時(分)
NumType 電話番号の種別
Number 電話番号
プロパティ
AdaptorIndex [アクセス] Read Only
[データ型] Integer

[解説]

電話着信元のナンバーディスプレイアダプタのインデックスです。例えばナンバーディスプレイアダプタを 2 台使っている場合は 1 台目が 0 で、2 台目が 1 となります。

Year [アクセス] Read Only
[データ型] Integer

[解説]

電話着信した日時の「年」(西暦)の部分です。この値はナンバーディスプレイアダプタには存在しないため、MonthDay の内容および NumberWatcher サーバマシンの日付を元に自動計算して割り出しています。 そのため正確な値にならない場合もあります。

電話番号が格納されていないメモリを読み出した場合は -1 になります。

Month [アクセス] Read Only
[データ型] Integer

[解説]

電話着信した日時の「月」の部分です。これはナンバーディスプレイアダプタから取得した値です。 値の範囲は 1 = 1月 ~ 12 = 12月 ですが、電話番号が格納されていないメモリを読み出した場合は 99 になります。

Day [アクセス] Read Only
[データ型] Integer

[解説]

電話着信した日時の「日」の部分です。これはナンバーディスプレイアダプタから取得した値です。 値の範囲は 1 = 1日~ 31 = 31日 ですが、電話番号が格納されていないメモリを読み出した場合は 99 になります。

DayOfWeek [アクセス] Read Only
[データ型] Integer

[解説]

電話着信した日時の「曜日」の部分です。これはナンバーディスプレイアダプタから取得した値です。 値の範囲は 0 = 日曜日~ 6 = 土曜日 ですが、電話番号が格納されていないメモリを読み出した場合は 9 になります。

Hour [アクセス] Read Only
[データ型] Integer

[解説]

電話着信した日時の「時」の部分です。これはナンバーディスプレイアダプタから取得した値です。 値の範囲は0 = 0時 ~ 59 = 59時 ですが、電話番号が格納されていないメモリを読み出した場合は 99 になります。

Minute [アクセス] Read Only
[データ型] Integer

[解説]

電話着信した日時の「分」の部分です。これはナンバーディスプレイアダプタから取得した値です。 値の範囲は 0 = 0分 ~ 59 = 59分 ですが、電話番号が格納されていないメモリを読み出した場合は 99 になります。

NumType [アクセス] Read Only
[データ型] TNumType

[解説]

電話着信した電話番号の種別です。TNumType の値の意味は以下の通りです。

ntValidNumber 有効な電話番号
ntUnnotify 非通知
ntOutOfRange 表示圏外
ntPublicPhone 公衆電話
ntNoNumber 電話番号なし(メモリ履歴がないアドレス読み出し時)
ntError エラー
Number [アクセス] Read Only
[データ型] string

[解説]

電話着信した電話番号です。電話番号にはハイフン文字('-')は含まれません。NumType の値が ntValidNumber のときだけ有効な電話番号が入っています。




Delphi5 で使う Java コンポーネント