4D 20 R5 では、 2つのウィンドウタイプが追加されました。新たに提供される、タイトルバーのないフレキシブルなモーダルまたは非モーダルのウィンドウは、アプリケーションのカスタマイズ性に新たな可能性をもたらします。これにより、アプリケーションの外観を完全に自由にカスタマイズできるので、仕様に正確に沿うよう、または好みどおりにタイトルバーを設計し、カスタマイズされた検索ボックスなどの機能をシームレスに統合することができます。
それだけではありません! 開発プロセスを合理化するために設計されたいくつかの新しいコマンドも導入しました:
- ウィンドウを最小化するコマンド
- ウィンドウが最小化されているかどうかを確認するためのコマンド
- ウィンドウが最大化されているかどうかを確認するためのコマンド
新しいウィンドウの種類
2つの新しい定数が Open form windowコマンドで使用できます。
$winRef1:=Open form window("myForm1"; Plain form window no title)
$winRef2:=Open form window("myForm2"; Movable form dialog box no title)
カスタムタイトルバーを持つウィンドウの例題を見てみましょう:
- 自動背景色の矩形。macOSでは、ライトモードで白く、ダークモードで黒く表示されます。
- 矩形の上に非表示のボタン。クリックすると DRAG WINDOWコマンドをトリガーし、ウィンドウが移動できます。
- 閉じる、最大化、最小化の 3つのボタン。それぞれに関連するコマンド MAXIMIZE WINDOW, MINIMIZE WINDOWと REDUCE RESTORE WINDOW が紐づいています。ボタンの見た目については、macOS では少し手間をかけて、3つのボタン同時のロールオーバー表示もおこないます。これには、On Mouse Enter と On Mouse Leave イベントで、OBJECT SET FORMATコマンドでボタンのアイコンを変更します。
macOS:
Plain form window no title
Movable form dialog box no title
WindowS:
Plain form window no title
Movable form dialog box no title
この例題が動いているところを見てみましょう:
新しいコマンド
これらの新しいウィンドウタイプに加えて、開発プロセスを簡素化する便利なコマンドも導入しました:
- 新しいコマンド REDUCE RESTORE WINDOWを使うと、最前面のウィンドウや指定のウィンドウを最小化することができます。ウィンドウがすでに最小化されている場合、このコマンドはそのウィンドウをもとの状態に戻します。
REDUCE RESTORE WINDOW($winRef)
- Is window reducedコマンドは、ウィンドウが現在最小化状態にあるかどうかを判定するのに役立ちます。これにより、ウィンドウの状態に応じて特定のアクションを実行することができます。
If(Is window reduced($winRef))
// なんらかの処理
End if
- Is window maximizedコマンドはウィンドウが最大化状態にあるかどうかを確認します。これにより、最大化状態と元の状態を簡単に切り替えることができます。
If(Is window maximized($winRef))
MINIMUM WINDOW($winRef)
Else
MAXIMIZE WINDOW($winRef)
End if
そして…
各ウィンドウタイプの詳細については、こちらのドキュメントページを参照ください。この機能を使って作成した素晴らしいインターフェースを、遠慮なく4D Forum で共有してください。