メッセージボックスの表示位置を指定する
2021/10/04
方法
MessageBox 関数は画面上に表示される位置を指定することができないため、レスポンスウィンドウを使用します。
新しいウィンドウ (w_message) を作成し、ウィンドウの種類に response! を指定します。ウィンドウ上にはメッセージを表示するためのシングルラインエディットと [OK]、[キャンセル] など必要に応じたボタンを配置します。
作成したレスポンスウィンドウの呼び出しと結果を受け取るユーザー関数を作成し、そのユーザー関数内でレスポンスウィンドウの位置を設定することで、表示位置が指定可能なメッセージボックスを実装できます。
【例】
w_message (window オブジェクト)
[インスタンス変数の宣言]
integer ii_return = 2 // [キャンセル] または [閉じる] ボタン
[Open イベント]
str_message lstr_message // 渡された構造体を取得 lstr_message = message.powerobjectparm // 画面のタイトルを設定 this.title = lstr_message.title // メッセージを表示 st_msg.text = lstr_message.message // 画面の表示位置を設定 POST Move(lstr_message.x, lstr_message.y)
[Close イベント]
// クリックされたボタンによって戻り値を返す
Message.DoubleParm = ii_return
[ [OK] ボタン Clicked イベント]
ii_return = 1 //OKボタンによる終了 // 画面を閉じる Close(parent)
[ [キャンセル] ボタン Clicked イベント]
// 画面を閉じる Close(parent)
str_message 構造体
string title string message long x long y
f_messagebox 関数
[戻り値] integer [引数] value string as_title value string as_message value long al_x value long al_y
integer li_return str_message lstr_message lstr_message.title = as_title lstr_message.message = as_message lstr_message.x = al_x lstr_message.y = al_y OpenWithParm(w_message, lstr_message) li_return = message.doubleparm RETURN li_return
f_messagebox 関数の呼び出し
long ll_x, ll_y integer li_res // 画面上の表示位置を設定 ll_x = 500 ll_y = 300 // メッセージボックス (レスポンスウィンドウ) 呼び出し li_res = f_messagebox("タイトル", "メッセージ内容", ll_x, ll_y)
Tips情報
プロダクト :PowerBuilder
バージョン :2019R3