Tivoli Service Desk 6.0 Developer's Toolkit Script 言語解説書

ウィンドウの処理

メイン・ページに戻る


注: すべての Win 関数は同じ戻りコードをもっています。 このコード・テーブルは WinAboutBox 関数の中に現れ、このテーブルへのリンクはすべての Win 関数に現れます。


メイン・ページに戻る


注: これは、ウィンドウ処理 関数の最初のセクションです。このセクションは WinSetColor で終わり、
2 番目のセクションは WinSetFont から始まります。


$Desktop

説明

ハンドルをデスクトップ・ウィンドウに戻します。この値は現行セッションの間は永続 します。 しかし、この値は永久に保管されるわけではありません。 次回にプログラムを 実行する時には、この定数は新しい値をもちます。

構文

FUNCTION $Desktop: WINDOW;

注意: OS/2 では、処理を一時停止するためにデスクトップに送ることのできる有効なメッセージがあります たとえば、デスクトップに $MsgClose を送ると、プログラムの実行が一時停止します。 この動作はオペレーティング・システムによってコントロールされます。

$Desktop は OS/2 デスクトップまたは Windows デスクトップのいずれかに対するハンドルが入っている 事前定義のシステム定数です。 これは、しばしばウィンドウおよびダイアログ・ボックス・ステートメント中に 親として指定されます。

KNOWLEDGEBASE Desktop;
    ROUTINES
 PROCEDURE Example;
PRIVATE
    ROUTINES
 (* Create a scroll window parented by the desktop with
 default event processing *)
PROCEDURE Example IS
  VARIABLES
 whdl: WINDOW;
  ACTIONS
 WinCreateScrollWindow($Desktop, (*Window is a child of
                       OS/2 desktop *)
                       whdl, (* return handle
                       of new window *)
                       $NullHandler, (* Default event
                       processing *)
                       5, 5, 80, 20, (* Window location
                       and size *)
                       'Example', (* Window title *)
                       '', (* Use default font
                       *)
                       0, (* Point size is
                       ignored for
                       default *)
                    BitOr($WinTitle, $WinBorder,
                       $WinSysMenu ));
 WinWait( whdl );
        END;

次も参照してください


$KeyCode

説明

$MsgChar イベントの発生時にユーザーによって押されるキーを示します。

TSD Script は、カーソル制御キー、変更キー (すなわち、Ctrl や Alt (前面) など他のキーと一緒に 押されるキー) などの特殊キーについていくつかの定数を定義します。

注: 詳しくは、 TSD Script 定数を参照してください

EVENT MyEvent IS
  ACTIONS
WHEN $Event IS $MsgChar THEN
 WHEN $KeyCode IS $KeyUpArrow THEN
 MoveUp;
 ELSWHEN $KeyDownArrow THEN
 MoveDown;
 ELSWHEN $KeyLeftArrow THEN
 MoveLeft;
 ELSWHEN $KeyRightArrow THEN
 MoveRight;
        END;
        END;

次も参照してください


WinAboutBox

説明

この関数は、アプリケーションのデフォルトの "製品情報" ボックスを表示します。

構文

FUNCTION WinAboutBox( VAL Icon : STRING,
                     VAL AppName : STRING,
                     VAL Version : STRING ) : INTEGER;

注意

表示される情報は Tivoli Service Desk の著作権メッセージを含んでおり、他社の アプリケーションには無関係です。

引き数の注

引き数名 説明
Icon ユーザーのアプリケーションで表示する関連 .bmp ファイルの
名前。 ファイルが見つからないか、ファイル名が無効である場合には、ボックスは図形なしで表示されます。 このコマンドで指定されたファイルを見つけるために、SAIPATH および PATH 環境変数が検索されます。
AppName ユーザーのアプリケーションの名前。
Version ユーザーのアプリケーションのバージョン番号。

KNOWLEDGEBASE aboutbox;
  CONSTANTS
AppName IS 'Pink Elephant Word Processor'; AppVersion IS
 'Version 3.1';
    ROUTINES
Procedure DisplayAboutBox;
PRIVATE
    ROUTINES
Procedure DisplayAboutBox IS
  VARIABLES
  ACTIONS
WinAboutBox('pink.bmp', AppName, AppVersion);
        END;

戻りコード

戻りコード 説明
1 正常終了。
0 ユーザーによる中断。ユーザーがウィンドウをクローズしたか、操作を打ち切りました。通常は、これは Esc キーまたは「取消」ボタンを押して行なわれるか、あるいはシステム・メニューからウィンドウをクローズすることによって行なわれます。
-1 このウィンドウ・ハンドルは有効なウィンドウを参照していません。 ウィンドウがもはや存在していないか、あるいはこのウィンドウがこのコマンドをサポートしていません。
-2 不明な値。
-3 メモリー不足。
-4 作成しない。オペレーティング・システムが要求されたオブジェクトを作成できませんでした。 考えられる 1 つの理由は、親ウィンドウ・ハンドルがもはや存在していないウィンドウを参照することです。
-7 ダイアログ・ボックスの名前付きコントロールが、ウィンドウ・ハンドルによって参照されたダイアログ・ボックスの中に見つかりませんでした。
-8 要求されたダイアログ・ボックス・コマンドは、指定されたコントロールのタイプでは実行されない可能性があります。
-10 オペレーティング・システム・レベルでの呼び出しが失敗しました。 これは、不適切な構成またはリソースに原因があると考えられます。
-12 SendMessage または PostMessage ステートメントが、 NETx ステートメントではサポートされていないメッセージで呼び出されました。 メッセージは、サポートされている $MsgNetx メッセージの 1 つであるか、NETx ステートメントで使用するために特別に定義されたユーザー定義の $MsgUser + n メッセージでなければなりません。

WinClear

説明

ウィンドウまたはスクロール・ウィンドウのクライアント域全体を消去して、現行の背景色 にします。

構文

FUNCTION WinClear(VAL whdl: WINDOW): INTEGER;

引き数の注

引き数名 説明
whdl 消去されるウィンドウのハンドル。 このハンドルは標準ウィンドウまたはスクロール・ウィンドウを参照することができます。

現行の背景色は WinSetColor 関数を使用して変更することができます。

WHEN $Event IS $MsgPaint THEN
 WinSetColor($Handle,$WinWhite,$WinBlack);
    WinClear( $Handle );
             WinWrite($Handle,'Black');

戻りコード

次も参照してください


WinClearEOL

説明

現行の背景色を使用して、ウィンドウを現行カーソル位置から行の終わりまで消去します。

構文

FUNCTION WinClearEOL(VAL whdl: WINDOW): INTEGER;

引き数の注

引き数名 説明
whdl 消去されるウィンドウのハンドル。 このハンドルは標準ウィンドウまたはスクロール・ウィンドウを参照することができます。

WinClearEOL は、現行カーソル位置から現在行の終わりまで消去します。 カーソル位置は変わりません。 消去された領域は現行の背景色でペイントされます。

注: 現行の背景色は WinSetColor 関数を使用して変更することができます

WHEN $Event IS $MsgPaint THEN
 WinSetColor($Handle,$WinWhite,$WinBlue);
             WinGoToXY($Handle,2,2);
             WinClearEOL($Handle);

戻りコード

次も参照してください


WinClearEOW

説明

現行の背景色を使用して、ウィンドウを現行カーソル位置からウィンドウの最下部まで消去します。

構文

FUNCTION WinClearEOW(VAL whdl: WINDOW): INTEGER;

引き数の注

引き数名 説明
whdl 消去されるウィンドウのハンドル。 このハンドルは標準ウィンドウまたはスクロール・ウィンドウを参照することができます。

WinClearEOW は、指示されたウィンドウを現行カーソル位置からウィンドウの終わりまで消去します。 消去された領域は現行の背景色でペイントされます。 カーソル位置は変わりません。

注: 現行の背景色は WinSetColor ステートメントを使用して変更することができます

WHEN $Event IS $MsgPaint THEN
 WinGoToXY($Handle,5,10);
 WinSetColor($Handle,$WinWhite,$WinLightBlue);
 WinClearEOW($Handle);

戻りコード

次も参照してください


WinClearRectangle

説明

現行の背景色を使用して、ウィンドウの長方形領域を消去します。

構文

FUNCTION WinClearRectangle(VAL whdl: WINDOW, VAL xLoc, yLoc,
                           width, height: INTEGER):
                           INTEGER;

引き数の注

引き数名 説明
whdl 消去されるウィンドウのハンドル。 このハンドルは標準ウィンドウまたはスクロール・ウィンドウを参照することができます。
xLoc 消去される領域の左上隅の X 位置。 X 座標は文字セルで指定されます。
yLoc 消去される領域の左上隅の Y 位置。 Y 座標は文字セルで指定されます。
width 消去される領域の幅。 幅は文字セルで測ります。
height 消去される領域の高さ。 高さは文字セルで測ります。

WinClearRectangle は、指定されたウィンドウ内の特定の長方形領域を消去します。 消去された領域は現行の背景色でペイントされます。 カーソルは移動しません。

注: 現行の背景色は WinSetColor ステートメントを使用して変更することができます

WHEN $Event IS $MsgPaint THEN
 WinSetColor($Handle,$WinWhite,$WinBlack);
 WinClearRectangle($Handle,5,10,40,8);
END:

戻りコード

次も参照してください


WinCloseWindow

説明

ダイアログ・ボックスまたはウィンドウをクローズします。

構文

FUNCTION WinCloseWindow(VAL whdl: WINDOW): INTEGER;

引き数の注

引き数名 説明
whdl クローズされるダイアログ・ボックスまたはウィンドウのハンドル。

この関数は、ダイアログ・ボックスまたはウィンドウに渡すことのできるメッセージとしても 実装されています ($MsgClose)。

KNOWLEDGEBASE close;
    ROUTINES
 PROCEDURE Main;
PRIVATE
    ROUTINES
PROCEDURE Main IS
  VARIABLES
 Handle : WINDOW;
  ACTIONS
 WinCreate($Desktop,
 Handle,
 $NullHandler,
 1, 1,
 80, 25,
 'Window will close shortly...',
 $WinDefaultStyle);
 SysDelay(1000);
 WinCloseWindow(Handle);
        END;

戻りコード


WinCreate

説明

標準または総称ウィンドウを作成します。

構文

FUNCTION WinCreate(VAL parent: WINDOW, REF whdl: WINDOW,
                   VAL EventHandler: EVENT,
                   VAL xLoc, yLoc, width, height: INTEGER,
                   VAL title: STRING, style: INTEGER):
                   INTEGER;

注意

イベント関数がペイント・メッセージを処理しないで、ウィンドウを消去した場合には、 ウィンドウは、ウィンドウの作成時にそのウィンドウ内にあったイメージを保存します。

WinCreate$MsgCreate が処理されるまでは応答しません。 したがって、戻されるウィンドウ・ハンドルの値は、$MsgCreate が処理されるまでは 設定されません。 ただし、$HandleWinCreate の処理の間でも使用することができます。

引き数の注

引き数名 説明
parent 作成される新規ウィンドウの親。
whdl 新しく作成されたウィンドウのハンドルがこのパラメーターで戻されます。 エラーがある場合には、変数は $Unknown に設定されます。
EventHandler ウィンドウまたはダイアログ・ボックスで生成されたイベントを処理するイベント・ハンドラー。イベント処理が必要でない場合には、キーワード $NullHandler を使用することができます。
xLoc ウィンドウの左上隅の X 位置。X 座標は文字セルで指定されます。
yLoc ウィンドウの左上隅の Y 位置。Y 座標は文字セルで指定されます。
width ウィンドウの幅 (X 座標) 。枠を除外します。
height 枠、タイトル・バー、メニュー・バー、ツールバー、および状況バーを除くウィンドウの高さ (Y 座標)。
title ウィンドウ・タイトル・バーに表示されるタイトル。 ウィンドウには、表示されるタイトルのタイトル・バーがなけれ ばなりません。 $WinTitle が入っているスタイルを使用します。
style ウィンドウの外観をコントロールするために使用するスタイル・フラグのセットを表す整数のビット・マスク。
使用できるスタイル・フラグのリストについては、ウィンドウ・スタイルを参照してください

受信する最初のメッセージ

ウィンドウの作成時に、以下のメッセージが、示されている順序で受信されます:

スタイルを使用したウィンドウのカスタマイズ

WinCreate は標準または総称ウィンドウを作成するために使用することができます。 このようなウィンドウには、メニュー・バー、ツールバー、状況バー、およびその他のウィンドウ 要素を入れることができます。

WinCreate で作成されるウィンドウの正確な外観および動作は、主としてスタイル引き数 によって決定されます。 この整数の引き数は、いろいろなフラグ (次のセクションにリストされている) から アセンブルされたビット・マスクです。 引き数は通常は BITOR 演算子でアセンブルされます (たとえば、 BITOR($WinBorder, $WinTitle))。 追加のメソッドの使用には注意が必要です: 同じフラグが 2 回追加されると、不都合な結果となる場合があります。

注: 詳しくは、 ウィンドウ・スタイルを参照してください

ウィンドウ用のイベント・ハンドラーの作成

一般的には、イベント・ハンドラーを WinCreate によって作成されたウィンドウ と関連づけます。 イベント・ハンドラーは、ウィンドウに送られるメッセージの一部を処理 するルーチンです。 たとえば、ウィンドウにアイコン・バーがある場合には、そのイベント・ハンドラー は、ユーザーがそのアイコンの 1 つをクリックするたびに、$MsgMenu メッセージ (イベント) を 受け取ります。 最初のイベント・パラメーター (整数) には、1 とアイコンの数との間の数字が入って おり、これはどのアイコンが選択されたかを示します。 それによって、イベント・ハンドラーは特定の ルーチンを呼び出すことができます。

注: WinCreate で作成されたウィンドウが受信することのある各種のメッセージは TSD Script メッセージ に記載されています。

EVENT MainEvent IS
  ACTIONS
     WHEN $Event IS $MsgCreate THEN
 WinSetIconBar($Handle,{'FILE.ICO',
               'REPORT.ICO','HELP.ICO'}:
               LIST OF STRING);
  ELSWHEN $MsgMenu THEN
 WHEN $EventParm(1,INTEGER) IS 1 THEN
 HandleFileIcon;
ELSWHEN 2 THEN
 HandleReportIcon;
ELSWHEN 3 THEN
 HandleHelpIcon;
        END;
        END;
        END;
PROCEDURE MainProgram IS
  VARIABLES
mainWindow: WINDOW;
  ACTIONS
WinCreate($Desktop,mainWindow,MainEvent,0,0,80,20,
 'Main Window',
 BitOr($WinBorder,$WinTitle,$WinResize,
 $WinSysMenu, $WinIconBar,
 $WinAutoPos,$WinTaskList));
WinWait(mainWindow);
        END;

戻りコード

次も参照してください


WinCreateClock

説明

クロックまたはタイマー・ウィンドウを作成します。

構文

FUNCTION WinCreateClock(VAL whdlParent: WINDOW,
                        REF whdl: WINDOW,
                        VAL xLoc, yLoc, width, height, style,
                        id: INTEGER): INTEGER;

引き数の注

引き数名 説明
whdlParent 作成される新規ウィンドウの親。
whdl 新規ウィンドウのハンドルがこのパラメーターで戻されます。 エラーがある場合には、変数は $Unknown に設定されます。
xLoc ウィンドウの左上隅の X 位置。 X 座標は文字セルで測ります。
yLoc ウィンドウの左上隅の Y 位置。 Y 座標は文字セルで測ります。
width 枠を除いたウィンドウの幅 (X 座標)。 幅は文字セルで測ります。
height 枠、タイトル・バー、メニュー・バー、ツールバー、および状況バーを除くウィンドウの高さ (Y 座標)。 高さは文字セルで測ります。
style クロック・ウィンドウのスタイル。 スタイル・フラグは BITOR 演算子で結合されます。
次の中から 1 つを選択するか、あるいは何も選択しないでください:
  • $ClkBorderIn - くぼんだ枠でクロック・ウィンドウを描く (これがデフォルト)。
  • $ClkBorderOut - 浮き出た枠を描く。
  • $ClkBorderNon - 枠を描かない。
  • $ClkBorder - テキスト・ボックスの枠と類似した枠を描く。

次の中から 1 つを選択するか、あるいは何も選択しないでください:

  • $Clk12Hour: AM および PM を付けた 12 時間形式 (これがデフォルト)。
  • $Clk24Hour: (24 時間形式)。

任意指定フラグ: $ClkHidden - クロックは画面上に表示されません。

ID 親ウィンドウに対する通知メッセージで使用される識別番号。 タイマーは $MsgStartTimer メッセージを使用して総称ウィンドウ内に作成することができます。

WinCreateClock は、リアルタイムで時刻を更新 (秒ごとに) するクロックを作成するために 使用することができます。 デフォルトでは、クロックはシステム・クロックに基づいて、現在 時刻の表示を開始します。 しかし、時刻の値とともにクロックを $MsgClockSet メッセージに 送信することによって、現在時刻を表示するクロックを設定することができます。

たとえば、次の行を、経過時間クロックをセットアップするために使用することができます:

SendMessage(clockWindow,$MsgClockSet,{0,0,0}: TIME);

クロック・ウィンドウは $MsgShow メッセージにも応答します。 これによって、 クロック・ウィンドウを作成して、それを隠し、その時刻値を変更し、それを表示する ことができます。 次の例を考えてください。

     WHEN $Event IS $MsgCreate THEN
 WinCreateClock($Handle,clockWindow,
 1,1,13,2,
 $Clk24Hour,0);
 SendMessage(clockWindow,$MsgShow,FALSE);
ELSWHEN START_TIMER THEN
 SendMessage(clockWindow,$MsgClockSet,
 {0,0,0}: TIME):
 SendMessage(clockWindow,$MsgShow,TRUE);
        END;

この例では、ユーザーは別のウィンドウのイベント処理の中に位置しています。 ウィンドウの作成時にクロックが作成されますが、隠されています。 ウィンドウが START_TIMER メッセージを受け取ると、ウィンドウはクロック時刻を 00:00:00 に 設定してからクロックを表示します。 ユーザーは経過時間クロックを見ることになります。

  VARIABLES
clock: WINDOW;
    ROUTINES
EVENT WindowEvent IS
  ACTIONS
     WHEN $Event IS $MsgCreate THEN
 WinCreateClock($Handle,clock,1,1,13,2,$ClkBorderIn,1);
        END;
        END;

戻りコード

次も参照してください


WinCreateHyperViewer

説明

基本的なハイパーテキスト機能をもつ Multiple Document Interface (MDI) ビューアーを 作成します。 「ファイル」、「編集」、および「ウィンドウ」メニューを使用できる メニュー・バーによって、次のことができます:

ハイパーメディア・ビューアーで右マウス・ボタンを押すことによって、 ポップアップ・メニュー選択項目にアクセスすることができます。 これらの メニュー・アイテムにより、次のものを選択することができます:

構文

FUNCTION WinCreateHyperViewer(VAL whdlParent: WINDOW,
                              REF whdl: WINDOW,
                              VAL fileName: STRING,
                              VAL EventFunc: EVENT,
                              VAL xLoc, yLoc, width, height:
                              INTEGER,
                              VAL title: STRING,
                              VAL style: INTEGER): INTEGER;

引き数の注

引き数名 説明
whdlParent 作成される新規ウィンドウの親。
whdl 新しく作成されたウィンドウのハンドルがこのパラメーターで戻されます。 エラーがある場合には、whdl 引き数は $Unknown に設定されます。
fileName 表示されるファイルの名前。 ファイルが現行ディレクトリーの中にない場合には、SAIPATH が検索されます。 このファイルは平易な ASCII ファイルとするか、あるいは組み込みハイパーテキスト・リンクを含むことができます。
詳細については、「注」セクションを参照してください。
EventFunc ウィンドウまたはダイアログ・ボックスによって生成されたイベントを処理するイベント・ハンドラー。 イベント処理が必要でない場合には、キーワード $NullHandler を使用することができます。
xLoc ウィンドウの左上隅の X 位置。 X 座標は文字セルで測ります。
yLoc ウィンドウの左上隅の Y 位置。 Y 座標は文字セルで測ります。
width 枠を除いたウィンドウの幅 (X 座標)。 幅は文字セルで測ります。
height 枠、タイトル・バー、メニュー・バー、ツールバー、および状況バーを除くウィンドウの高さ (Y 座標)。 高さは文字セルで測ります。
title ウィンドウ・タイトル・バーに表示されるタイトル。 ウィンドウには、表示されるタイトルのタイトル・バーがなければなりません。
style ウィンドウの外観をコントロールするために使用するスタイル・フラグのリストを表す整数のビット・マスク。
詳しくは、このステートメントの「注」を参照してください。

WinCreateHyperViewer は、ハイパーテキスト・ビューアーを作成するために使用することができます。 指示された位置、サイズ、およびスタイルでウィンドウを作成することに加えて、 WinCreateHyperViewer は指示されたファイルの目次を表示します。 このファイルは 組み込みボタン のある ASCII テキストが入っているとみなされます。 ユーザーには 強調表示されたワードとして見えるボタンは、テキスト・ファイル、サウンド・ファイル、 ピクチャー、またはプログラムなどの別のオブジェクトへのリンクです。

ボタンは次の形式で定義されます:

[[<Button text> | <command>]]

<Button text> はユーザーに対して強調表示されたテキストとして表示される テキストであり、<command> はクリックによって開始されるアクションを指示します。

ワード・ラップ

ハイパーテキスト・コントロールでは、Tivoli Systems のハイパーメディア・ファイルとして 形式設定されるために提供されたファイルを必要とします。 これは、1 つの行に 2 つの改行が見つ かるまでは、テキストのすべての行がワード・ラップされる (改行を無視して) ことを意味します。

ワード・ラップおよびフォーマット・デフォルトをオフにする

ハイパーテキスト・ウィンドウのワード・ラップおよびフォーマット・デフォルトをオフに するためには、aseview.exe を使用して /NOWORDWRAP /NOFORMAT フラグをコマンド行引き数と して渡すことができます。 これは、ハイパーテキスト・ウィンドウのワード・ラップおよび フォーマット・デフォルトをプログラムに基づいてオフにするための唯一の方法です。

WinCreateHyperviewer コマンド・オプション

次の表は WinCreateHyperViewer ステートメントのコマンド・オプション および説明を示したものです:

コマンド・オプション 説明
ID コマンドが整数である場合には、それはボタン ID とみなされます。 ユーザーがこのボタンをクリックすると、$MsgButton メッセージがハイパーテキスト・ビューアー・ウィンドウのイベント・ハンドラーに送られます。 ボタン・テキストはイベント・パラメーター 1 (文字列) の中にあり、ボタン ID はイベント・パラメーター 2 (整数) の中にあります。
コマンドが提供されていない (ボタンのフォームが [[Button-text]] となっている) 場合には、イベント・ハンドラーはボタンが選択されていても $MsgButton メッセージを受け取ります。 ただし、ボタン ID (イベント・パラメーター 2 、整数) は 0 となります。この場合は、イベント・ハンドラーがゼロを戻した場合には、ビューアーはボタン・テキストを変更して、 formButtonTextand が検索操作を実行するようにします (以下を参照)。
JUMP JUMP <マーカー名> は、Jump の後に続くテキストと一致するマーカーを見つけるためにタグ・リストを検索します (詳しくは「マーカー・タグ」を参照)。 一致が見つかった場合には、そのマーカーを含む行がビューアーの最上部に位置づけられて、EventJump が生成されます。 ハイパーテキスト・ビューは EventJump を処理して、マーカーのリストをファイル中で "訪問済み"として保持します。
LABEL LABEL <ラベル・テキスト> は任意の文字列とすることができます。イベント・パラメーター 1 (文字列) にボタン・テキストを、イベント・パラメーター 2 (文字列) にラベル・テキストを入れた $MsgLabel メッセージがウィンドウのイベント・ハンドラーに送られます。
MARKER MARKER <マーカー名> はテキスト中に目に見えないマーカーを入れます。
SEARCH SEARCH <検索テキスト> は、<検索テキスト> を見つけるために現行ファイルの最上部から検索を開始します。 検索テキストの中に組み込みの改行がない限り、テキストが複数行にまたがることはできません。 検索は Windows 以外は大文字小文字の区別をします。
テキストが見つかると、テキストを含む行がビューアー・ウィンドウの最上行に表示されるように、ビューアーが位置づけられます。
FILE FILE <ファイル名> [NEW|REPLACE] [NOWORDWRAP|NOFORMAT] は、新規のテキスト・ファイルをオープンします。 デフォルトでは、新規のファイルが現在ビューアー中にあるファイルと置き変わります。 これは、<ファイル名> の後にキーワード REPLACE が続く場合も同じです。
<ファイル名> の後にキーワード NEW が続く場合には、新規のビューアー・ウィンドウがオープンして新規のファイルを表示します。
ビューアーのサイズはシステムによって決定されます。
デフォルトでは、最低でも 1 つの空白行で区切られていないすべての行が一連の段落として扱われるように、ワード・ラップが使用されます。
任意の非空白行の後の最初の空白行は廃棄されます。 NOWORDWRAP キーワードを使用して、この動作を抑止することができます。 デフォルトのワード・ラップとともに使用される NOFORMAT は、隣接する行が結合されるのを防ぎますが、それでも長い行は折り返します。
IMAGE IMAGE <イメージ・ファイル>.BMP [SCROLL | SCALE] は、イメージ・ビューアーをオープンし、指示されたイメージ・ファイルを表示します。 デフォルトでは、イメージはビューアーのサイズに合うようにクリップされます。 SCALE キーワードにより、イメージの大きさがビューアーの大きさに合わせて決められます。 SCROLL キーワードはイメージをクリップしますが、イメージ全体をスクロールするために使用するスクロール・バーをビューアーに追加します。
PLAY PLAY <サウンド・ファイル>.WAV は、指示されたオーディオ・ファイルを再生します。 ユーザーがオーディオの再生をコントロールするために操作できるハイパーテキスト・ビューアー・ウィンドウが現れます。
RUN RUN <アプリケーション名> は指示されたアプリケーションを実行します。 <アプリケーション名> は実行可能ファイルまたはコマンド・ファイルの名前だけでなく、コマンド行引き数 ([[Windows NT|RUN F:\DOC\DOCMAN.EXE WINDOWS_NT]]) を含む文字列とすることができます。


総称ウィンドウで受け取ることのできる各種タイプのメッセージの完全なリストについては、 TSD Script メッセージを参照してください

ウィンドウ・スタイル・フラグについては、WinCreate ステートメントを参照してください。

KNOWLEDGEBASE WinHyper;
    ROUTINES
 PROCEDURE HyperTextExample;
PRIVATE
  CONSTANTS
 MENU_LIST {'File' ,'Open','/L ','Exit',''}: LIST OF STRING;
    ROUTINES
 EVENT HyperTextEvent IS
  VARIABLES
 fileName: STRING;
  ACTIONS
     WHEN $Event IS $MsgCreate THEN
 WinSetMenuBar($Handle,MENU_LIST);
 WinSetIconBar($Handle,{'hyp_text.ico',
 'hypimage.ico',
 'hypsound.ico','search.ico'}:
LIST OF STRING);
  ELSWHEN $MsgMenu THEN
 WHEN $MenuSelection IS 1, 101 THEN
 IF WinFileDialog($Desktop,fileName,'*.*',
                  10,10, 'Select file to view',0)
              < 0 THEN
                  WinMessageBox($Handle,'Error',
                  $MBOk+$MBIconError,fileName);
ELSE
 SendMessage($Handle,$MsgOpenFile,fileName,
             fileName,0);
        END;
ELSWHEN 2 THEN
 IF WinFileDialog($Desktop,fileName,'*.bmp',
                  10,10, 'Select bitmap to view',0)
              < 0 THEN
 WinMessageBox( $Handle, 'Error', $MBOk+
               $MBIconError,fileName );
ELSE
 SendMessage($Handle,$MsgDisplayImage,fileName,
             fileName,0);
        END;
ELSWHEN 3 THEN
 IF WinFileDialog($Desktop,fileName,'*.wav',10,10,
                  'Select sound to play',0)
              < 0 THEN
                  WinMessageBox($Handle,'Error',
                  $MBOk+$MBIconError,fileName);
ELSE
 SendMessage($Handle,$MsgPlaySound,fileName,
             fileName,0);
        END;
 ELSWHEN 4 THEN
             IF WinEditField($Desktop,fileName,0,0,30,
             'Search for?',
             BitOr($WinAutoPos,
             $WinBorder,
             $WinTitle)) < 1 THEN
 WinMessageBox($Handle,'Error',
             $MBOk+$MBIconError,fileName);
ELSE
 SendMessage($Handle,$MsgSearch,fileName);
        END;
 ELSWHEN 103 THEN
 SendMessage($Handle,$MsgClose);
        END;
  ELSWHEN $MsgChar THEN
 WHEN $KeyCode IS $KeyAltT THEN
 SendMessage($Handle,$MsgMenu,1);
 ELSWHEN $KeyAltI THEN
 SendMessage($Handle,$MsgMenu,2);
 ELSWHEN $KeyAltA THEN
 SendMessage($Handle,$MsgMenu,3);
 ELSWHEN $KeyAltS THEN
 SendMessage($Handle,$MsgMenu,4);
ELSE
 WinMessageBox($Handle,'Hypertext Key',$MBOK,
               $KeyCode );
        END;
 ELSWHEN $MsgButton THEN
 WinMessageBox($Handle,'Hypertext Button',$MBOK,
               'Button text' &
               $EventParm(1,STRING) &
               'Button ID ' &
               $EventParm(2,INTEGER));
 ELSWHEN $MsgLabel THEN
 WinMessageBox($Handle,'Hypertext Button',$MBOK,
               'Button text ' &
               $EventParm(1,STRING) &
               'Button Label ' &
               $EventParm(2,STRING));
        END;
 END (* Hypertext Event *);
 PROCEDURE HyperTextExample IS
  VARIABLES
 whdl: WINDOW;
  ACTIONS
 WinCreateHyperViewer($Desktop,whdl,'formman.hlp',
                      HyperTextEvent,1,1,80,25,
                      'Hyertext Test',
                      BitOr($WinBorder,$WinTitle,
                      $WinResize,$WinMenu,
                      $WinIconBar,$WinSysMenu,
                      $WinMinMax,
                      $WinAutoPos,$WinAutoSize));
                      WinWait(whdl);
 END (* Hypertext Example *);

戻りコード

次も参照してください

ハイパーメディア・ファイルのフォーマット化の詳細については、Tivoli Service Desk Developer's Toolkit ツールおよびユーティリティーの手引き を参照してください。

SAIPATH の詳細については、SAIPATH を使用したファイル検索を参照してください


WinCreateImage

説明

イメージを表示するウィンドウを作成します。

構文

FUNCTION WinCreateImage(VAL whdlParent: WINDOW,
 REF whdl: WINDOW,
 VAL fileName: STRING,
 VAL xLoc, yLoc, width, height:
 INTEGER,
 VAL title: STRING,
 VAL style, id: INTEGER): INTEGER;

引き数の注

引き数名 説明
whdlParent 作成される新規ウィンドウの親。
whdl 新しく作成されたウィンドウのハンドルがこのパラメーターで戻されます。 エラーがある場合には、変数は $Unknown に設定されます。
fileName 表示されるイメージのファイル名。 イメージは、OS/2 ビットマップ・ファイル、 Windows ビットマップ、または PCX イメージ・ファイルとすることができます。
xLoc ウィンドウの左上隅の X 位置。 X 座標は文字セルで測ります。
yLoc ウィンドウの左上隅の Y 位置。 Y 座標は文字セルで測ります。
width ウィンドウの幅 (X 座標) 。枠を除外します。幅は文字セルで測ります。
height 枠、タイトル・バー、メニュー・バー、ツールバー、および状況バーを除くウィンドウの高さ (Y 座標)。 高さは文字セルで測ります。
title ウィンドウ・タイトル・バーに表示されるタイトル。 ウィンドウには、表示されるタイトルのタイトル・バーがなければなりません。 $ImgTitle スタイルを使用してください。
style イメージ・ウィンドウの動作をコントロールする整数ビットマップ。
スタイル・フラグ・オプションについては、「注」セクションを参照してください。
id イベントをレポートする時にイメージを識別するために $MsgImage メッセージによって使用される ID (整数)。

イメージ・ウィンドウ・スタイルは、BITOR 演算子を使用して、以下のスタイルから アセンブルすることができます:

スタイル 説明
$ImgScroll イメージがファイル中と同じサイズで表示されます。 ウィンドウにはスクロール・バーが付いています。 イメージがウィンドウより大きい場合に、スクロールすることができます。
$ImgClip イメージがファイル中と同じサイズで表示されます。 必要な場合には、イメージの上部と右側がウィンドウに収まるようにクリップされます。
$ImgScale 要求されたウィンドウ・サイズに収まるように、イメージの幅と高さの両方が縮尺されます。 縮尺プロセスによってイメージがゆがむ場合があります。
$ImgBorder イメージ・ウィンドウには枠が付いています。
$ImgTitle イメージ・ウィンドウにはタイトルが付いています。 $ImgBorder も指定しなければなりません。
イメージ・ウィンドウは $MsgSetImage メッセージに応答することができます。 このイメージにイメージ・ファイルの名前が付いている場合は、イメージ・ウィンドウは指示されたファイルをロードして表示します。

KNOWLEDGEBASE WinImage;
    TYPES
 ImageRec IS RECORD
 fileName: STRING;
 whdlImage: WINDOW;
        END;
    ROUTINES
 PROCEDURE ImageExample;
PRIVATE
    ROUTINES
 EVENT ImageEvent(REF imageData: ImageRec) IS
  ACTIONS
     WHEN $Event IS $MsgCreate THEN
 WinSetMenuBar($Handle,{'File','Open','/L','Exit',''}:
               LIST OF STRING);
 WinCreateImage($Handle,imageData.whdlImage,
                'os2logo.bmp',1,1,WinWidth($Handle),
                WinHeight($Handle),'',$ImgScroll,1);
  ELSWHEN $MsgMenu THEN
    WHEN $MenuSelection IS 101 THEN
 IF WinFileDialog($Handle,imageData.fileName,'*.bmp',
                  10,10,'Select new image', 0 ) >= 1 THEN
 SendMessage(imageData.whdlImage,
             $MsgSetImage,imageData.fileName);
        END;
 ELSWHEN 103 THEN
 SendMessage($Handle,$MsgClose);
        END;
   ELSWHEN $MsgSize THEN
 SendMessage(imageData.whdlImage,$MsgSetSize,
             $EventParm(1,INTEGER),$EventParm(2,INTEGER));
 ELSWHEN $MsgImage THEN
 WinMessageBox($Handle,'Image',$MBOK,$EventParm(1,
               INTEGER));
        END;
 END (* Image Event *);
 PROCEDURE ImageExample IS
  VARIABLES
 whdl: WINDOW;
 data: ImageRec
  ACTIONS
 WinCreate($Desktop,whdl,ImageEvent{data},0,0,0,0,
           'Image test',
           BitOr($WinBorder,$WinTitle,$WinResize,
           $WinMenu,$WinMinMax,$WinTaskList,
           $WinSysMenu,$WinAutoPos,
           $WinAutoSize));
                      WinWait(whdl);
 END (* Image Example *);

戻りコード

次も参照してください


WinCreateMouseRect

説明

マウス・クリックに反応する長方形領域を作成します。

構文

FUNCTION WinCreateMouseRect(VAL whdl: WINDOW,
                            VAL xLoc, yLoc,
                            xLen, yLen, id: INTEGER):
 INTEGER;

引き数の注

引き数名 説明
whdl 長方形が作成されるウィンドウのハンドル。 whdl 引き数は標準ウィンドウまたはスクロール・ウィンドウを参照することができます。
xLoc マウス・ゾーンの左上隅の X 座標。
yLoc マウス・ゾーンの左上隅の Y 座標。
xLen マウス・ゾーンの幅。
yLen マウス・ゾーンの高さ。
id 特定のマウス・ゾーンを識別するために使用する整数。

デフォルトでは、TSD Script はウィンドウ内のマウス・イベントをレポートしません。 ただし、マウス・ゾーンを作成することによって、マウスの動きやクリックなどのイベントを レポートするようにすることができます。 マウス・ゾーンはウィンドウ内の長方形領域です。 マウス・ゾーンを作成する時は、それに整数の ID を割り当てます。 この ID は、ゾーン内のすべての マウス・イベントとともに親ウィンドウにレポートされます。

マウス・ゾーン内で活動があった場合は常に、以下の 4 つの整数のイベント・パラメーター とともに、$MsgMouse メッセージがそのゾーンの親に送られます:

ヒント: ウィンドウの 1 つが $MsgMouse イベントを処理するたびに、WinSetMousePointer を呼び出さなければなりません。

KNOWLEDGEBASE WinMouse;
    ROUTINES
 PROCEDURE MouseExample;
PRIVATE
  CONSTANTS
 MENU_LIST IS {'File' ,
               'Exit','',
               'Pointer type',
               'MouseDefaultPtr',
               'MouseuLArrowPtr',
               'MouseURArrowPtr',
               'MouseDRArrowPtr',
               'MouseDLArrowPtr',
               'MouseUPResizePtr',
               'MouseURResizePtr',
               'MouseRTResizePtr',
               'MouseDRResizePtr',
               'MouseDNResizePtr',
               'MouseDLResizePtr',
               'MouseLTResizePtr',
               'MouseULResizePtr',
               'MouseCrossPtr',
               'MouseHandPtr',
               'MouseHourGlassPtr',
               'MouseIBeamPtr',''}: LIST OF STRING;
    ROUTINES
 EVENT MouseEvent(REF pointerType: INTEGER) IS
    ROUTINES
 PROCEDURE ProcessMenu(VAL whdl: WINDOW, VAL selection:
 INTEGER) IS
  ACTIONS
 WHEN selection IS 101 THEN
 SendMessage(whdl,$MsgClose);
    ELSWHEN 201 THEN
 pointerType := $MouseDefaultPtr;
 ELSWHEN 202 THEN
 pointerType := $MouseuLArrowPtr;
 ELSWHEN 203 THEN
 pointerType := $MouseURArrowPtr;
 ELSWHEN 204 THEN
 pointerType := $MouseDRArrowPtr;
 ELSWHEN 205 THEN
 pointerType := $MouseDLArrowPtr;
 ELSWHEN 206 THEN
 pointerType := $MouseUPResizePtr;
 ELSWHEN 207 THEN
 pointerType := $MouseURResizePtr;
 ELSWHEN 208 THEN
 pointerType := $MouseRTResizePtr;
 ELSWHEN 209 THEN
 pointerType := $MouseDRResizePtr;
 ELSWHEN 210 THEN
 pointerType := $MouseDNResizePtr;
 ELSWHEN 211 THEN
 pointerType := $MouseDLResizePtr;
 ELSWHEN 212 THEN
 pointerType := $MouseLTResizePtr;
 ELSWHEN 213 THEN
 pointerType := $MouseULResizePtr;
 ELSWHEN 214 THEN
 pointerType := $MouseCrossPtr;
 ELSWHEN 215 THEN
 pointerType := $MouseHandPtr;
 ELSWHEN 216 THEN
 pointerType := $MouseHourGlassPtr;
 ELSWHEN 217 THEN
 pointerType := $MouseIBeamPtr;
        END;
 END (* Process Menu *);
   ACTIONS
     WHEN $Event IS $MsgCreate THEN
 WinSetMenuBar($Handle,MENU_LIST);
  ELSWHEN $MsgPaint THEN
    WinClear( $Handle );
 WinCreateMouseRect($Handle,1,1,
                    WinWidth($Handle),
                    WinHeight($Handle),1);
  ELSWHEN $MsgMenu THEN
 ProcessMenu($Handle,$MenuSelection);
 ELSWHEN $MsgMouse THEN
 WinSetMousePointer($handle,pointerType);
        END;
 END (* Mouse Event *);
 PROCEDURE MouseExample IS
  VARIABLES
 whdlMain: WINDOW;
  ACTIONS
 WinCreate($Desktop,whdlMain,MouseEvent{
           $MouseDefaultPtr},
           0,0,60,20,
           'Mouse example',
           BitOr($WinBorder,$WinTitle,
           $WinResize,$WinMenu,
           $WinVScroll,$WinMinMax,
           $WinTaskList,
           $WinSysMenu,$WinAutoPos));
 WinWait(whdlMain);
 END (* Mouse Example *);

戻りコード

次も参照してください

詳しくは、マウス・ポインターおよびマウス・メッセージを参照してください


WinCreateScrollWindow

説明

必要に応じて自らを再ドローするモードレスのスクロール・ウィンドウを作成します。

構文

WinCreateScrollWindow(VAL whdlParent: WINDOW,
                      REF whdl: WINDOW,|
                      VAL EventHandler: EVENT,
                      VAL xLoc, yLoc, width, height: INTEGER,
                      VAL title, font: STRING,
                      VAL pointSize, style: INTEGER):
                      INTEGER;

引き数の注

引き数名 説明
whdlParent スクロール・ウィンドウの親。
whdl 新しく作成されたウィンドウのハンドルがこのパラメーターで戻されます。 エラーがある場合には、変数は $Unknown に設定されます。
EventHandler ウィンドウまたはダイアログ・ボックスによって生成されたイベントを処理するイベント・ハンドラー。 イベント処理が必要でない場合には、キーワード $NullHandler を使用することができます。
xLoc ウィンドウの左上隅の X 位置。X および Y 座標は文字セルで測ります。
yLoc ウィンドウの左上隅の Y 位置。
width 枠を除いたウィンドウの幅 (X 座標)。 幅は文字セルで測ります。
height 枠、タイトル・バー、メニュー・バー、ツールバー、および状況バーを除くウィンドウの高さ (Y 座標)。 高さは文字セルで測ります。
title ウィンドウ・タイトル・バーに表示されるタイトル。 ウィンドウには、タイトルを表示するためのタイトル・バーがなければなりません。 $WinTitle スタイルを使用します。
font 使用可能システム・フォントの名前。
pointSize スクロール・ウィンドウ内部で使用されるフォントのポイント・サイズ。
style ウィンドウの外観をコントロールするために使用するスタイル・フラグのリストを表す整数のビット・マスク。
詳細については、WinCreate ステートメントの「注」セクションを参照してください。

受信する最初のメッセージ

スクロール・ウィンドウの作成時に、以下のメッセージが、示されている順序で受信されます:

スクロール・ウィンドウの追跡および再ドロー

WinCreateScrollWindow を使用して、仮想スクロール・ウィンドウを作成することができます。 総称ウィンドウでは、プログラマーはウィンドウの目次を理解し、$MsgPaint メッセージの受信時に ウィンドウを再表示する責任があります。 スクロール・ウィンドウは自分自身の目次を "理解" しています。 プログラマーは WinWriteWinWriteLN などを使用して、情報を これらに書き込みます。

注: スクロール・ウィンドウが 生成したり受信することのできるメッセージのリストについては、TSD Script メッセージを参照してください

スクロール・ウィンドウのカスタマイズ

スクロール・ウィンドウは、ツールバー、メニュー・バー、状況バー、および 総称ウィンドウで使用できるその他のすべてのウィンドウ要素をもつことができます。

KNOWLEDGEBASE Scroll;
  CONSTANTS
 MENU_OPEN IS 101;
 MENU_EXIT IS 102;

 MENU_LIST IS {'~File','~Open','E~xit',''}:
 LIST OF STRING;
    TYPES
 EditorData IS RECORD
 statusLine: STRING;
 lines: LIST OF STRING;
        END;
    ROUTINES
 PROCEDURE FileView;
PRIVATE
    ROUTINES
 EVENT EditorEvent(REF editorData: EditorData) IS
    ROUTINES
 PROCEDURE ProcessMainMenu(VALUE selection: INTEGER) IS
  VARIABLES
 fileName: STRING;
 editFile: FILE;
  result: INTEGER;
  ACTIONS
 WHEN selection IS MENU_OPEN THEN
 WinFileDialog($Handle,fileName,'*.KB',5,5,
               'Select file to edit',0);
 IF FOpen(editFile,fileName,$Read) > 0 THEN
 FReadText(editFile,editorData.lines);
 FClose(editFile);
 editorData.statusLine := ' File: ' & fileName;
    WinClear( $Handle );
 WinWriteLN($Handle,editorData.lines);
 PostMessage($Handle,$MsgPaintStatus);
 ELSWHEN MENU_EXIT THEN
 SendMessage($Handle,$MsgClose);
        END;
        END;
 END (* Process Main Menu *);
   ACTIONS
     WHEN $Event IS $MsgCreate THEN
    WinSetMenuBar( $Handle, menuList );
 editorData.statusLine := 'File:';
  ELSWHEN $MsgMenu THEN
 ProcessMainMenu($MenuSelection);
 ELSWHEN $MsgPaintStatus THEN (* Status Bar *)
    WinClear( $Handle );
 WinWrite($Handle,editorData.statusLine);
        END;
 END (* Editor Event *);
 PROCEDURE FileView IS
  VARIABLES
 whdl: WINDOW;
  ACTIONS
 WinCreateScrollWindow($Desktop,whdl,EditorEvent,
                       0,0,0,0,
                       'KML File viewer',
                       $SystemMonospaced,10,
                       BitOr($WinBorder,$WinTitle,
                       $WinResize, $WinSysMenu,
                       $WinMenu,$WinStatus,
                       $WinAutoPos,$WinAutoSize,
                       $WinVScroll,$WinHScroll,
                            $WinTaskList));
                      WinWait(whdl);
 END (* File View *);

戻りコード

次も参照してください

詳しくは、ウィンドウ・スタイルを参照してください


WinEditField

説明

編集値のデータ・タイプ用の行エディターを表示します。

構文

FUNCTION WinEditField(VAL parent: WINDOW, REF value: ANY,
 VAL xLoc, yLoc, length: INTEGER, title:
 STRING,
 VAL style: INTEGER):
 INTEGER;

引き数の注

引き数名 説明
parent 作成される新規ウィンドウの親。 Windows では、WinEditField の呼び出し時に親ウィンドウが使用できない場合には、WinEditField ウィンドウは親ウィンドウに合わせてクリップされません。
Windows では、$Desktop$WinModal と組み合わせて親として指定されている場合には、 WinEditField を使用して作成されたウィンドウはモードレスとなります。
次のセクションでは、$WinModal などのスタイル・フラグについて説明します。
xLoc ウィンドウの左上隅の X 位置。
yLoc ウィンドウの左上隅の Y 位置。
length 枠を除いたウィンドウの幅 (X 座標)。
title ウィンドウ・タイトル・バー上に表示するタイトル。ウィンドウには、表示されるタイトルのタイトル・バーがなければなりません。 $WinTitle スタイルを使用します。 Windows では、ユーザーが $WinTitle 定数を指定しない場合は、それが自動的に追加されます。
style ウィンドウの外観をコントロールするスタイル・フラグのリストが入っている整数。 詳細については、使用できるスタイル・フラグに関する次のセクションを参照してください。

WinEditField に対する使用可能なスタイル・フラグはテーブルとしてリストされています。

スタイル・フラグ 説明
$WinAutoPos システムがウィンドウの最適な位置を決定します。 xLoc および yLoc パラメーターは無視されます。
$WinAutoSize システムがウィンドウの最適なサイズを決定します。 xLen および yLen パラメーターは無視されます。
$WinBorder ウィンドウに、ダイアログ・ボックスに類似した枠が付きます。 スタイルによっては枠が必要です。Windows では、ユーザーが $WinBorder 定数を指定しない場合は、自動的にそれが追加されます。
$WinDefaultStyle $WinBorder, $WinResize, $WinTitle, および $WinSysMenu からアセンブルされたシステム定義のデフォルト・スタイル。
$WinField ウィンドウに、単一ピクセルの枠 (ダイアログ・ボックス中のコントロールのようなもの) が付きます。 このスタイルは $WinBorder とは互いに排他的です。
$WinInvisible ウィンドウは隠されたまま作成されます。 可視の状態にするためには、$MsgShow を送信しなければなりません。
$WinModal 編集フィールドの作成時に、それがモーダル・ウィンドウとなります。 編集フィールド・ウィンドウの親および他の子ウィンドウのすべてが使用禁止となります。
$WinNone ウィンドウには、枠、タイトル・バー、またはその他の要素が付きません。
$WinTaskList ウィンドウ・タイトルがシステム・タスク・リストに入れられます。 ユーザーはこのタスク・リストからウィンドウをアクティブ化することができます。 このスタイルは、通常はアプリケーションのメインウィンドウ用に使用すべきです。
$WinTitle ウィンドウにタイトル・バーが付きます。 このスタイルが存在しない場合には、パラメーターの 1 つとしてタイトルが指定されていても、タイトルは表示されません。 タイトル・バーによりウィンドウが移動可能となります。

  VARIABLES
 intVal: INTEGER;
  ACTIONS
 WinEditField($Desktop,intVal,0,0,30,'Integer',
              $WinAutoPos+$WinBorder+
              $WinTitle);

戻りコード

次も参照してください

DlgBox


WinEnableWindow

説明

ダイアログ・ボックスまたはウィンドウを使用可能または使用禁止にします。

構文

FUNCTION WinEnableWindow(VAL whdl: WINDOW, VAL state:
                         BOOLEAN): INTEGER;

引き数の注

引き数名 説明
whdl 使用可能状態が変更されるダイアログ・ボックスまたはウィンドウのハンドル。
state ウィンドウを "使用可能" にするためには TRUE に設定し、 "使用禁止" にするためには FALSE に設定します。

この関数は、ダイアログ・ボックスのフォームまたはウィンドウに渡すことのできるメッセージとしても 実装されています ($MsgEnable)。

KNOWLEDGEBASE enable;
    ROUTINES
 PROCEDURE Main;
PRIVATE
    ROUTINES
 PROCEDURE Main IS
  VARIABLES
 Handle : WINDOW;
  ACTIONS
 WinCreate($Desktop,
           Handle,
           $NullHandler,
           1, 1,
           80, 25,
           'Test Window',
           $WinDefaultStyle);
 WinEnableWindow(Handle, FALSE);
 SysDelay(1000);
 WinEnableWindow(HANDLE, TRUE);
 WinWait(Handle);
        END;

戻りコード


WinFileDialog

説明

「ファイル選択」ダイアログ・ボックスを表示します。

構文

FUNCTION WinFileDialog(VAL whdlParent: WINDOW,
                       REF fileName: STRING,
                       VAL startMask: STRING,
                       VAL xLoc, yLoc: INTEGER,
                       VAL title: STRING, VAL style: INTEGER
                    ): INTEGER;

引き数の注

引き数名 説明
whdlParent 作成される新規ウィンドウの親。
fileName ユーザーが選択したファイル名を戻します。 ユーザーがダイアログ・ボックスを取り消しても、その値は未変更のままです。
startMask 初期ファイル選択マスク、* 、および ? ワイルドカード文字を使用することができます。
xLoc ウィンドウの左下隅の X 位置。
yLoc ウィンドウの左下隅の Y 位置。
title ウィンドウ・タイトル・バーに表示されるタイトル。 ウィンドウには、表示されるタイトルのタイトル・バーがなければなりません。 $WinTitle スタイルを使用します。
style ファイル・ダイアログ・ボックスのスタイル。 使用可能な値は次の通りです。
  • $FileDlgCenter - ファイル・ダイアログ・ボックスを画面の中央に位置づけます。
  • $FileDlgOpen - 「ファイル・オープン」ダイアログ・ボックスを作成します。
  • $FileDlgSaveAs - 「別名保管」ダイアログ・ボックスを作成します。既存のファイルの名前が非アクティブとして表示されます。

新規ファイルのオープン時、またはユーザーが作業を新規ファイルに保管できるようにする時に、 ユーザーがファイル名を入力するようにプロンプトを出したい時にはいつでも WinFileDialog を使用することができます。 startMask 引き数を設定することにより、WinFileDialog を 使用して特定のタイプのファイルを選択することができます (たとえば、knowledgebases の場合は *.kb を使用)。

ヒント: xLoc および yLoc パラメーターは Windows では無効です

  VARIABLES
 fileName: STRING;
  ACTIONS
 IF WinFileDialog($Desktop,fileName,'*.TXT',
 10,10, 'Select file to edit',0) > 0 THEN
 LoadAndEdit(fileName);
        END;

戻りコード

次も参照してください


WinGetXPos

説明

任意の有効なウィンドウ・ハンドル (ウィンドウまたはダイアログ・ボックス) の X 座標の 位置を照会します。 位置 00 は左上隅です。

構文

FUNCTION WinGetXPos (VAL whdl: Window): Integer;

引き数の注

引き数名 説明
whdl X 位置を照会するウィンドウ・ハンドル。

WinGetXPos はウィンドウまたはダイアログ・ボックスの左上隅を照会するので、 WinX とは異なります。一方 WinX はウィンドウ内の文字位置を戻します。 成功時に X 座標の位置が戻されます。

KNOWLEDGEBASE GetPos;
    ROUTINES
 PROCEDURE Main;
PRIVATE
    ROUTINES
 PROCEDURE Main IS
  VARIABLES
 Handle : WINDOW;
 x,y : INTEGER;
  ACTIONS
 WinCreateScrollWindow($Desktop,
                       Handle,
                       $Nullhandler,
                       10,10,75,25,
                       'Test',
                       $SystemMonospaced,10,
                       $WinDefaultStyle);
                       x := WinGetXPos(Handle);
 y := WinGetYPos(Handle);
 WinWriteLN(Handle, 'The upper left corner
            of the window is at
            (' & x & ', ' & y & ')');
 WinWait(Handle);
        END;

戻りコード

次も参照してください

WinGetYPos


WinGetYPos

説明

任意の有効なウィンドウ・ハンドル (ウィンドウまたはダイアログ・ボックスのいずれか) の Y 座標の 位置を照会します。 位置 00 はウィンドウまたはダイアログ・ボックスの左上隅です。

構文

FUNCTION WinGetYPos (VAL whdl: Window): Integer;

引き数の注

引き数名 説明
whdl Y 位置を照会するウィンドウ・ハンドル。

WinGetYPos はウィンドウまたはダイアログ・ボックスの左上隅を照会するので、 WinY とは異なります。一方 WinY はウィンドウ内の文字位置を戻します。

WinGetXPos ステートメントについては、を参照してください。

戻りコード

次も参照してください

WinGetXPos


WinGoToXY

説明

位置ポインターを新規の位置に移動します。

構文

FUNCTION WinGoToXY(VAL whdl: WINDOW, VAL xLoc, yLoc:
 INTEGER): INTEGER;

引き数の注

引き数名 説明
whdl 操作が実行されるウィンドウのハンドル。
xLoc 現行の位置ポインターの新規の X 位置。
yLoc 現行の位置ポインターの新規の Y 位置。

WHEN $Event IS $MsgChar THEN
 WHEN $EventParm(1,INTEGER) IS $KeyUpArrow THEN
                 WinGoToXY(Handle,$WinX($Handle),$WinY($Handle)-1);
 ELSWHEN $KeyRightArrow THEN
 WinGoToXY(Handle,$WinX($Handle)+1,$WinY($Handle));
        END;
        END;

戻りコード

次も参照してください


WinHeight

説明

ウィンドウの高さを照会して、その高さを文字セルで表して戻します。

構文

FUNCTION WinHeight(VAL whdl: WINDOW): INTEGER;

引き数の注

引き数名 説明
whdl 操作が実行されるウィンドウのハンドル。

WinHeight は指定のウィンドウの現行のクライアント域の高さを戻します。

WinCreateMouseZone($Handle,1,1,
                   WinWidth($Handle),WinHeight($Handle),1);

戻りコード

次も参照してください


WinLoadMenuBar

説明

リソース・ファイルからメニューをロードして、それを特定のウィンドウに接続します。 (前に接続されているメニューがある場合はそれが置き換えられます。)

構文

FUNCTION WinLoadMenuBar(VAL win: WINDOW,
                        VAL resource : STRING
                    ): INTEGER;

引き数の注

引き数名 説明
win フォーム、総称、スクロール、またはハイパーテキスト
resource 標準形式のリソース文字列

メニューをフォームに接続するためのショートカットは、メニューに対して、同じ .df ファイル内の フォームと同じ名前を付けることです。 フォームがメニュー・スタイルである場合には、メニューは自動的に ロードされます。

KNOWLEDGEBASE loadmenu;
    ROUTINES
PROCEDURE Main;
(* ***** PRIVATE ***** *)
PRIVATE
  VARIABLES
 (* Global Variable to hold the Window handle of the window *)
 mainWindow : WINDOW;
    ROUTINES
PROCEDURE Main IS
  VARIABLES
  ACTIONS
 WinCreate($Desktop, mainWindow, $NullHandler, 10, 10, 80, 25, 'Test Window', $WinDefaultStyle);
 (*load the menu with id MAIN_MENU from the file loadmenu.df *)
 WinLoadMenuBar(mainWindow, 'loadmenu[MAIN_MENU]');
 WinWait(mainWindow);
        END;

戻りコード

次も参照してください


WinLoadPopupMenu

説明

.df ファイルからメニュー・リソースをロードして、それをウィンドウのポップアップ・メニュー として関連づけて、既存のポップアップ・メニューと置き換えます。 ポップアップ・メニューは自動的に 現れて、プラットフォーム用の正しいマウス・アクションを使用します。 ポップアップ・メニューから の選択は $MsgMenu によってレポートされます。

構文

FUNCTION WinLoadPopupMenu( VAL whdl: WINDOW,
                          VAL menu: STRING,
                    ): INTEGER;

引き数の注

引き数名 説明
whdl タイトル・テキストが変更されるダイアログ・ボックス・フォームまたは ウィンドウのハンドル。
menu 作成されるメニューに合わせてメニューについて記述した仕様ファイルの完全修飾名。

WinLoadPopupMenu の使用時には、プラットフォームに対する正しいマウス・アクション によってメニューが自動的に現れます。 ユーザーがメニュー・アイテムを選択すると、$MsgMenu がウィンドウに送信されます。 これは古い関数 WinPopup とは異なります。 WinPopup では、 ユーザーは正しいマウス・アクションを理解し、WinPopup を呼び出してポップアップ・メニューを 表示する必要があります。 WinPopup は選択されたメニュー・アイテムの ID を戻します。

KNOWLEDGEBASE loadpop;
    ROUTINES
PROCEDURE Main;
(* ***** PRIVATE ***** *)
PRIVATE
  VARIABLES
 (* Global Variable to hold the Window handle of the window *)
 mainWindow : WINDOW;
    ROUTINES
PROCEDURE Main IS
  VARIABLES
  ACTIONS
 WinCreate($Desktop, mainWindow, $NullHandler, 10, 10, 80, 25, 'Test Window', $WinDefaultStyle);
 (* load the menu with id MAIN_MENU from the file loadmenu.df *)
 WinLoadPopupMenu(mainWindow, 'loadmenu[MAIN_MENU]');
 WinWait(mainWindow);
        END;

戻りコード

次も参照してください

WinSetPopupMenu


WinLoadToolBar

説明

リソース・ファイルからツールバーをロードして、それを特定のウィンドウに接続します。 (前に接続されているツールバーがある場合はそれが置き換えられます。)

構文

FUNCTION WinLoadToolBar(VAL win: WINDOW,
 VAL resource : STRING
                    ): INTEGER;

引き数の注

引き数名 説明
win フォーム、総称、スクロール、またはハイパーテキスト
resource 標準形式のリソース文字列

ツールバーをフォームに接続するためのショートカットは、同じ .df ファイル内のフォームと同じ名前で ツールバーを指定することです。 フォームがツールバー・スタイルである場合には、ツールバーは 自動的にロードされます。

KNOWLEDGEBASE loadtool;
    ROUTINES
PROCEDURE Main;
(* ***** PRIVATE ***** *)
PRIVATE
  VARIABLES
 (* Global Variable to hold the Window handle of the window *)
 mainWindow : WINDOW;
    ROUTINES
PROCEDURE Main IS
  VARIABLES
  ACTIONS
 WinCreate($Desktop, mainWindow, $NullHandler, 10, 10, 80, 25, 'Test Window', $WinDefaultStyle);
 (* load the toolbar with id MAIN_TOOLBAR from the file loadtool.df *)
 WinLoadToolBar(mainWindow, 'loadtool[MAIN_TOOLBAR]');
 WinWait(mainWindow);
        END;

戻りコード

次も参照してください


WinMenuCheckItem

説明

メニュー・アイテムのチェック状態を設定します。

構文

FUNCTION WinMenuCheckItem(VAL whdl: WINDOW,
                          VAL id: STRING,
                          VAL newState: BOOLEAN): INTEGER;
FUNCTION WinMenuCheckItem(VAL whdl: WINDOW,
                          VAL id: INTEGER,
                          VAL newState: BOOLEAN): INTEGER;

引き数の注

引き数名 説明
whdl メニュー・バーが付いているウィンドウのハンドル
id 設定されるメニュー・アイテムの ID
newState メニュー・アイテムの新規の状態

WinMenuCheckItem により、メニュー・アイテムにチェックしたりチェック解除する ことができます。 指定のオプションの現在のチェック状態は、WinMenuItemIsChecked を呼び出す時にテストすることができます。

注: メニュー・アイテムは 文字列または整数で識別することができます

WinMenuCheckItem($Handle,204,TRUE);

戻りコード

次も参照してください


WinMenuEnableItem

説明

メニュー・アイテムの使用可能または使用禁止状態を設定します。

構文

FUNCTION WinMenuEnableItem(VAL whdl: WINDOW,
                           VAL id: STRING,
                           VAL newState: BOOLEAN): INTEGER;
FUNCTION WinMenuEnableItem(VAL whdl: WINDOW,
                           VAL id: INTEGER,
                           VAL newState: BOOLEAN): INTEGER;

引き数の注

引き数名 説明
whdl メニュー・バーが付いているウィンドウのハンドル
id 設定されるメニュー・アイテムの ID
newState メニュー・アイテムの新規の状態

WinMenuEnableItem を使用して、メニュー・アイテムを使用可能または使用禁止にすることができます。 使用禁止にしたアイテムを使用することはできません。 $SysMenuCloseItem 定数を使用して、 ウィンドウのシステム・メニュー上の「クローズ」アイテムを次の方法で使用可能または使用禁止に することができます:

(* This line enables the Close item *)
WinMenuEnableItem (myWindow, $SysMenuCloseItem, TRUE);
(* This line disables the Close item *)
WinMenuEnableItem (myWindow, $SysMenuCloseItem, FALSE);

注: メニュー・アイテムは 文字列または整数で識別することができます

WinMenuEnableItem($Handle,204,TRUE);

戻りコード

次も参照してください


WinMenuItemIsChecked

説明

メニュー・アイテムが現在チェックされているかどうかを調べるためにテストします。

構文

FUNCTION WinMenuItemIsChecked(VAL whdl: WINDOW,
                              VAL id: STRING): BOOLEAN;
FUNCTION WinMenuItemIsChecked(VAL whdl: WINDOW,
                              VAL id: INTEGER): BOOLEAN;

引き数の注

引き数名 説明
whdl メニュー・バーが付いているウィンドウのハンドル
id 設定されるメニュー・アイテムの ID

TSD Script により、選択アイテムのメニュー・バーをセットアップすることができます。 WinMenuItemIsChecked を呼び出して次の 2 つのアイテムを渡すことによって、 指定のメニュー・アイテムが選択されているかどうかを検査することができます:

注: メニュー・アイテムは 文字列または整数で識別することができます。

IF WinMenuItemIsChecked($Handle,204) THEN
 CarryOutAction;
        END;

戻りコード

次も参照してください


WinMessageBox

説明

メッセージ・ボックスを表示して、ユーザーの選択を戻します。 (メッセージ・テキストの長さは 512 文字までに制限されています。)

構文

FUNCTION WinMessageBox(VAL whdlParent: WINDOW,
                       VAL title: STRING,
                       VAL style: INTEGER,
                       VAL message: STRING): INTEGER;

注意

イベント・ハンドラーおよび DDE

$MsgDDEInitiate メッセージを処理する時は、WinWait を使用しないで ください。 $MsgDDEInitiate はアプリケーションにメッセージを同報通信して、応答が戻されるまでメッセージ待ち行列をロックします。 一方、 WinWait ステートメントは、やはりメッセージ待ち行列からの応答を待機するイベント を開始します。 WinWait は、他のアプリケーションがメッセージ待ち行列にメッセージ を送信するのを防ぎます。 この結果はデッドロックとなり、実際にユーザー・インターフェースを ロックします。

引き数の注

引き数名 説明
whdlParent メッセージ・ボックスの親。 これが $Desktop である場合には、メッセージ・ボックスはモーダルとはなりません。
title ウィンドウ・タイトル・バーに表示されるタイトル。 ウィンドウには、タイトルを表示するためのタイトル・バーがなければなりません。 $WinTitle スタイルを使用します。
style メッセージ・ボックスのスタイル。これは、メッセージ・ボックスの外観および動作をコントロールするビット・マスクです。
スタイル・オプションの説明については、「注」セクションを参照してください。
messageText 表示するメッセージのテキスト。ワード・ラップと改行がサポートされています。 (512 文字までに制限されています。)

メッセージ・ボックスの説明

メッセージ・ボックスは、WinMessageBox を使用して作成する単純なダイアログ・ボックスです。 .df ファイルを作成したり、Interface Designer を使用する必要はありません。

WinMessageBox を使用する時には、タイトル、テキスト・ストリング (メッセージ) および 3 個までのボタンを追加することができます。 他のテキスト・ボックスまたはコントロール を追加することはできません。

メッセージ・ボックスのカスタマイズ

メッセージ・ボックスのスタイルは以下の設定値の組み合わせです:

スタイル名 説明
ボタン・スタイル メッセージ・ボックス中に現れるボタンの選択を示します。
アイコン・スタイル メッセージ・ボックス中に表示されるアイコンのタイプを示します。
デフォルト・ボタン どのボタンをデフォルトのボタンとするかを示します。
モード メッセージ・ボックスの様式を示します。 これにより、ユーザーがメッセージ・ボックスに応答する前に何かを実行することができるかどうかが決まります。
タイトル OS/2 では、ウィンドウにタイトル・バーを追加したい場合には、 $WinTitle 定数を指定しなければなりません。 Windows では、すべてのウィンドウに自動的にタイトル・バーが付きます。

メッセージ・ボックスのスタイルを作成するためには、以下のボタン・スタイルの 1 つを選択してください:

以下のアイコン・スタイルから複数を選択するか、あるいは何も選択しないでください:

以下のデフォルト・ボタンから 1 つを選択するか、あるいは何も選択しないでください:

以下のモードから 1 つを選択するか、あるいは何も選択しないでください:

メッセージ・ボックスに「取消」ボタンがある場合には、Esc キーでメッセージ・ボックスがクローズし、 WinMessageBox$MBResultCancel を戻します。 「取消」ボタンがない場合には、Esc キー は効果がありません。 $MBResultError は内部エラー条件の場合にのみ戻されます。

メッセージ・ボックスは、メッセージ・テキストおよびタイトルの長さに基づいて、 自動的にそのサイズが決定されます。 メッセージ・ボックスは、画面の高さの 2/3 までとすることができます。

WinMessageBox ($Desktop,'Error',$MBOK+$MBIconError,
               'Unable to open file');

戻りコード

次も参照してください

スタイル・フラグのリストについては、メッセージ・ ボックス・スタイルを参照してください


WinParent

説明

引き数として渡されたウィンドウの親。

構文

FUNCTION WinParent(VAL whdl: WINDOW): WINDOW;

引き数の注

引き数名 説明
whdl 親が要求されたウィンドウのハンドル。

  VARIABLES
 parent: WINDOW;
  ACTIONS
 parent := WinParent($Handle);

戻りコード

引き数として渡されたウィンドウの親を戻します。

次も参照してください


WinSetColor

説明

ウィンドウの現在のドロー・カラーを設定します。 ドロー・カラーにより、テキストのカラーと 背景のカラーが決まります。

構文

FUNCTION WinSetColor(VAL whdl: WINDOW, VAL foreGround:
                     INTEGER; VAL backGround: INTEGER):
                     INTEGER;

引き数の注

引き数名 説明
whdl 操作が実行されるウィンドウのハンドル。
foreGround 新規の前景のドロー・カラー。カラー定数の完全なリストについては、「注」セクションを参照してください。
backGround 新規の背景のドロー・カラー。 カラー定数の完全なリストについては、「注」セクションを参照してください。

事前定義のカラー定数

以下の事前定義のカラー定数を使用することができます:

注: $WinDefaultColor は、 ウィンドウについて、システムのデフォルトの前景または背景を選択します

$WinTransparent により、すべてのテキスト出力操作は、背景色として $WinOpaque を指定した WinSetColor を呼び出すまでは、透過テキストを書き込みます。 透過テキストがデフォルトです。

$WinOpaque により、すべてのテキスト出力操作が不透明テキストを書き込みます。 すなわち、テキストを取り囲む長方形が消去されて現行の背景色となります。 $WinOpaque は、背景色として $WinTransparent を指定した WinSetColor を呼び出すまでは、 有効のままとなります。

オペレーティング・システムによって定義されたカラーへのアクセス

以下の事前定義定数を使用して、オペレーティング・システムによって定義された ユーザーによる構成可能なカラーにアクセスしてください:

WHEN $Event IS $MsgPaint THEN
 WinSetColor($Handle,$WinWhite,$WinBlack);
    WinClear( $Handle );
        END;

戻りコード

次も参照してください


Tivoli Service Desk 6.0 Developer's Toolkit Script 言語解説書

メイン・ページに戻る

著作権