メッセージボックスの表示位置を指定する

PowerBuilder Tips

方法

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

Tips 一覧を見る
PowerBuilder マイグレーション
PowerBuilder学習、動画で始めちゃう?