CLOSE
PowerBuilder Tips

方法

PowerBuilder の標準関数 MessageBox で表示されるポップアップは Windows OS 標準のダイアログを使用しているため、フォントの種類や文字サイズを PowerScript から個別に変更することはできません。
しかし代替策として「レスポンスウィンドウ (応答型ウィンドウ) 」を自作してメッセージボックス化する方法がございます。
レスポンスウィンドウを活用することで、以下のような柔軟なカスタマイズが可能になります。

  • ■フォントデザインの自由な指定 (Meiryo UI への変更、文字サイズの拡大、太字化など)
  • ■ウィンドウサイズの調整 (表示するメッセージの長さに合わせた縦幅・横幅の設定)

本記事では、レスポンスウィンドウを柔軟性の高い独自のメッセージボックスとして作成・表示させる一例を、簡易なサンプルコードとともに紹介します。

サンプル実装手順

手順 1 :レスポンスウィンドウの新規作成とプロパティ設定

①メニューから、新規ウィンドウを作成します。
 例 : w_custom_messagebox
②作成したウィンドウのプロパティで、「ウィンドウの種類」を「Response!」に設定します。
③画面上に以下のようにテキストを配置します。
 例 : StaticText (名前 : st_message) …メッセージ表示用
④③で作成したテキストのプロパティの「フォント」タブ から、お好みの表示デザインに変更します。

設定画面

手順 2 :レスポンスウィンドウ (w_custom_messagebox) のスクリプト記述

Open イベントにて、呼び出し元から渡されたメッセージ文字列を取得し、 st_message にセットします。

// w_custom_messagebox の Open イベント
string ls_message

// OpenWithParm で渡された文字列パラメータを取得
ls_message = Message.StringParm

// スタティックテキストにメッセージを設定
st_message.text = ls_message

手順 3 :呼び出し側 (メイン画面のボタンなど) からの実行

メイン画面の Clicked イベントにて、標準の MessageBox() 関数の代わりに OpenWithParm() を使用してカスタムウィンドウを呼び出します。

// 呼び出し側の処理(例: w_main の Clicked イベント等)
string ls_msg

ls_msg = "処理を実行してもよろしいですか?~r~n※レスポンスウィンドウを使って表示しています"

// 自作メッセージボックスを呼び出し(パラメータ渡し)
OpenWithParm(w_custom_messagebox, ls_msg)

これにより、メイン画面の実行ボタンをクリックすると、カスタムしたレスポンスウィンドウをメッセージボックスのように呼び出すことができます。

サンプルコードの実行画面

関連情報

レスポンスウィンドウでメッセージボックスを自作することで、フォントや色、サイズの変更だけでなく「画面中央以外への表示位置の指定」など、さらに柔軟な画面制御が可能になります。
以下の Tips では、メッセージボックスの表示位置を指定できるように関数化する実装例が掲載されています。
併せてぜひご参照ください!

 

Tips情報

プロダクト :PowerBuilder

バージョン :2019R3

x instagram facebook youtube